sklearn.metrics.classification_report模块
一.介绍
多分类任务评估指标生成工具,指标如Precision,Recall, F1。
二.函数
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=range(len(你的标签数)),即多分类任务的总类目数。如果不设置,当你测试集样本中的标签数没有完全覆盖总标签数时,就会报错:比如你总标签类别为1000个,但在你的测试集中包含的标签类别只有999个,就会报不匹配错误;
target_name: 与标签匹配的名称,与labels映射的标签真实名字,如三分类,labels=[0,1,2],target_names=[消极,中等,积极]
sample_weight:设置权重的参数,一般不用,需要就可以用;
digits:指定输出格式的精确度;
output_dict:一般不用;如果为True,则将输出作为dict返回
返回示例:
五列数据,第一列为label对应的target_name, 后四列为评估指标:precision,recall,F1-score, support
在这个报告中:
- support:当前行的类别在测试数据中的样本总量;
- precision:精度=正确预测的个数(TP)/被预测正确的个数(TP+FP);即模型预测的结果中有多少是预测正确的
- recall:召回率=正确预测的个数(TP)/预测个数(TP+FN);即某个类别测试集中的总量,有多少样本预测正确了;
- f1-score:F1 = 2*精度*召回率/(精度+召回率)
- micro avg:计算所有数据下的指标值,假设全部数据 5 个样本中有 3 个预测正确,所以 micro avg 为 3/5=0.6
- macro avg:每个类别评估指标未加权的平均值,比如精准率的 macro avg,
(0.50+0.00+1.00)/3=0.5
- weighted avg:加权平均,就是测试集中样本量大的,我认为它更重要,给他设置的权重大点;比如第一个值的计算方法,
(0.50*1 + 0.0*1 + 1.0*3)/5 = 0.70