《机器学习》–周志华 第二章学习笔记
经验误差与过拟合
误差
- 一般的把机器学习器在训练集上的误差成为训练误差或者经验误差
- 在新样本上的误差称为泛化误差
过拟合
已经把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降,这样的现象叫做过拟合,与之相对的是“欠拟合”
泛化误差 vs 经验误差
泛化误差 : 在 “未来”样本上的误差
经验误差:在训练集上的误差,亦称“训练误差”
泛化误差越小越好,但是经验误差过小会导致“过拟合”
评估方法
关键 :如何获得“测试集”
此处测试集应该于训练集 “互斥”
常见方法
- 留出法(hold-out)
- 交叉验证法(cross validation)
- 自助法(bootstrap)
留出法
直接将拥有的数据集分成两个互斥的集合,其中一个是训练集,一个为测试集
- 保持数据分布一致性
- 多次重复划分
- 测试集不能太大,不能太小
交叉验证法
先将数据集分成k个大小相似的互斥子集,每个子集都尽可能保持数据分布的一致性,即从D中通过分层采样得到
m表示样本数
自助法
在留出法和交叉验证法中,由于保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,这样会导致估计偏差
自助法直接以自助采样法为基础
- 训练集与原样本集同规模
- 数据分布有所改变
- “有放回取样” “可重复取样”
通过自助取样,有36.8%的样本未出现在采样数据集D’中,于是将D’做训练集,D\D’做测试集,这样的测试结果亦称“包外估计”
调参与最终模型
常涉及的两类参数
- 算法的参数: 一般由人工设定,亦称“超参数”
- 模型的参数:一般由学习确定
两种方法调参过程相似:先生产若干模型,然后基于某种评估方法进行选择
参数调得好不好往往对最终性能有关键影响
性能度量
性能度量是衡量模型泛化能力的评价标准,反映了任务需求。
使用不同的性能度量往往会导致不同的评判结果。
回归任务常用均方误差
错误率与精度
错误率
分类错误的样本数占样本总数的比例
精度
分类正确的样本数占样本总数的比例
查准率与查全率与F1
分类结果混淆矩阵
真实情况 | 预测结果 | |
---|---|---|
正例 | 反例 | |
正例 | TP(真正例) | FN(假反例) |
反例 | FP(假正例) | TN(真反例) |
查准率
$$ P =\frac{TP}{TP+FP}$$
查全率
$$R = \frac{TP}{TP+FN}$$
查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低
P-R曲线
F1度量
$$F1 = \frac{2PR}{P+R} = \frac{2*TP}{样例总数+TP-TN}$$
对查准率/查全率的不同偏好
其中$$\beta>1$$时查全率影响更大,相反$$\beta<1$$时查准率影响更大
宏XX 、微XX
- 在各混淆矩阵上分别计算出查准率和查全率,在计算其平均值,这样就得到了宏查准率、宏查全率、宏F1
- 将各混淆矩阵的对应元素进行平均,得到$$TP、FP、TN、FN$$平均值,再基于这些平均值计算出“微查准率”、“微查全率”和“微F1”
ROC、AUC
ROC全称 :受试者工作特征(Receiver Operating Characteristic)
根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以他们为横、纵坐标作图,就得到了“ROC曲线”
AUC可通过对ROC曲线下各部分的面积求和而得
AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系。
代价敏感错误率与代价曲线
非均等代价(unequal cost)
比较检验
在某种度量下取得评估结果后,并不能直接比较以评判优劣
- 测试性能不等于泛化性能
- 测试性能随着测试集的变化而变化
- 机器学习算法本身有一定的随机性
常用方法
两学习器比较
交叉验证 t 检验(基于成对 t 检验)
k 折交验证,5 * 2 交叉验证
McNemar 检验(基于列联表,卡方检验)
多学习器比较
Friedman + Nemenyi
- Friedman 检验(基于序值,F检测,判断“是否都相同”)
- Nemenyi 后续检验 (基于序值,进一步判断两两差别)
偏差与方差
对回归任务,泛化误差可通过“偏差-方差分解”拆解为:
- 训练不足时,学习器拟合能力不强,偏差主导
- 随着训练程度加深,学习器拟合能力逐渐增强,方差逐渐主导
- 训练充足后,学习器的拟合能力很强,方差主导