ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【读书笔记】Python在机器学习中的应用:什么是机器学习

2021-06-29 21:00:20  阅读:148  来源: 互联网

标签:机器 训练 验证 Python 模型 读书笔记 学习 算法 数据


image-20210629190626766

 
简 介:这本书的名字为Python在机器学习中的应用,该书的作者为著名的余本国老师。该书循序渐进地阐述了机器学习的概念,以及一些机器学习的主流算法。下面是我在读这本书的时候的记录并加上自己的理解。本文意在记录自己近期学习过程中的所学所得,如有错误,欢迎大家指正。
 
关键词:Python、机器学习

一、机器学习的简介

1.机器学习介绍

​ 什么是机器学习呢?说白了就是让机器代替人工从数据中发掘我们所需要的信息,如果对于海量的数据来说,对于人工来做的话将花费大量的人力物力,所以将这项任务交给计算机来做,人们来做更加高级的任务。

​ 那么怎样能够让机器进行学习呢?首先对于人来说,比如让人的肉眼去识别两种植物的图片,如果要求人的识别精度很高的话,那么就需要人类在识别之前观察大量的两种植物图片,来进行积累经验,以至于之后人们再次见到类似图片时,能够精确的分析出图片的内容。这种学习方式对于人类来说比较容易,因为人类有大脑参与可以进行记忆分析,那么对于计算机来说,那么怎么去记住这么多的数据,然后去识别新的数据呢?无非就是建立自变量与因变量之间的某种关系来达到预测学习的作用,这里的自变量就是我们数据的特征,因变量就是数据对应的标签,这就会用到很多常见的机器学习算法,例如随机森林,SVM、支持向量机等算法。

​ 现在我们的生活中有很多机器学习算法的应用,比如说当我们逛淘宝时,淘宝会不断地向我们进行推荐我们之前看过的物品,这是基于关系规则的商品推荐,还有就是最近很火的图像识别,它是利用了深度学习方面的技术。我们在不同的场景下,可以使用不同的算法来实现我们的需求。

​ 有人问?有没有那种非常无敌的算法,其实这个问题很难回答,每种算法有自己使用的领域,针对不用的使用场景需要用到不同的东西,有的算法可能精度非常高,但是可能它的底层的计算方法相当复杂,可能模型运行的时间会相当高,有的算法虽然精度差一些,但是它的速度方面可能略强于别的算法,所以没有什么强不强的,就是看自己的需求有针对性地使用合理地算法。

2.机器学习的几种方式

1)有监督学习

​ 有监督学习是我们最常见的,就是我们的数据集会分成两个部分,一部分是我们的特征,另一部分就是标签,标签的作用就是标注每一个样本集,机器学习就是让计算机通过某种数学算法将我们的特征数据与标签进行产生一定的关系,让计算机看到某种数据就能够知道它的标签,当计算机看到新的数据时,就会搜索自己曾经看到的数据,有无类似的,发现类似的数据将其定为同一标签,其实这样说不太对。

​ 有监督学习又分为分类问题和回归问题:

1.分类问题

​ 所谓分类问题就是我们的标签是离散值,比如手写数字识别和判断某一张图片是猫还是狗,这些都是分类问题,常见的分类问题通常为二分类,即正样本和负样本,分类问题的经典算法有贝叶斯算法、逻辑回归等。

2.回归问题

​ 回归问题可以看成是分类问题的极限,如果某个任务的类别非常多,这个时候就偏于回归,对于回归问题,它的特别指出就是它的标签是连续的,比如某人的薪资,车站的人流数。通常我们的数据会有很多个特征就相当于自变量,标签就是因变量,回归分析就是建立自变量与因变量之间的某种关系来达到预测学习的作用,比如我们预测某人薪资时,就会大量的观察员工的各种指标来进行综合评估。

2)无监督学习

​ 上面说的都是基于数据的标签进行识别不同的数据,无监督学习与它是天然的不同,它不需要任何的标签,只需要不断地喂数据就行,它的基本原理就是利用某种算法计算各个数据样本的相似度或者什么的,然后将相似的样本划分为一类,典型的算法就是K-Means聚类,但是无监督学习不一定就是聚类这种的,像降维这种操作也算是无监督学习。

3)半监督学习

​ 半监督学习就是结合上述两种学习模式,因为在一些实际场景中,我们的数据很难获取,或者获取到了,然后还需要进行人工标注打标签,这样会花费大量的成本,而有些领域,人工标注样本需要专业的领域知识,所以这就是导致我们的有标签数据会很难获得,所以需要结合上述两种方式进行综合考虑。

3.机器学习架构流程

  • 数据预处理
  • 根据数据及应用场景选择合适的算法模型
  • 训练模型
  • 模型验证
  • 模型上线测试
  1. 数据预处理:主要就是我们的数据获取来的时候,很多是不能够用于模型进行学习的,有很多空值或者异常值,需要进行处理,有时候还需要进行降维操作,降维就是降低特征数,因为数据量很大的时候采取高维特征会拉跨算法的效率,所以为了追求速度,丢弃一定有用的信息。还有就是对我们现有特征进行处理,比如特征创造,利用已有数据创造出更有效的特征,或者将数据正则化、归一化这些。

  2. 选择算法模型:针对自己的业务场景,以及我们的数据的特性选择合适的模型

  3. 训练模型:首先将数据拆分为几部分,训练集、验证集、测试集,将训练集用于模型的训练,使计算机通过训练集的数据发掘其中的规律,来建立能够拟合的数据模型

  4. 模型验证:就是用分割的验证集进行验证每次调参或者修正之后的模型效果,选择最优的参数组合

  5. 模型上线测试:使用确定好的测试集去测试验证好的模型,查看是否到达了上线要求,如果不达要求,就继续训练

这里有个地方很容易模糊就是训练集、验证集、测试集分别是干什么的,有人会问验证集感觉和测试集作用差不多,自己学习的过程中经常是将数据分为训练集和测试集,根本没考虑到验证集。

  • 训练集:训练集不用说,就是用于训练模型的
  • 验证集:验证集经常会出现在深度学习中,在传统机器学习中验证集较少用,深度学习中的验证集的作用就是验证我们训练每一批次的模型效果,用于验证模型的超参数调整是否正确
    在传统机器学习中验证集较少用,深度学习中的验证集的作用就是验证我们训练每一批次的模型效果,用于验证模型的超参数调整是否正确
  • 测试集:就是用来检验已经训练好的模型(超参数达到最优、验证集验证过)在新的数据上的效果,检验训练好的模型精度是否达标,如果达标上线使用,没有达标继续用训练集进行训练,用验证集进行超参数的调整

写在最后

​         大家好,我是阿光,觉得文章还不错的话,记得“一键三连”哦!!!

以上是我在读这本书的时候的记录并加上自己的理解。本文意在记录自己近期学习过程中的所学所得,如有错误,欢迎大家指正。
image-20210629204336524

标签:机器,训练,验证,Python,模型,读书笔记,学习,算法,数据
来源: https://blog.csdn.net/m0_47256162/article/details/118343445

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有