001 分类模型评估指标

Posted xdliyin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了001 分类模型评估指标相关的知识,希望对你有一定的参考价值。

  • 二分类问题
  • 多分类问题
  • 连续变量问题

二、简单二分类问题的延伸

  如果只是简单的二分类问题,只需要一个二分类的混淆矩阵即可对模型进行评估。但如果问题发生如下变化:

  • 情况1:基于同一组数据集多次训练/测试不同的模型 
  • 情况2:基于多个数据集测试评估同一个模型
  • 情况3:执行多分类任务

  此时,会产生多个不同的混淆矩阵,则需要引入两个新的概念“宏”与“微”。

(1)“宏”:

  当产生n个混淆矩阵时,分别计算每个混淆矩阵的Precision,recall,F-measure,再计算各自的平均值,即产生:宏查准率 macro-P,宏查全率 macro-R,macro-F。

(2)“微”:

  当产生n个混淆矩阵时,先将n个混淆矩阵中的TP,FP,TN,FN对应求平均值。然后按照简单二分类问题中Precision,recall,F1-measure的公式,分别求:微查准率 micro-P,微查全率 micro-R, micro-F。

1 from sklearn.metrics import precision_score
2 y_true = [0, 1, 2, 0, 1, 2]
3 y_pred = [0, 2, 1, 0, 0, 1]
4 p1 = precision_score(y_true, y_pred, average=macro)  
5 p2 = precision_score(y_true, y_pred, average=micro)
6 p3 = precision_score(y_true, y_pred, average=weighted)
7 p4 = precision_score(y_true, y_pred, average=None)

技术图片

 参数:average介绍如下:(precision,recall,f1-score同)

 技术图片

三、多分类问题

(1)一般来说,多分类问题也可以拆分成n个二分类问题,即可产生n个混淆矩阵,使用上述“宏”“微”指标进行模型评估。举例子分析:150个样本数据,分成三类,每类50个样本数据,如下表所示(每行表示真实标签,每列表示预测标签)。

  类1 类2 类3
类1 43 5 2
类2 2 45 3
类3 0 1 49

  从表格数据中可以看出,对于类1,有43个样本数据预测正确,5个样本被错分为类2,2个样本数据被错为分类3。 同理,对于类2,有45个样本数据预测正确,2个样本数据被错分为类1,3个样本数据被错分为类3。对于类3,有49个样本数据预测正确,1个样本数据被错分为类2。之后,可分别计算每个类别precision,recall,F1-score。

(2)汉明损失(hamming loss):其中|D|表示样本总数,|L|表示标签总数,x表示预测标签,yi 表示真实标签,xor表示异或关系,即 预测标签与真实标签的异或关系。从公式上可以看出,汉明损失关注的是被错误分类的标签的个数,所以,汉明损失值越小,模型效果越佳。

技术图片

1 from sklearn.metrics import hamming_loss
2 y_pred = [1, 2, 3, 4]
3 y_true = [2, 2, 3, 4]
4 hamming_loss(y_true, y_pred)  #输出结果为0.25
5  
6 hamming_loss(np.array([[0, 1], [1, 1]]), np.zeros((2, 2)))  #输出结果为0.75

(3)交并比 IOU(intersection over union):交比并

  • 在连续性问题中,IOU表示的面积之比,即预测与真实的交集面积 比上 预测与真实的并集面积。
  • 在分类问题中,IOU可近似用如下公式进行计算(参考百度百科)

          技术图片

 

参考资料:

 

 


以上是关于001 分类模型评估指标的主要内容,如果未能解决你的问题,请参考以下文章

机器学习之分类模型评估指标及sklearn代码实现

1.6 分类模型的评估方法

分类模型评估的实际编码

分类模型的评估和模型选择与调优

模型评估——评估指标的局限性

R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化基于数据阳性样本比例选择合适的分类评估指标