《机器学习》 -- 周志华 (第二章学习笔记)
模型评估与选择
经验误差与过拟合
误差
- 一般的把机器学习器在训练集上的误差成为训练误差或者经验误差
- 在新样本上的误差称为泛化误差
过拟合
已经把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降,这样的现象叫做过拟合,与之相对的是“欠拟合”
泛化误差 vs 经验误差
泛化误差 : 在 “未来”样本上的误差
经验误差:在训练集上的误差,亦称“训练误差”
泛化误差越小越好,但是经验误差过小会导致“过拟合”
评估方法
关键 :如何获得“测试集”
此处测试集应该于训练集 “互斥”
常见方法
- 留出法(hold-out)
- 交叉验证法(cross validation)
- 自助法(bootstrap)
留出法
直接将拥有的数据集分成两个互斥的集合,其中一个是训练集,一个为测试集
- 保持数据分布一致性
- 多次重复划分
- 测试集不能太大,不能太小
交叉验证法
先将数据集分成k个大小相似的互斥子集,每个子集都尽可能保持数据分布的一致性,即从D中通过分层采样得到
m表示样本数
自助法
在留出法和交叉验证法中,由于保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,这样会导致估计偏差
自助法直接以自助采样法为基础
- 训练集与原样本集同规模
- 数据分布有所改变
- “有放回取样” “可重复取样”
通过自助取样,有36.8%的样本未出现在采样数据集D’中,于是将D’做训练集,D\D’做测试集,这样的测试结果亦称“包外估计”
调参与最终模型
常涉及的两类参数
- 算法的参数: 一般由人工设定,亦称“超参数”
- 模型的参数:一般由学习确定
两种方法调参过程相似:先生产若干模型,然后基于某种评估方法进行选择
参数调得好不好往往对最终性能有关键影响
性能度量
性能度量是衡量模型泛化能力的评价标准,反映了任务需求。
使用不同的性能度量往往会导致不同的评判结果。
回归任务常用均方误差
错误率与精度
错误率
分类错误的样本数占样本总数的比例
精度
分类正确的样本数占样本总数的比例
查准率与查全率与F1
分类结果混淆矩阵
真实情况 | 预测结果 | |
---|---|---|
正例 | 反例 | |
正例 | TP(真正例) | FN(假反例) |
反例 | FP(假正例) | TN(真反例) |
+ 查准率
CSDN-Ada助手: 不知道 Java 技能树是否可以帮到你:https://edu.csdn.net/skill/java?utm_source=AI_act_java
weixin_47875311: 作者大大能不能详细说一下K-Means.m函数部分,小白看不太懂
aliez.: 您好,请问这些代码是需要分开运行的吗