第一章 绪论
1、什么是机器学习
即是从数据中产生算法(学习算法),并根据所提供的经验数据建立适当的模型,在面对新情况时可以为我们做出相应的决策,并在不断累积经验的过程中,可以优化自己的性能,做出更加准确的决策,这就是机器学习。
机器学习可以解决什么问题:数据清洗、模型建立、模型优化、结果预测等
2、基本术语
记录的集合 == 数据集
一个事件或对象 == 示例 或 样本
表现或特性 == 属性 或 特征
属性的取值 == 属性值
属性张成的空间 == 属性空间、样本空间、输入空间(如二维空间中,横纵轴分别代表某一属性,内部的一点则代表着某一样本)
每一个点的坐标向量 == 特征向量
预测:离散值 == 分类 连续值 == 回归 涉及两个类别 == 二分类 多个类别 ==多分类
聚类:训练集中的数据分成若干组,每一组称为"簇",自动形成的簇对应潜在的概念划分
按是否拥有标记信息,学习任务分为两大类:监督学习(分类、回归)和无监督学习(聚类)
泛化能力:模型适用于新样本的能力,越强越适用于整个样本空间
3、假设空间
归纳:从样例中学习,学的数据中的概念,即是从已有数据中分析数据的相同属性值
演绎:一般到特殊的"特化"过程,即是用已知的属性值分析判断样本
4、归纳偏好
即是在多种假设中机器学习对某种类型假设的偏好
选择不同的假设会影响算法的性能,若算法的归纳偏好(选择的假设)更能与问题匹配,则算法的性能更好。表现为模型对训练样本以外的样本进行预测的结果,与模型对训练集样本进行预测的结果更一致
第二章 模型评估与选择
1、经验误差与过拟合
错误率:分类错误的样本数占样本总数的比例
精度=1-错误率
训练误差/经验误差:学习器在训练集上的误差
泛化误差:在新样本上的误差
过拟合:学习得太好,把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,使泛化功能下降
欠拟合:训练样本的一般性质未学好
2、评估方法
2.1、留出法
概念:留出法直接将数据集D划分为两个互斥的集合,一个是训练集S, 一个是测试集T
注意:
1、训练集与测试集的划分要尽量保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响
2、在给定训练集与测试集样本比例后,应采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果,以保证结果的可靠性与稳定性。
缺点:
1、若训练集S包含绝大多数的样本,则训练出的模型更接近训练集D训练出来的模型,但由于测试集T较小,评估结果可能不够稳定准确
2、若要让T多包含一些样本,则导致S中的样本较少,使得训练出来的模型与D的差异较大,导致结果的失真
2.2、交叉验证法
概念:交叉验证法对数据集D进行分层采样得到 k个大小相似的互斥子集,每次用k-1个子 集的并集作为训练集,余下的作为测试 集,从而进行k次训练和测试,最终返回 这k个测试结果的均值。也称为"k折交叉验证法",下图为10折交叉验证法的示意图(即是将D划分为10个子集,9个作为训练集,1个作为测试集):
2.3、自助法
优点:减少训练样本规模不同造成的影响,同时较高效地进行试验估计
概念:对包含m个样本的数据集D,每次随机从中挑选一个样本放入训练集D'中,然后把该样本放回,重复进行m次,得到训练集D',而D中没有出现在D'中的样本则作为测试集
特点:同一样本可能多次抽中,即D'中同一样本可能有多个
适用范围:数据集较小、难以划分训练/测试集时很有用
3、性能度量
概念:衡量模型泛化能力的评价标准
查准率P(纵)与查全率R(横)的定义:
P-R曲线
以查准率为纵轴、查全率为横轴作图得到“P-R曲线”
性能比较:
1、若一个学习器的P-R曲线被另一个学习器的曲线完全包住,则可断言后者的性能优于前者。如上图中学习器A的性能优于学习器C。
2、若两个学习器的P-R曲线发生了交叉
比较性能有三种种种办法:1.比较P-R曲线下面积的大小,它在一定程度下表示学习器在查准率和查全率取得相对“双高”的比例,但这个值不太容易估算。2.平衡点(BEP)是一个综合考虑查准率和查全率的性能度量,它是查准率=查全率时的取值。如上图,基于BEP的比较,认为学习器A优于B。但BEP还是过于简化。3.更常用的是F1度量
ROC曲线
ROC曲线的纵轴和横轴分别为TPR(Ture positive rare,真正例率)和FPR(False positive rare,假正例率)
图(a)是基于无限个坐标获得的ROC曲线,但现实中我们的样例是有限个的,制作出来的ROC曲线没有图(a)那么圆滑,与图(b)较为相近。ROC曲线的制作是通过调整阈值得到坐标然后将相邻两个点连线得到的曲线。
性能比较:若一个学习器的ROC曲线被另一个学习器的曲线包住,则可断言后者性能优于前者;若两个学习器的ROC曲线交叉,可以通过比较ROC曲线下的面积,即AUC来判断。
4、比较检验
4.1 假设检验
"假设"是对学习器泛化错误率分布的某种判断或猜想。是根据测试错误率推出泛化错误率的分布。此方法认为测试错误率与泛化错误率接近。
缺点:仅是对单个学习器泛化性能的假设进行检验
4.2 交叉验证t检验
基本思想:若两个学习器的性能相同则它们使用相同的训练/测试集得到的测试错误率应相同
优点:对多个学习器的性能进行比较
4.3 其他检验方法
McNemar检验、Friedman检验、Nemenyi后续检验
5、偏差与方差
解决问题:为什么学习算法为什么具有这样的性能
偏差:期望输出与真实标记的差别
泛化误差 = 偏差 + 方差 + 噪声
结论:泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。