对于非科班自学机器学习的人来说,李航的《统计学习方法》是最好的第一手入门资料,俗称“小蓝书”。本文是对小蓝书第一章的学习总结,一来希望通过总结归纳加深自己最本书的理解,二来希望自己的学习笔记能帮到其他自学本书的朋友。
1.到底什么是机器学习?
机器学习,即计算机利用已知数据学习概率统计模型,然后用此模型来预测和分析未知的新数据。
咋一听,很难理解,咱们举一个初中数学题的例子:已知(1,2)(3,10)(2,y1)是y=ax2+b上的两点,求y1。在这里,(1,2)(3,10)是已知数据,(2,y1)是未知的新数据,y=ax2+b是模型,a、b是模型参数,求参数的过程即为学习。其实这就是机器学习中最简单的模型:线性回归。
2.机器学习的分类:
机器学习可以分为监督学习、非监督学习、半监督学习、强化学习。《统计学习方法》主要介绍监督学习,根据预测数据的不同,监督学习又分为以下三种:
- 回归:预测连续值
- 分类:预测离散值
- 标注:预测序列值
3.机器学习的四要素:数据、模型、策略、算法
3.1 数据:原始数据选取特征之后,用特征向量表示(特征工程)。然后把数据按一定比例分为三类数据:
- 训练集:用来学习模型,即求模型的参数
- 验证集:用来选择模型,为改进模型提供依据
- 测试集:用来评估模型,评估模型的泛化能力
3.2 模型:模型=类型+参数,类型是人为选定的,参数是学习得到的。机器学习的模型有两种:条件概率分布P(Y|X)、决策函数f(x)
3.3 策略:模型好坏的评价标准,模型越好,其预测值和真实值的差距越小
- 损失函数:度量模型一次预测的好坏,主要有:0-1损失、平方差损失、绝对损失、对数损失
- 期望损失:度量模型整体预测的好坏,即model关于联合分布P(Y,X)的期望,求不出
- 经验损失:model关于训练集的平均损失,代替期望损失来评估模型,能求出
- 目标函数:带正则项的经验损失
3.4 算法:学习的过程就是通过最小化目标函数求模型参数的过程,而优化算法便是求参数的具体计算方法。eg:梯度下降法
4.模型的获取、选择、评估、改进
4.1 模型的获取:模型=类型+参数,人为选好类型,利用训练集+优化算法求出模型的参数
4.2 模型的选择:两种方式:交叉验证、正则项
4.3 模型的评估:一般用测试误差,即模型在测试集上的平均损失。在分类问题中,评估模型的标准有:
- 分类准确率:即损失函数为0-1损失的测试误差
- 精准率P:在所有被分为A类的数据中,被正确分类的比率
- 召回率R:在所有实际为A类的数据中,被正确分类的比率
- F1score:2PR/P+R
4.4 模型的改进:可以从数据、模型、算法三个角度来改进模型,但在改进前,先要分析模型是过拟合还是欠拟合,再根据对应的方法改进。
- 数据:质量+数量
- 模型:类型+复杂度
- 算法:超参数
5. 欠/过拟合与正则化
- 正则项:模型复杂度的单调递增函数,模型越复杂,其值越大。有两种:L1范数、L2范数
5.1 欠拟合:模型在训练集上就变现不好
欠拟合的原因是模型的复杂度太低,改进办法也是从模型角度考虑:增加特征,减小正则化参数
5.2 过拟合:模型在训练集上表现很好,但在测试集上表现不好
过拟合的原因有:数据有噪音、数据无噪音但数据量太小、数据正常但模型复杂度太高。改进办法从数据和模型两方面考虑:
- 数据:增加数据的质量和数量
- 模型:减少特征的数量、增大正则化参数
5.3 正则化:模型选择的一种方法
正则化的原理:目标函数=经验损失+正则项,正则项是模型复杂度的单调递增函数,模型越复杂,其值越大。模型参数是通过最小化目标函数得到的,所以正则化的目的是想得到一个经验损失和复杂度都小的模型。
6. 监督学习的流程:原始数据→特征工程→训练集→模型(参数未知)→目标函数+优化算法→模型(参数已知)→验证集→改进模型→测试集→预测新数据
7. 监督学习的模型
机器学习的四要素中,模型是核心。学习机器学习要以每个模型为中心,学习每个模型的原理,模型函数、目标函数、优化算法、优缺点、适用场景。根据用途的不同,监督学习的模型可以分为以下几类:
- 回归: 线性回归
- 分类+回归:K近邻、决策树
- 分类: 贝叶斯、逻辑回归、感知机、SVM
- 标注: 条件随机场(CRF)、隐马尔可夫(HMM)