机器学习(周志华)_模型评估与选择

错误率(error rate): 分类错误的样本数占样本总数的比例

 

精度(accuracy): 1-错误率

误差(error): 学习器的实际预测输出与样本的真实输出之间的差异

训练误差(training error) or 经验误差(expirical error): 学习器在训练集上的误差

泛化误差(generalization): 在新样本上的误差

过拟合(overfitting): 可能把训练样本自身的一些特点当作了所有的样本都会有的一般性质,导致泛化能力下降

欠拟合(underfitting): 对训练样本的一般性质尚未学习好

模型选择的理想解决方案是对候选模型的泛化误差进行评估,然后选择泛化误差最小的模型。

评估方法

使用一个测试集(testing set)来测试学习器对新样本的判别能力,以测试集上的测试误差(testing error)作为泛化误差的近似。

测试集应尽可能与训练集互斥。(重复会导致评估结果会过于乐观)

从一个数据集中产生出训练集和测试集,有以下几种常见的作法:

留出法(hold-out)

直接将数据集划分为两个互斥的集合。

划分要尽可能保持数据分布的一致性,保留类别比例的采样方法称为分层采样(stratified sampling)

使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果

测试集小时,评估结果的方差(variance)较大;训练集小时,评估结果偏差(bias)较大。这个问题没有完美的解决方案,常见做法是将大约2/3~4/5的样本用于训练,剩余的用于测试

(Error反映的是整个模型的准确度,Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性    from: orangeprince    https://www.zhihu.com/question/27068705/answer/35151681)

(Bias与Variance两者之间的trade-off是机器学习的基本主题之一)

交叉验证法(cross validation)

先将数据集D划分成k个大小相似的互斥子集,每个子集都尽可能保持数据的一致性,即从数据集中通过分层采样得到。每次用k-1个子集的并集作为训练集,余下的一个子集作为测试集。结果是这k次测试结果的平均值。k最常用的值是10

k折交叉验证通常要随机使用不同的划分(划分概念参考离散数学)重复p次,最终评估结果是这p次结果的平均值。(即一共进行了p*k次训练/测试

留一法(Leave-One-Out, LOO): k=|D|。不受样本划分的影响,但|D|较大时开销过大。

自助法(bootstrapping)

减少训练样本规模不同造成的影响。

给定包含m个样本的数据集D,采样产生数据集D’:每次从D中挑选一个样本,将其拷贝放入D’,然后将其再放回D中,重复m次,得到包含m个样本的数据集D’。

这样D中约有36.8%的样本未出现在D’中。可将D’作为训练集,D\D'作为测试集。

自助法在数据集小时适用。自助法改变了原始数据的分布,数据量充足时通常采用留出法和交叉验证法

补充

为了加以区分,模型评估与选择中用于评估的数据集称为验证集(validation set),实际中遇到的数据称为测试数据

在模型选择完成、参数配置选定后,应该用整个数据集D重新训练模型,这才是最终模型

调参

常用做法:对每个参数选定一个范围和变化步长。

性能度量(performance measure)

衡量模型泛化能力的评价标准

下面是分类任务常用性能度量:

错误率与精度

查准率、查全率、F1

引入原因:错误率有时不够用,如进行信息检索时,更关心的是“检索出的信息有多少是用户感兴趣的”,“用户感兴趣的信息有多少是被检索出来了的”,这时查准率(precision)和查全率(recall)更适用于度量性能。

查准率        P=TP/(TP+FP)        预测为正的样例中有多少是真正的正样例

查全率        R=TP/(TP+FN)        样本中的正例有多少被预测正确

二分类问题的混淆矩阵如下:

分类结果混淆矩阵
真实情况预测结果
正例反例
正例TP(真正例)FN(假反例)
反例FP(假正例)TN(真反例)

查准率为纵轴,查全率为横轴,做出P-R曲线图

在这里插入图片描述

若一个学习器的P-R曲线被另一个学习器的曲线完全“包住”,则可断言后者性能优于前者

平衡点(Break-Even Point,简称BEP)是查准率=查全率时的取值。

 F1度量:基于查准率和查全率的调和平均

F1=\frac{1}{2}\cdot \left ( \frac{1}{P}+\frac{1}{R} \right )=\frac{2\times P\times R}{P+R}=\frac{2 \times TP}{|D| +TP-TN}

我们有多个二分类混淆矩阵,应该怎么评价F1指标呢?分类模型的评价指标--混淆矩阵,ROC,AUC,KS,Lift,Gain_shy19890510的博客-CSDN博客_lift

多个二分类混淆矩阵可能有以下几种情况:多个二分类混淆矩阵可能有以下几种情况:多次训练/测试,多个数据集上进行训练/测试,多分类任务的两两类别组合等

设有n个混淆矩阵,计算出查全率和查准率的平均值,在计算F1即可

                                    

这种做法认为每一次的混淆矩阵(训练)是同等权重的

(2)微F1

设有n个混淆矩阵,计算出混淆矩阵对应元素(TP,FP,FN,TN)的平均值,再计算查全率、查准率,F1

                                   

这种做法认为每一个样本的权重是一样的

ROC曲线(curve), AUC

评价学习器性能,检验分类器对客户进行正确排序的能力

分类模型的评价指标--混淆矩阵,ROC,AUC,KS,Lift,Gain_shy19890510的博客-CSDN博客_lift

 分类器产生的结果通常是一个概率值不是直接的0/1变量,通常数值越到,代表正例的可能性越大。

 根据任务的不同也会采取不同的“截断点”,大于则为正例,小于则为反例。如重视查全率,则阈值可以设置低一些;而重视查准率,阈值可以设置高一些。


 如果设定了截断点或明确了任务,那么我们根据混淆矩阵就可以知道分类器的效果好坏。

 在未设定截断点(任务不明确)情况下,我们如何评价一个分类模型的效果的好坏或者比较不同分类模型效果?

 我们可以观察这个学习器利用所有可能的截断点(就是所有样本的预测结果)对样本进行分类时的效果,注意要先对所有可能的截断点进行排序,方便对比观察。


 ROC曲线描绘的是不同的截断点时,并以FPR和TPR为横纵坐标轴,描述随着截断点的变小,TPR随着FPR的变化。

 纵轴:真正利率 TPR=实际正例中被判断为正例的比率 = TP/(TP+FN),其实就是查全率

 横轴:假正利率 FPR=实际反例中被判断为正例的比率 = FP/(FP+TN)


如果是随机分类,没有进行任何学习器,FPR=TPR,即正例分对和负例分错概率相同,预测出来的正例负例和正例负例本身的分布是一致的,所以是一条45°的直线。因此,ROC曲线越向上远离这条45°直线,说明用了这个学习器在很小的代价(负例分错为正例,横轴)下达到了相对较大的查全率(TPR)。


 


 作图步骤:

 1. 根据学习器的预测结果(注意,是正例的概率值,非0/1变量)对样本进行排序(从大到小)-----这就是截断点依次选取的顺序

 2. 按顺序选取截断点,并计算TPR和FPR---也可以只选取n个截断点,分别在1/n,2/n,3/n等位置

 3. 连接所有的点(TPR,FPR)即为ROC图

 例图:因为样本有限,通常不是平滑曲线
 


 判断标准:

 1. 一个ROC曲线完全”包住“另一个ROC曲线--->第一个学习器效果更好

 2. 两个ROC曲线相交--->利用ROC曲线下的面积(AUC,area under ROC curve,是一个数值)进行比较

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值