python:多分类-计算混淆矩阵confusion_matrix、precision、recall、f1-score分数

这篇具有很好参考价值的文章主要介绍了python:多分类-计算混淆矩阵confusion_matrix、precision、recall、f1-score分数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.目标:

多分类,计算混淆矩阵confusion_matrix,以及accuracy、precision、recall、f1-score分数。

2.代码:

  • 1)使用sklearn计算并画出混淆矩阵(confusion_matrix)

  • 2)使用sklearn计算accuracy(accuracy_score)

  • 3)使用sklearn计算多分类的precision、recall、f1-score分数。以及计算每个类别的precision、recall、f1-score。

  • precision:precision_score https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_score.html

  • recall:recall_score https://scikit-learn.org/stable/modules/generated/sklearn.metrics.recall_score.html

  • F1 score:f1_score https://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html

  • 默认precision_score、recall_score、f1_score函数只能求出二分类问题的精准率(average参数默认为binary),不过如果要想能够求出多分类问题的精准率可以选择合理average参数的值,比如:micro、macro等。

  • 参数average有5个选项:{‘micro’微平均, ‘macro’宏平均, ‘samples’, ‘weighted’, ‘binary’},默认是default=’binary’二分类。

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score, precision_score, f1_score, recall_score, classification_report

# y_true为真实值,y_pred为预测值(此处y_true和y_pred仅作举例,随便取的值,有0~4共5个类别。)
y_true = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]
y_pred = [1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 0, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4]

# 1.计算混淆矩阵
cm = confusion_matrix(y_true, y_pred)
conf_matrix = pd.DataFrame(cm, index=['1','2','3','4','5'], columns=['1','2','3','4','5'])  #数据有5个类别
# 画出混淆矩阵
fig, ax = plt.subplots(figsize=(4.5, 3.5))
sns.heatmap(conf_matrix, annot=True, annot_kws={"size": 14}, cmap="Blues")
plt.ylabel('True label', fontsize=14)
plt.xlabel('Predicted label', fontsize=14)
plt.xticks(fontsize=14)
plt.yticks(fontsize=14)
plt.savefig('confusion.pdf', bbox_inches='tight')
plt.show()

# 2.计算accuracy
print('accuracy_score', accuracy_score(y_true, y_pred))

# 3.计算多分类的precision、recall、f1-score分数
print('Micro precision', precision_score(y_true, y_pred, average='micro'))
print('Micro recall', recall_score(y_true, y_pred, average='micro'))
print('Micro f1-score', f1_score(y_true, y_pred, average='micro'))

print('Macro precision', precision_score(y_true, y_pred, average='macro'))
print('Macro recall', recall_score(y_true, y_pred, average='macro'))
print('Macro f1-score', f1_score(y_true, y_pred, average='macro'))

# 下面这个可以显示出每个类别的precision、recall、f1-score。
print('classification_report\n',classification_report(y_true, y_pred))

3.结果:

python:多分类-计算混淆矩阵confusion_matrix、precision、recall、f1-score分数
python:多分类-计算混淆矩阵confusion_matrix、precision、recall、f1-score分数

参考:

https://blog.csdn.net/kan2281123066/article/details/103237273 利用sklearn 计算 precision、recall、F1 score

https://zhuanlan.zhihu.com/p/147663370 多分类模型Accuracy, Precision, Recall和F1-score的超级无敌深入探讨

https://cloud.tencent.com/developer/article/1632611 机器学习入门 10-8 多分类问题中的混淆矩阵文章来源地址https://www.toymoban.com/news/detail-463343.html

