admin 管理员组文章数量: 887021
Accuracy, Precision, Recall和F1
本文解释分类问题常用评价指标Accuracy, Precision, Recall和F1-score
主要参考以下文章
多分类模型Accuracy, Precision, Recall和F1-score的超级无敌深入探讨
02_混淆矩阵、准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F值(F-Measure) +Roc曲线和PR曲线+sklearn中分类模型评估API+ 自己补充整理
precision,recall,F1-score主要解决数据集中不平衡的问题,偏斜类数据:正负样本比例差距巨大时,为偏斜类数据,尤其是在医疗应用领域。
本文和之前介绍的模型评估名词介绍相结合。
简要记录一些形象化表述,为了能快速理解与区分。
Precision着重评估在预测为Positive的所有数据中,真实Positve的数据到底占多少?
Recall着重评估:在所有的Positive数据中,到底有多少数据被成功预测为Positive?
F值就是尝试做precision和recall之间协调的一个评价指标,一般看F值,只有当precision和recall都还不错的时候,F值才会高
代码记录:
sklearn.metrics.classification_report(y_true, y_pred, labels=None, target_names=None, sample_weight=None, digits=2, output_dict=False)y_true:类别的真实标签值,类标签的列表y_pred:预测值的标签,类标签的列表labels:labels: 报告中要包含的标签索引的可选列表;这个参数一般不需要设置(如果要设置,比如200个类别,那么就应该如此设置:lable= range(200); 然后在sklearn.metrics.classification_report中将labels=label),可是有的时候不设置就会出错,之所以会出错是因为:比如你总共的类别为200个类,但是,你的测试集中真实标签包含的类别只有199个,有一个类别缺失数据,如果不设置这个参数就会报错;target_names:与标签匹配的名称,就是一个字符串列表,在报告中显示;也即是显示与labels对应的名称sample_weight:设置权重的参数,一般不用,需要就可以用digits:这个参数是用来设置你要输出的格式位数,就是几位有效数字吧,大概就是这个意思,即是输出格式的精确度;output_dict:一般不用,好像没啥用;如果为True,则将输出作为dict返回。return:每个类别精确率与召回率
from sklearn.metrics import classification_reporty_true = [0, 1, 2, 2, 2]
y_pred = [0, 0 ,2, 2, 1]
target_names = ['class 0', 'class 1', 'class 2']
print(classification_report(y_true,y_pred,target_names=target_names))
precision recall f1-score supportclass 0 0.50 1.00 0.67 1class 1 0.00 0.00 0.00 1class 2 1.00 0.67 0.80 3accuracy 0.60 5macro avg 0.50 0.56 0.49 5
weighted avg 0.70 0.60 0.61 5
本文标签: Accuracy Precision Recall和F1
版权声明:本文标题:Accuracy, Precision, Recall和F1 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1687139822h68438.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论