博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解metrics.classification_report
阅读量:6149 次
发布时间:2019-06-21

本文共 1954 字,大约阅读时间需要 6 分钟。

混淆矩阵是一个矩阵,类别个数可以有多个,a[i][j]表示将类别i的样本误判为类别j的个数。

classification_report用来分析不同类别的准确率,召回率,F1值等,从而便于按照类别查看准确率、召回率。

总体的正确率跟classification_report中的正确率是不一样。

import numpy as npimport sklearn.metrics as metricsdef report(mine, real):    if len(mine) != len(real):        print("mine和real长度不一样")        exit(0)    all_classes = set(list(mine) + list(real))    precision = dict()    recall = dict()    f1 = dict()    support = dict()    for c in all_classes:        if np.count_nonzero(mine == c):            precision[c] = np.count_nonzero(np.logical_and(mine == real, real == c)) / np.count_nonzero(mine == c)        else:            precision[c] = 0        if np.count_nonzero(real == c):            recall[c] = np.count_nonzero(np.logical_and(mine == real, real == c)) / np.count_nonzero(real == c)        else:            recall[c] = 0        if precision[c] and recall[c]:            f1[c] = 2 / (1 / precision[c] + 1 / recall[c])        else:            f1[c] = 0        support[c] = np.count_nonzero(real_ans == c)    s = ''    s += "%10s%10s%10s%10s%10s\n" % ("class", "precision", "recall", "f1", "support")    fmtstr2 = "%10s%10.2f%10.2f%10.2f%10d\n"    for c in all_classes:        s += (fmtstr2 % (c, precision[c], recall[c], f1[c], support[c]))    s += fmtstr2 % ("avg",                    np.sum([precision[c] * support[c] for c in all_classes]) / len(mine),                    np.sum([recall[c] * support[c] for c in all_classes]) / len(mine),                    np.sum([f1[c] * support[c] for c in all_classes]) / len(mine),                    len(mine)                    )    return smy_ans = np.random.randint(0, 2, 10)real_ans = np.random.randint(0, 2, 10)print(my_ans)print(real_ans)print("分类报告是按照类别分开的")print('=' * 10)print(metrics.classification_report(real_ans, my_ans))print('=' * 10)print(report(my_ans, real_ans))print("准确率跟上面的正确率不一样")print(metrics.accuracy_score(real_ans, my_ans))print(np.count_nonzero(my_ans == real_ans) / len(my_ans))

转载地址:http://jomya.baihongyu.com/

你可能感兴趣的文章
.NET Core微服务之基于Polly+AspectCore实现熔断与降级机制
查看>>
vue组件开发练习--焦点图切换
查看>>
浅谈OSI七层模型
查看>>
Webpack 2 中一些常见的优化措施
查看>>
移动端响应式
查看>>
python实现牛顿法求解求解最小值(包括拟牛顿法)【最优化课程笔记】
查看>>
js中var、let、const的区别
查看>>
腾讯云加入LoRa联盟成为发起成员,加速推动物联网到智联网的进化
查看>>
从Python2到Python3:超百万行代码迁移实践
查看>>
Windows Server已可安装Docker,Azure开始支持Mesosphere
查看>>
简洁优雅地实现夜间模式
查看>>
react学习总结
查看>>
微软正式发布PowerShell Core 6.0
查看>>
Amazon发布新的会话管理器
查看>>
InfoQ趋势报告:DevOps 和云计算
查看>>
舍弃Python,为什么知乎选用Go重构推荐系统?
查看>>
在soapui上踩过的坑
查看>>
MySQL的字符集和字符编码笔记
查看>>
ntpd同步时间
查看>>
must implement java.io.Serializable hessian
查看>>