到了这里,关于python:多分类-计算混淆矩阵confusion_matrix、precision、recall、f1-score分数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 混淆矩阵Confusion Matrix(resnet34 基于 CIFAR10)

    目录 1. Confusion Matrix 2. 其他的性能指标 3. example 4. 代码实现混淆矩阵 5.  测试,计算混淆矩阵 6. show 7. 代码 混淆矩阵可以将真实标签和预测标签的结果以矩阵的形式表示出来,相比于之前计算的正确率acc更加的直观。 如下,是花分类的混淆矩阵: 之前计算的acc = 预测正确的

    2024年02月01日
    浏览(45)
  • Python遥感图像处理应用篇(二十八):Python绘制遥感图像分类结果混淆矩阵和计算分类精度

    Indians Pines高光谱数据,使用SVM分类方法(选取10%样本量)计算得到的结果。 参考数据: 分类数据:

    2024年02月13日
    浏览(57)
  • 详细讲解分类模型评价指标(混淆矩阵)python示例

    对于回归模型的评估方法,通常会采用平均绝对误差(MAE)、均方误差(MSE)、平均绝对百分比误差(MAPE)等方法。 对于聚类模型的评估方法,较为常见的一种方法为轮廓系数(Silhouette Coefficient ),该方法从内聚度和分离度两个方面入手,用以评价相同数据基础上不同聚类

    2024年02月06日
    浏览(57)
  • 混淆矩阵计算遥感分类精度(总体精度、Kappa系数、用户精度、生产者精度等)

    用户精度 (User’s Accuracy): 假设分类结果的某类别的用户精度为 80%,则用户拿到分类结果后,10个像元中有8个是对的,2个是错的; 生产者精度 (Producer’s Accuracy): 假设分类结果的某类别的生产者精度为 80%,那么如果该类别有10个像素的话,则有2个没有分到该类别(丢失了)。

    2024年04月10日
    浏览(98)
  • Google Earth Engine(GEE)——土地分类精度分析randomColumn产生伪随机数然后进行混淆矩阵计算

    我们在进行土地分类时,需要进行精度验证,但是之前我们要进行样本点的随机分类,也就是分出一部分作为训练样本另外一部分作为,这是我们要想产生随机种子赋值给我们所选定的训练样本,这样我们就可以随机将样本进行分成训练样本和验证样本,而我们使用的函数

    2024年02月09日
    浏览(50)
  • 论文图片绘制 Python绘制多分类混淆矩阵及可视化(颜色随正确率渐变)

    需求 论文中对多分类评价需要 混淆矩阵已获得,需要可视化 给出数据 混淆矩阵的定义以及如何读图不再描述,这里仅给出绘制方法 给出数据:8分类任务 实验代码 给出所需的包 numpy和matplotlib 定义分类标签 这里可以修改为自己所需的标签以及分类任务,如二分类只需要 两

    2024年02月12日
    浏览(40)
  • Python 使用numpy.bincount计算混淆矩阵

    Confusion matrix using numpy.bincount. np.bincount 用于统计一个非负数组中元素的出现次数。函数格式如下: 通常默认数组 x x

    2024年02月07日
    浏览(42)
  • 分类模型评估(混淆矩阵, precision, recall, f1-score)的原理和Python实现

    当我们已经获取到一个分类模型的预测值,可以通过不同指标来进行评估。 往往衡量二分类模型是基于以下的混淆矩阵概念: True Positive:真实值为正、预测值为正(真阳性) False Positive:真实值为负、预测值为正(假阳性) False Negative:真实值为正、预测值为负(假阴性)

    2024年02月04日
    浏览(52)
  • Python手动输入混淆矩阵,并计算混淆矩阵的准确率、精确率、召回率、特异度、F1-score

    其中json格式的文件如下: {     \\\"0\\\": \\\"13\\\",     \\\"1\\\": \\\"18\\\",     \\\"2\\\": \\\"23\\\",     \\\"3\\\": \\\"28\\\",     \\\"4\\\": \\\"33\\\" } 可以按照以上格式(以5分类为例),先写在记事本上再更改后缀名 *注意最后一个后面没有 “,”  没有扩展名的看下面这个图给它调出来↓ 代码部分参考如下:  参考文献:使用

    2024年02月13日
    浏览(55)
  • 分类模型评估:混淆矩阵、准确率、召回率、ROC

    在二分类问题中,混淆矩阵被用来度量模型的准确率。因为在二分类问题中单一样本的预测结果只有Yes or No,即:真或者假两种结果,所以全体样本经二分类模型处理后,处理结果不外乎四种情况,每种情况都有一个专门称谓,如果用一个2行2列表格描述,得到的就是“混淆

    2024年02月06日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包