机器学习——模型评估方法

一、模型评估概述

通常机器学习模型训练都分为训练集和测试集,训练集用来训练模型,而测试集用来评估模型效果。例如对于分类模型来说,我们使用准确率来衡量模型的好坏。准确率的定义为在预测中分类正确的样本占样本总数的比例。

一般地我们也把学习器的实际预测输出与样本的真实输出之间的差异称为“误差”,在训练集上的误差称为“训练误差”或“经验误差”。在新样本上的误差称为“泛化误差”。而我们最终的目标则是要得到“泛化误差”最小的模型。但是在实际中,我们并不知道新样本是什么样的,因此我们把已知的数据集分为训练集和测试集,尽可能的减小模型在测试集上的误差。


二、过拟合和欠拟合

1.欠拟合:模型在训练集上误差很高;

欠拟合原因:模型过于简单,没有很好的捕捉到数据特征,不能很好的拟合数据。

如上面例子,我们的数据是一份非线性数据,如果你想要用线性回归来拟合这份数据,由于数据是非线性的,模型是线性,则过于简单。所以,无论模型怎么训练,最终都不能很好的拟合数据。

2.过拟合:在训练集上误差低,测试集上误差高;

过拟合原因:模型把数据学习的太彻底,以至于把噪声数据的特征也学习到了,这样就会导致在后期测试的时候不能够很好地识别数据,模型泛化能力太差。

三、常见的分类模型评估方法、指标

1.混淆矩阵(Confusion Matrix)

在机器学习领域,混淆矩阵(Confusion Matrix),又称为可能性矩阵或错误矩阵。混淆矩阵是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。在图像精度评价中,主要用于比较分类结果和实际测得值,可以把分类结果的精度显示在一个混淆矩阵里面。

混淆矩阵的结构一般如下图表示的方法。

混淆矩阵要表达的含义:

  混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;

  每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目;每一列中的数值表示真实数据被预测为该类的数目。

    True Positive(TP):真正类。样本的真实类别是正类,并且模型识别的结果也是正类。

    False Negative(FN):假负类。样本的真实类别是正类,但是模型将其识别为负类。

    False Positive(FP):假正类。样本的真实类别是负类,但是模型将其识别为正类。

   True Negative(TN):真负类。样本的真实类别是负类,并且模型将其识别为负类。

2、准确率(Accuracy) 

分类器对样本的判定能力,将样本预测正为真实正,预测负为真实负的能力(值在0-1,越大越好)

   Accuracy = (TP+TN)/(TP+FN+FP+TN)

3、精准率(Precision)

*精准率(Precision)**指的是模型预测为 Positive 时的预测准确度,其计算公式如下:

   Precision=TP/(FP+TP)​

假如癌症检测系统的混淆矩阵如下:

则该系统的精准率 =8/(8+12)=0.4。

0.4 这个值表示癌症检测系统的预测结果中如果有 100 个人被预测成患有癌症,那么其中有 40 人是真的患有癌症。也就是说,精准率越高,那么癌症检测系统预测某人患有癌症的可信度就越高。

4、召回率(Recall)

*召回率(Recall)**指的是我们关注的事件发生了,并且模型预测正确了的比值,其计算公式如下

  Recall=TP/(FN+TP)​

5、F1 score

F1 Score 是统计学中用来衡量二分类模型精确度的一种指标。它同时兼顾了分类模型的准确率和召回率。 F1 Score 可以看作是模型准确率和召回率的一种加权平均,它的最大值是 1,最小值是 0。其公式如下:

 F1=(2Precision∗Recall)/(Precision+Recall)​

假设模型 A 的精准率为 0.2,召回率为 0.7,那么模型 A 的 F1 Score 为 0.31111。

假设模型 B 的精准率为 0.7,召回率为 0.2,那么模型 B 的 F1 Score 为 0.31111。

假设模型 C 的精准率为 0.8,召回率为 0.7,那么模型 C 的 F1 Score 为 0.74667。

假设模型 D 的精准率为 0.2,召回率为 0.3,那么模型 D 的 F1 Score 为 0.24。

从上述 4 个模型的各种性能可以看出,模型C的精准率和召回率都比较高,因此它的 F1 Score 也比较高。而其他模型的精准率和召回率要么都比较低,要么一个低一个高,所以它们的 F1 Score 比较低。
6、AUC/ROC曲线

AUC即曲线下的面积。
ROC(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线。ROC 曲线是基于混淆矩阵得出的。AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。

     TPR=TP​/(TP+FN)

     FRP=TP​/(FP+TN)

若将 FPR 作为横轴, TPR 作为纵轴,将上面的表格以折线图的形式画出来就是 ROC曲线 。

假设现在有模型 A 和模型 B ,它们的 ROC 曲线如下图所示(其中模型 A 的 ROC曲线 为黄色,模型 B 的 ROC 曲线 为蓝色):

那么模型 A 的性能比模型 B 的性能好,因为模型 A 当 FPR 较低时所对应的 TPR 比模型 B 的低 FPR 所对应的 TPR 更高。由由于随着 FPR 的增大, TPR 也会增大。所以 ROC 曲线与横轴所围成的面积越大,模型的分类性能就越高。而 ROC曲线 的面积称为AUC。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值