模型评估-混淆矩阵&分类报告

#coding=utf-8

import  numpy as np

from sklearn.metrics import confusion_matrix, classification_report

#真实分类结果
A=[1,2,3,4,2,3,1]
#经过模型处理后得到的分类结果
B=[1,2,3,3,1,2,1]


print confusion_matrix(A, B)

'''
结果:
[[2 0 0 0]
 [1 1 0 0]
 [0 1 1 0]
 [0 0 1 0]]


对角线值越大说明分类越正确

类1:总数为2(第一行所有元素值相加) 类1分类正确率都正确(没有把属于类1分到其他类) 即召回率等于1
类2: 总数为2,有一个错误分类吧属于类2分到类1去了
类3:总数为2,有一个错误分类,把属于类3的分到类2去了
类4:总数为1,有一个错误分类,把属于类4的分到类3了

'''

print (classification_report(A, B))

'''
结果:
         precision    recall  f1-score   support

          1       0.67      1.00      0.80         2
          2       0.50      0.50      0.50         2
          3       0.50      0.50      0.50         2
          4       0.00      0.00      0.00         1

avg / total       0.48      0.57      0.51         7

f1-socre: 2*precision*recall/(precision+recall)
support:  实际每类样本的个数

类1: 召回率=1,精确率=0.67说明,本类分类正确,其他类有错分到本类的情况
类2: 召回率<1, 说明本类的有错分到其他类的情况

召回率越大说明,本类错分到其他类的情况小


总结:
召回率:说明本类分类的正确性,召回率越大说明,对本类的识别效果越好
精确率:给出的结果有多少分类正确
'''

猜你喜欢

转载自blog.csdn.net/lylclz/article/details/79835023