+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2019-07(6)

2019-08(116)

2019-09(98)

2019-10(17)

2019-11(5)

sklearn分类模型的评估(classification_report)

发布于2020-09-13 20:15     阅读(571)     评论(0)     点赞(5)     收藏(0)


0

1

2

3

4

5

scikit-learn -分类模型的评估(classification_report)
参数
sklearn.metrics.classification_report(y_true, y_pred, labels=None, target_names=None, sample_weight=None, digits=2, output_dict=False)

  • y_true:1 维数组,真实数据的分类标签
  • y_pred:1 维数组,模型预测的分类标签
  • target_names:列表,指定标签名称
  • sample_weight:1 维数组,不同数据点在评估结果中所占的权重
  • digits:评估报告中小数点的保留位数,如果 output_dict=True,此参数不起作用,返回的数值不作处理
  • output_dict:若真,评估结果以字典形式返回

返回值:字符串或字典

  • 精确度:precision,正确预测为正的,占全部预测为正的比例,TP / (TP+FP)
  • 召回率:recall,正确预测为正的,占全部实际为正的比例,TP / (TP+FN)
  • F1-score:精确率和召回率的调和平均数,2 * precision*recall / (precision+recall)
    其他参数:
  • 微平均值:micro average,所有数据结果的平均值
  • 宏平均值:macro average,所有标签结果的平均值
  • 加权平均值:weighted average,所有标签结果的加权平均值
    用法示例:
from sklearn.metrics import classification_report
y_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   support

    class 0       0.50      1.00      0.67         1
    class 1       0.00      0.00      0.00         1
    class 2       1.00      0.67      0.80         3

avg / total       0.70      0.60      0.61         5

考虑现在输入分类器的样本有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

precision(A) = 3(正确预测为A类的样本个数为3) / 4(预测为A类的样本数为4) = 0.75 recall(A) = 3 / 4(真实A类样本有4个) = 0.75

precision(B) = 1 / 2 = 0.5 recall(B) = 1 / 3 = 0.3333

precision( C ) = 2 / 3 = 0.6667 recall( C ) = 2 / 3 = 0.6667

0

1

2

3

4

5

6



所属网站分类: 技术文章 > 博客

作者:python是我的菜

链接: https://www.pythonheidong.com/blog/article/519501/f6aa1d94fd9d5e23ef65/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0
收藏该文
已收藏

评论内容:(最多支持255个字符)