机器学习——混淆矩阵、Precison、Recall、Accuracy、F1-score的使用

假设有10个样本,属于A、B、C三个类别。假设这10个样本的真实类别和预测的类别分别是:

真实:A A A C B C A B B C

预测:A A C B A C A C B C

(1) 求出混淆矩阵。

(2)求出每个类别的P, R, 和F1。

草稿纸解:

略····

直接套公式即可,可以看以下文章中的混淆矩阵部分。

机器学习——分类评价指标_猿_同学的博客-CSDN博客ROC是一个用于度量分类中的非均衡性的工具,ROC曲线及AUC常被用来评价一个二值分类器的优劣。为什么要使用ROC和AUC呢?因为,在实际的数据集中经常会出现类别不平衡现象,即女性本比男性样本多很多(或者相反),而且测试数据中的男女样本的分布也可能随着时间而变化。而在这种情况下,ROC曲线能够保持不变。https://blog.csdn.net/qq_21402983/article/details/124106002

代码解:

import pandas as pd
from sklearn.metrics import classification_report,confusion_matrix

y_test=pd.DataFrame(['A' ,'A', 'A', 'C', 'B', 'C', 'A', 'B' ,'B', 'C'])
y_pred=pd.DataFrame(['A' ,'A', 'C', 'B', 'A', 'C', 'A', 'C', 'B', 'C'])
print(confusion_matrix(y_test,y_pred))
print(metrics.classification_report(y_test,y_pred))

 

print("查准率:",metrics.precision_score(y_test,y_pred,average=None))
print("召回率:",metrics.recall_score(y_test,y_pred,average=None))
print("F1分数:",metrics.f1_score(y_test,y_pred,average=None))


笔记:

当我想单独输出各个指标时报错:

print("查准率:",metrics.precision_score(y_test,y_pred))
print("召回率:",metrics.recall_score(y_test,y_pred))
print("F1分数:",metrics.f1_score(y_test,y_pred))

ValueError: Target is multiclass but average='binary'. Please choose another average setting, one of [None, 'micro', 'macro', 'weighted'].

解决办法
原代码基础上添加了average=‘micro’。

from sklearn.metrics import precision_score, recall_score

precision_score(y_train, y_train_pred, average='micro')

average参数定义了该指标的计算方法,二分类时average参数默认是binary;多分类时,可选参数有micro、macro、weighted和samples。

None:返回每个班级的分数。否则,这将确定对数据执行的平均类型。

binary:仅报告由指定的类的结果pos_label。仅当targets(y_{true,pred})是二进制时才适用。

micro:通过计算总真阳性,假阴性和误报来全球计算指标。也就是把所有的类放在一起算(具体到precision),然后把所有类的TP加和,再除以所有类的TP和FN的加和。因此micro方法下的precision和recall都等于accuracy。

macro:计算每个标签的指标,找出它们的未加权平均值。这不会考虑标签不平衡。也就是先分别求出每个类的precision再求其算术平均。

weighted:计算每个标签的指标,并找到它们的平均值,按支持加权(每个标签的真实实例数)。这会改变“宏观”以解决标签不平衡问题; 它可能导致F分数不在精确度和召回之间。

samples:计算每个实例的指标,并找出它们的平均值(仅对于不同的多标记分类有意义 accuracy_score)。

参考:https://blog.csdn.net/datongmu_yile/article/details/81750737
 

猜你喜欢

转载自blog.csdn.net/qq_21402983/article/details/124137687
今日推荐