本系列文为周志华教授的《机器学习》一书的个人简要笔记,供日后遗忘时翻阅
绪论
1.引言
机器学习主要内容是研究从数据中产生模型的算法(学习算法),有了这类算法,将经验数据提供给它,学习算法就能基于这些数据产生模型,面对新的情况时模型会提供相应的判断。
2.基本术语
数据集
示例/样本/特征向量
属性/特征 ——属性值 ——属性空间/样本空间/输入空间
假定一个具有m个示例的数据集,每个示例由d个属性描述。
训练/学习:从数据中学得模型的过程
训练数据:训练过程中使用的数据
训练样本
训练集:训练样本组成的集合
假设:由训练得到对应数据某种潜在规律的模型
真相/真实/ground-truth:数据存在的潜在规律
标记:示例结果的信息 ——标记空间/输出空间
样例:拥有标记信息的示例
分类:利用数据预测离散值
回归:利用数据预测连续值
一般预测任务是通过对训练集进行学习,建立一个从输入空间到输出空间的映射。
测试 —— 测试样本
聚类:将训练集中的样本分成若干簇,这些自动形成的簇可能对应一些潜在的概念划分。统称在聚类学习过程中训练样本不拥有标记信息。
监督学习/无监督学习:根据训练数据是否拥有标记信息划分
泛化能力:学得模型适用于新样本的能力
注:通常假设样本空间中全体样本服从一个未知分布,我们获得的每个样本都是独立的从这个分布上采样获得的,即独立同分布。
3.假设空间
归纳学习:从样例中学习,一般到特殊。
学习过程:可以看作一个在所有假设组成的空间中进行搜索的过程,搜索目标是找到与训练集匹配的假设。
注:假设空间中可能存在对个假设与训练集一致,即存在一个与训练集一致的假设集合,称之为版本空间。
4.归纳偏好
归纳偏好:算法在学习过程中对某种类型假设的偏好
如何在版本空间中选择合适的合适的假设,一个可行的原则是采用奥卡姆剃刀原则:若有多个假设与观察一致,则选最简单的那个。
NFL定理:若考虑所有潜在的问题,则所有的学习算法一样好,要谈论算法的相对优劣,需要针对具体的学习问题。
5.发展历程
模型评估与选择
1. 经验误差与过拟合
错误率:分类错误的样本数占样本总数的比例
精度 = 1 - 错误率
误差:模型的实际预测输出与样本的真实输出之间的差异
训练误差/经验误差:模型在训练集上的误差
泛化误差:模型在新样本上的误差
过拟合:模型过度拟合训练样本,将训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,导致泛化性能下降。
欠拟合
过拟合无法彻底避免,只能缓解减小其风险。(P≠NP)
模型选择:针对相关任务选择对应的学习算法以及对应学习算法的参数配置。理想的方案是对候选模型的泛化误差进行评估,选择泛化误差最小的那个模型。
2.评估方法
测试集:用来测试学习器/模型对新样本的判别能力,以测试集上的测试误差作为泛化误差的近似。通常假设测试样本也是从样本真实分布中独立同分布采样而得。测试集尽量不在训练集中出现、未在训练过程中使用过。
将原始数据集D做适当处理产生训练集S和测试集T,方法如下:
留出法
直接将数据集D划分为两个互斥的集合,分别作为训练集S和测试集T
注意:训练/测试集的划分要尽可能的保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。如分类任务中采用分层采样,保证样本类别比例相似。
即使给的训练/测试集的样本比例后,不同的划分仍会导致不同的训练/测试集,模型的评估结果也会有差别,故单次使用留出法得到的评估结果往往不够稳定可靠,一般采用若干次随机划分,重复进行实验评估后去平均值作为留出法的评估结果。
一般将大约2/3—4/5的样本用于训练,剩余样本用于测试。
交叉验证法
k折交叉验证/k倍交叉验证:将数据集D划分为k个大小相似的互斥子集,每个自己尽可能保持数据分布的一致性,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。k最常用的取值是10、5、20等。
与留出法类似,将数据集D划分为k个子集同样存在多种划分方式,为减小因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值(即总共进行了p×k次训练/测试)
留一法(LOO):假定数据集包含m个样本,k = m,然后作k折交叉验证
留一法只有一种划分样本的方式,不受随机样本划分方式的影响。
优点:训练集近似等价于初始数据集,实际评估的模型与期望评估的用原始数据集训练出来的模型很相似,其评估结果比较准确。
缺点:数据集比较大时计算开销大。
自助法
注:我们希望评估的是用D训练出的模型,而留出法和交叉验证法实际评估的模型都比D小,这会引入一些因训练样本规模不同而导致的估计偏差。
自助采用法/可重复采样法:从原始数据集(m个样本)m次可重复采样得到训练集,显然原始数据集中有一部分样本会在训练集中多次出现,而另一部分样本不出现,样本在m次采用中始终不被采到的概率为(1 - 1/m)^m,取极限得到36.8%,将原始数据集中不包含训练集的这些约占36.8%的数据作为测试集。这样的测试结果称为包外估计。
优点:在数据集较小、难以有效划分训练/测试集时很有用;从原始数据集中产生多个不同的训练集,有利于集成学习。
缺点:自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。
注:数据量充足更常使用留出法和交叉验证法。
调参与最终模型
调参/参数调节:在进行模型评估和选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定。
对每个参数选定一个范围和变化步长。然后进行选择。
给定包含m个样本的数据集D,在模型评估和选择过程中由于需要留出一部分数据用于测试,事实上我们只使用了一部分数据训练模型,因此,在模型选择完成后,学习算法和参数配置已选定,此时应该用数据集D重新训练模型,这个模型在训练过程中使用了所有m个样本,这才是我们最终提交给用户的模型。
测试数据:学得模型在实际使用中遇到的数据
验证集:模型评估与选择中用于评估测试的数据集
例:在研究对比不同算法的泛化性能时,用测试集上的判别效果来估计模型在实际使用时的泛化能力,而把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。
3.性能度量
性能度量:衡量模型泛化能力的评价标准。
回归任务最常用的性能度量是均方误差。
注意:概率形式的均方误差、错误率和精度。
错误率和精度
真正例TP、假正例FP、真反例TN、假反例FN
查准率:P = TP / (TP + FP)
注:查准率可以理解为预测为正例的结果中事实确实为正例的比率。查的准不准,即查的所谓正例有多少比例是真的正例。
查全率:R = TP / (TP + FN)
注:查全率可以理解为预测的全部结果中,预测为正例的结果中事实确实为正例的样本占全部结果中事实为正例的样本的比率。查的全不全,查的真的正例占样本全部正例的比例是多少。
查准率与查全率是一对矛盾的度量,通常只有在一些简单的任务中两者才能都很高。
P-R曲线:查全率为横轴,查准率为纵轴作图。
P-R曲线下的面积一定程度表征了学习器在查准率和查全率上取得双高的比例。
注:绘制P-R曲线图
一些综合卡率查准率、查全率的性能度量:
1.平衡点/BEP:查准率 = 查全率 时的取值,值越大性能越优。
2.F1度量: F1 = (2×P×R)/(P + R) = (2 × TP) / (样例总数 + TP - TN),基于P和R的调和平均。
3.实际应用中,对P和R的偏重有所不同,Fβ = ((1 + β^2)×P×R)/((β^2×P) + R),其中β> 0度量了查全率对查准率的相对重要性,β = 1 退化为标准的F1度量,β> 1是查全率有更大影响,β < 1时查准率有更大影响。
例:商品推荐为了尽可能少打扰用户查准率更重要,逃犯信息检索时更希望少漏掉逃犯,查全率更重要。
在n个二分类混淆矩阵上综合考察查准率和查全率。
FPR/假正例率:预测错误的样本中,实际为反例而预测为正例所占的比例是多少
TPR/真正例率:即查全率,预测对的真的正例占样本全部正例的比例是多少。
4.比较检验
暂未看,待续……