一、评估方法
1、留出法(分层采样)
2、交叉验证法:
p次k折交叉验证:划分为p个子集并训练k次,当k=m(样本总数)时,称为留一法
3、自助法(放回/不放回):在集成学习等方法中好处很多,但由于改变了初始数据集的分布,引入了估计偏差
二、性能度量
PR曲线
precision(精准率)和recall(召回率)
精准率P = TP / ( TP + FP )
召回率R = TP / ( TP + FN )
在众多学习器对数据进行学习后,如果其中一个学习器的PR曲线A完全包住另一个学习器B的PR曲线,则可断言A的性能优于B。但是A和B发生交叉,那性能该如何判断呢?我们可以根据曲线下方的面积大小来进行比较,但更常用的是平衡点F1。平衡点(BEP)是P=R时的取值(斜率为1),F1值越大,我们可以认为该学习器的性能较好。F1的计算如下所示: F1 = 2 * P * R /( P + R )
ROC曲线
真正例率TPR = TP / ( TP + FN )
假正例率FPR = FP / ( FP + TN )
A,B,C三个模型对应的ROC曲线之间交点,且AUC值是不相等的,此时明显更靠近(0,1)点的A模型的分类性能会更好。
ROC曲线的绘制步骤如下:
- 假设已经得出一系列样本被划分为正类的概率Score值,按照大小排序。
- 从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于某个样本,其“Score”值为0.6,那么“Score”值大于等于0.6的样本都被认为是正样本,而其他样本则都认为是负样本。
- 每次选取一个不同的threshold,得到一组FPR和TPR,以FPR值为横坐标和TPR值为纵坐标,即ROC曲线上的一点。
- 根据3中的每个坐标点,画图。
对应于同一个模型,当其中的正负样本分布发生变化时,ROC曲线能够基本保持不变,这就保证至少在模型评估阶段,样本分布不会对这一过程产生太大的影响。
代价曲线
敏感性和特异性:
SN = TP / ( TP + FN )
SP = TN / ( TP + TN )
三、比较检验
假设检验
泛化错误率为 ϵ学习器被测得测试错误率为 ϵ 的概率:
阴影部分的面积如下,其中1-α 反映了置信度confidence
交叉验证 t 检验
McNemar 检验
Friedman检验与 Nemenyi后续检验
若"所有算法的性能相同"这个假设被拒绝,则说明算法的性能显著不同.这时需进行"后续检验" (post-hoc test)来进一步区分各算法.常用的有 Nemenyi 后续检验。
Nemenyi 检验计算出平均序值差别的临界值域:
四、偏差与方差
偏差-方差分解是解释学习器泛化性能的重要工具。在学习算法中,偏差 指的是预测的期望值与真实值的偏差,方差 则是每一次预测值与预测值得期望之间的差均方。实际上,偏差体现了学习器预测的准确度,欠拟合表明拟合效果不好,自然高偏差;而方差体现了学习器预测的稳定性,样本每一次预测值和真实值的误差的波动,过拟合容易导致高方差。通过对泛化误差的进行分解,可以得到:
1.期望泛化误差=方差+偏差
2.偏差刻画学习器的拟合能力
3.方差体现学习器的稳定性
易知:方差和偏差具有矛盾性,这就是常说的偏差-方差窘境(bias-variance dilamma),随着训练程度的提升,期望预测值与真实值之间的差异越来越小,即偏差越来越小,但是另一方面,随着训练程度加大,学习算法对数据集的波动越来越敏感,方差值越来越大。换句话说:在欠拟合时,偏差主导泛化误差,而训练到一定程度后,偏差越来越小,方差主导了泛化误差。因此训练也不要贪杯,适度辄止。