1.经验误差与过拟合
1.1 为什么会有过拟合
经验误差也叫做训练误差,是学习器在训练过程中产生的误差。因为样本量不可能等于总体,所以学习器总不能完美地进行学习,如果学习器过于依赖训练的样本,而不能很好地预测其它的情况,这时则产生了过拟合。
1.2如何评估过拟合
答案是交叉验证。
交叉验证:主要用于建模应用中,例如PCR 、PLS 回归建模中。在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行测试,并求这小部分样本的测试误差,记录它们的平方加和。一句话概括就是,从样本中取小一部分做测试集。
常见的交叉验证方法:
- Hold-Out:即一分为二,一半测试,一半训练
- K-fold (记为K-CV):即分成k份,将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集。
- Leave-One-Out:即每个样本单独作为验证集,其余的N-1个样本作为训练集
-
Bootstrapping(严格意义上不属于CV):通过随机采样,有放回取出m个(总样本量)样本数据作为训练集。而始终不被采集到的样本量是:
lim(1−1/m)m ,m取极限值为lim(1−1/m)m=1/e≈0.368 。也就是说有大于1/3的样本没被采集出来训练,可以用于测试。这样的测试结果也称为”包外估计“。
Bootstrapping在数据集小,难有效划分测试集的情况下很有用。但是,它改变了数据集的初始分布,引入了估计的偏差。因此数据量足够时,前面的方法常用些
更多详细参考博文:交叉验证 Cross-validation
1.3调参与最终模型
许多模型都有参数需要调整,即使是细微的调整,训练出的模型都可能大不相同。所以从这个角度看,调参和模型选择本质是相同的。
参数的调整,一般在范围内以等间距去取,然后组合其它参数去训练,这样训练的结果往往,不是最好的,但是即使是这样,训练起来也不容易假设有3个参数,每个参数都在[0,1]范围内。以0.2为间距,去取5个参数。组合起来都有125种可能,就是要训练125次。所以经验在这里就比较重要了。
2.性能度量
对学习器的泛化性能进行评估,不仅需要有效可行的实验方法(交叉验证),还需要有衡量模型泛化能力的评价标准,这就是性能度量。
性能度量反应了任务需求,不同地性能度量往往会导致不同地评判结果。也就是说,好和坏是相对的,这取决于任务的需求。可以有以下四类:
2.1 错误率与精度
即直接统计判断错误和正确占总体的百分比。
2.2 查全率与查准率(P-R曲线)
有些任务要求尽可能多地去预测,从而提高目标的成功预测数量,即指标为查全率,例如通缉犯识别系统。有些则要求尽可能地准确地去预测,从而提高预测结果的作用效果,即指标为查准率,如智能推荐。
这一对指标,往往?是成反比的,尽可能地去提高覆盖率,就更可能犯错。尽可能地保证准确度,就更可能不去预测或判断,不太确定的样本。
预测结果 | 预测结果 | |
真实情况 | 正例 | 反例 |
正例 | TP(真正例) | FN(假反例) |
反例 | FP(假正例) | TN(真反例) |
作用 | ||
查全率 | 衡量符合实际情况的输出为正的样例占所有实际为正的比例 |
|
查准率 | 衡量符合实际情况的输出为正的样例占输出为正的比例 |
|
准确率 | 衡量输出和实际相符的准确率 |
|
P-R曲线
2.3 ROC曲线
有了PR曲线作参考,有时候还是不能够。我们会想在查准率上划一条分界线,上为
ROC曲线&AUC
曲线的XY轴分别为,假正例率和真正例率。通过把学习的结果排序,以不同地分割点进行分割,得到不同阀值下的预测结果,分别计算对应的两个变量,假正例率和真正例率作出ROC曲线。
AUC(Arear Under ROC Curve),即ROC曲线之下的面积。这个面积越大,该学习器(模型)的泛化性能越好。即总体而言,真正利率比假正例率高出的比例更大。
都有查全率查准率和准确率等指标了,为什么还需要ROC曲线呢?
因为在样本类别不均衡的情况下(正例多于反例,反义依然),ROC和AUC能很好地衡量学习器(模型)的性能,其ROC曲线是不变的。
2.4 代价曲线
之前的所有指标,都默认所有判断错误的代价都是相等的。其实现实中,并不是这样。把一个人错认为是通缉犯,和把一个通缉犯错误地放走,明显造成的影响的是不一样的。所以需要引入代价进行计算:此处以二分类为例
二分类代价矩阵:
预测类别 | 预测类别 | |
真实类别 | 第0类 | 第1类 |
第0类 | 0 | cost01 |
第1类 | cost10 | 0 |
代价敏感错误率:
引入了代价曲线,其中横轴为正例概率代价,纵轴为归一化代价。正例概率代价计算方式为:
归一化代价计算方式为:
更多性能指标参考:
1.机器学习性能评估指标
2.机器学习模型性能评估方法笔记
3.比较检验
3.1二项分布&二项检验
3.2t检验
3.3交叉验证t检验
3.4McNemar检验
3.5Friedman检验与Nemenyi后续检验