机器学习笔记-多分类下的召回率和F值

分类任务中常见的评估指标,包括准确率(Accuracy)、精确率(Precision)、召回率(Recall)和值。但是在多分类场景中,我们通常也会采用召回率或者F值来作为评价指标.

1.分类评估指标

(1)二分类评估指标

假定现在有一个二分类的任务,其中0表示positive,1表示negative。同时有如下所示的标签值和预测值:

 

机器学习笔记-多分类下的召回率和F值_第1张图片

  • True Positive(TP):表示将正样本预测为正样本,即预测正确;

  • False Negative(FN):表示将正样本预测为负样本,即预测错误;

  • False Positive(FP):表示将负样本预测为正样本,即预测错误;

  • True Negative(TN):表示将负样本预测为负样本,即预测正确;

我们知道FP(False Positive)从字面意思来看表示的是错误的正类,也就是说实际上它并不是正类,而是错误的正类,即实际上为负类。因此,FP表示的就是将负样本预测为正样本的含义。再看一个FN,其字面意思为错误的负类,也就是说实际上它表示的是正类。

机器学习笔记-多分类下的召回率和F值_第2张图片准确率:所有预测对的数量,除以总的数量。

精确率:计算的是预测对的正样本在整个预测为正样本中的比重

召回率:计算的是预测对的正样本在整个真实正样本中的比重

 对于整体的评估值,常见的做法有两种:第一种是取算术平均;第二种是加权平均

 算术平均就是等权重的对各类别的评估值进行累加求和。

加权平均就是以不同的加权方式来对各类别的评估值进行累加求和。

机器学习笔记-多分类下的召回率和F值_第3张图片

 机器学习笔记-多分类下的召回率和F值_第4张图片

机器学习笔记-多分类下的召回率和F值_第5张图片 

2.多分类任务

(1)混淆矩阵

加入有如下三分类任务的预测值和真实值:

机器学习笔记-多分类下的召回率和F值_第6张图片 

先横向看再纵向看。例如第一个1(淡绿色单元格),表示的就是将真实值0预测为0的个数(预测正确);接着右边的1表示的就是将真实值0预测为1的个数;淡绿色单元格中的1表示的就是将真实值1预测为1的个数;淡绿色单元格中的2表示的就是将真实值2预测为2的个数。也就是说只有这个对角线上的值才表示模型预测正确的样本的数量。

 (2)指标计算

机器学习笔记-多分类下的召回率和F值_第7张图片

机器学习笔记-多分类下的召回率和F值_第8张图片 机器学习笔记-多分类下的召回率和F值_第9张图片

代码实现:

借助sklearn中的classification_report模块来完成所有的计算过程。

from sklearn.metrics import classification_report
y_true = [1, 1, 1, 0, 0, 0, 2, 2, 2, 2]
y_pred = [1, 0, 0, 0, 2, 1, 0, 0, 2, 2]
print(classification_report(y_true, y_pred))

 注解:其中macro avg就是算术平均,而weighted avg就是上面介绍的加权平均。

 以上内容均来源于月来客栈

你可能感兴趣的:(机器学习,学习笔记,分类,python)