#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
今日推荐
周排行