模型评估方法和性能指标

举报
名字好难 发表于 2020/10/25 17:25:48 2020/10/25
【摘要】 在建模过程中,由于偏差过大导致的模型欠拟合以及方差过大导致的过拟合的存在,为了解决这两个问题,我们需要一整套方法及评价指标。其中评估方法用于评估模型的泛化能力,而性能指标则用于评价单个模型性能的高低。本文将介绍面对不同问题时如何挑选合适的评估方法。

在建模过程中,由于偏差过大导致的模型欠拟合以及方差过大导致的过拟合的存在,为了解决这两个问题,我们需要一整套方法及评价指标。其中评估方法用于评估模型的泛化能力,而性能指标则用于评价单个模型性能的高低。本文将介绍面对不同问题时如何挑选合适的评估方法。

在模型评估时,我们通常把样本分为训练集和测试集,训练集用于训练模型,测试集用于评估模型。在样本划分和模型验证的过程中,存在着不同的抽样方法和验证方法。

评估方法

Holdout检验

Holdout 检验是最简单也是最直接的验证方法,它将原始的样本集合随机划分成训练集和验证集两部分。比方说,对于一个点击率预测模型,我们把样本按照 70%~30% 的比例分成两部分,70% 的样本用于模型训练;30% 的样本用于模型验证,包括绘制ROC曲线、计算精确率和召回率等指标来评估模型性能。 

Holdout 检验的缺点很明显,即在验证集上计算出来的最后评估指标与原始分组有很大关系。为了消除随机性,后来又引入了“交叉检验”的思想。

交叉检验

k-fold交叉验证:首先将全部样本划分成k个大小相等的样本子集;依次遍历这k个子集,每次把当前子集作为验证集,其余所有子集作为训练集,进行模型的训练和评估;最后把k次评估指标的平均值作为最终的评估指标。在实际实验中,k经常取10。

留一验证:每次留下1个样本作为验证集,其余所有样本作为测试集。样本总 58数为n,依次对n个样本进行遍历,进行n次验证,再将评估指标求平均值得到最终 的评估指标。在样本总数较多的情况下,留一验证法的时间开销极大。事实上, 留一验证是留p验证的特例。留p验证是每次留下p个样本作为验证集,而从n个元 素中选择p个元素有 种可能,因此它的时间开销更是远远高于留一验证,故而很 少在实际工程中被应用。

自助法

不管是Holdout检验还是交叉检验,都是基于划分训练集和测试集的方法进行模型评估的。然而,当样本规模比较小时,将样本集进行划分会让训练集进一步减小,这可能会影响模型训练效果。有没有能维持训练集样本规模的验证方法呢?自助法可以比较好地解决这个问题。 

自助法是基于自助采样法的检验方法。对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集。n次采样过程中,有的样本会被重复采样,有的样本没有被抽出过,将这些没有被抽出的样本作为验证集,进行模型验证,这就是自助法的验证过程。

在样本量较多的情况下一般选择留交叉检验法来对数据进行分类,在样本较少的情况下采用自助法。

性能指标

混淆矩阵 

混淆矩阵是所有分类算法模型评估的基础,它展示了模型的推理结果和真实值的对应关系。

下图以常见的二分类问题为例:

其中列表示模型预测值,行表示数据真实值。image.png

根据图中的交叉结果会出现以下4种状况:

  • 真实值为0,预测值也为0,用字母TP(True Positive)表示真正类数据。

  • 真实值为0,预测值为1,用字母FN(False Negative)表示假反类数据。

  • 真实值为1,预测值也为1,用字母TN(True Negative)表示真反类数据。

  • 真实值为1,预测值为0,用字母FP(False Positive)表示假正类数据。

其中,True、False表示预测结果正确与否,Positive、Negative表示预测倾向为正类或者反类。

准确率

整体分类结果的准确率accuracy=(TP+TN)/(TP+FN+TN+FP)

预测为正类的准确率,即在被预测为正类中真正是正类样本比例,又称精确率或查准率precision=TP/(TP+FP)

真实为正类的准确率,即在所有正类样本中被正确识别的比例,又称召回率或查全率TPR/recall=TP/(TP+FN)

F1-Score

F1-score是综合precision和recall两个指标的判断指标,

F1-Score=2/(1/precision+1/recall)=2precisionrecall/(precision+recall),其值在0到1之间,越大越好。

真实FP为负类预测错误率,即负类被预测为正类占所有真实负类的比例FPR=FP/(FP+TN)

ROC曲线

综合评价精确率和召回率的另一种方法是ROC,又成为感受性曲线。ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以TPR为纵坐标,FPR为横坐标绘制的曲线。实际上ROC曲线是对一系列的TPR和FPR的值所构成点的连线绘制,而其中每一个点的都代表一个概率分界值,即把大于分界值得部分分为正类,小于分界值的分为负类。

对于模型而言,我们计算出每个样本属于正类的概率,然后对概率值按顺序排序,计算每个概率作为分界点的TPR和FPR,然后绘制曲线,就构成了模型的ROC曲线。

image.png

若一个学习器的ROC曲线被另一个学习器的曲线包住,那么我们可以断言后者性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性断言两者孰优孰劣。此时若要进行比较,那么可以比较ROC曲线下的面积,即AUC,面积大的曲线对应的分类器性能更好。

AUC(Area Under Curve)的值为ROC曲线下面的面积,若分类器的性能极好,则AUC为1。但现实生活中尤其是工业界不会有如此完美的模型,一般AUC均在0.5到1之间,AUC越高,模型的区分能力越好,上图AUC为0.79。若AUC=0.5,即与上图中红线重合,表示模型的区分能力与随机猜测没有差别。若AUC真的小于0.5,请检查一下是不是好坏标签标反了,或者是模型真的很差。


参考资料:

《机器学习》------ 周志华

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。