当前位置: 代码迷 >> 综合 >> sklearn.metrics.classification_report介绍及类目数异常解决
  详细解决方案

sklearn.metrics.classification_report介绍及类目数异常解决

热度:8   发布时间:2024-02-10 21:52:05.0

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

 

 

  相关解决方案