PyCM多类别混淆矩阵分析python库功能使用探究

 更新时间:2024年01月25日 10:47:39   作者:小寒聊python  
这篇文章主要为大家介绍了python编写的PyCM多类混淆矩阵库,用于多类别混淆矩阵分析,帮助用户从不同角度评价分类模型的表现,这些指标包括但不限于准确率、召回率、F1分数、Kappa 统计量等,支持二分类、多分类及多标签分类问题

今天给大家分享一个神奇的 python 库,PyCM

https://github.com/sepandhaghighi/pycm 

PyCM多类混淆矩阵库

PyCM是 Python Confusion Matrix 的缩写,是一个用 Python 编写的多类混淆矩阵库,专门用于多类别混淆矩阵分析。

它提供了一种简单而有效的方式来评估分类器的性能。通过分析混淆矩阵,PyCM 能够提供多种统计指标,帮助用户从不同角度评价分类模型的表现。这些指标包括但不限于准确率、召回率、F1分数、Kappa 统计量等,支持二分类、多分类及多标签分类问题。

特点

PyCM 具有如下特点。

  • 多类支持

    PyCM 专门设计用于轻松处理多类混淆矩阵。与其他一些主要关注二元分类的软件包不同,PyCM 使用户能够在涉及多个类的场景中评估模型。

  • 多功能性

    PyCM 是一个多功能库,除了基本的混淆矩阵计算之外,还支持广泛的功能。PyCM 具有可视化、比较、参数推荐和多标签等功能,为深入模型评估提供了全面的工具包。

  • 广泛的指标集

    PyCM 提供了广泛的指标集来评估模型性能。从准确度、精确度、召回率和 F1 分数等标准指标到标记性和信息性等高级指标,PyCM 提供了模型优缺点的整体视图。这些丰富的指标增强了分析的粒度,使用户能够就模型改进做出明智的决策。

库的安装

可以直接通过 pip 来进行安装。

pip install pycm

混淆矩阵

PyCM 的 ConfusionMatrix 用法涉及通过提供实际向量和预测向量、直接混淆矩阵或从文件加载信息来创建对象。实例化后,你可以访问大量统计指标和可视化。

下面我们来看一个简单的案例,通过提供实际向量和预测向量来实例化 ConfusionMatrix 对象。

from pycm import *
y_actu = [2, 0, 2, 2, 0, 1, 1, 2, 2, 0, 1, 2]
y_pred = [0, 0, 2, 1, 0, 2, 1, 0, 2, 0, 2, 2]
cm = ConfusionMatrix(actual_vector=y_actu, predict_vector=y_pred)
cm.classes
#[0, 1, 2]

输出混淆矩阵

cm.print_matrix()

cm.print_normalized_matrix()

接着计算统计指标。

cm.stat(summary=True)

绘图

用户可以使用 plot 方法来可视化混淆矩阵。可视化为模型评估和报告结果增加了一层额外的可解释性。

from matplotlib import pyplot as plt
cm.plot(cmap=plt.cm.Greens, number_label=True, plot_lib="matplotlib")
cm.plot(cmap=plt.cm.Reds, normalized=True, number_label=True, plot_lib="seaborn")

ROC 曲线

在ROC曲线中,Y轴代表真阳性率,X轴代表假阳性率。因此,理想的点位于曲线的左上方,曲线下方的面积越大,代表性能越好。ROC 曲线是二元分类器性能的图形表示。

在 PyCM 中,ROCCurve 基于 “One vs. Rest” 策略对输出进行二值化,为多类分类器提供 ROC 扩展。获取实际标签向量、正类的目标概率估计以及类的有序标签列表,该方法能够计算并绘制不同判别阈值的 TPR-FPR 对,并计算 ROC 曲线下的面积。

crv = ROCCurve(actual_vector=np.array([1, 1, 2, 2]), probs=np.array([[0.1, 0.9], [0.4, 0.6], [0.35, 0.65], [0.8, 0.2]]), classes=[2, 1])
crv.thresholds
#[0.1, 0.2, 0.35, 0.4, 0.6, 0.65, 0.8, 0.9]
auc_trp = crv.area()
auc_trp[1]
#0.75

以上就是PyCM多类别混淆矩阵分析python库功能使用探究的详细内容,更多关于python PyCM多类别混淆矩阵的资料请关注脚本之家其它相关文章!

相关文章

  • 快速实现基于Python的微信聊天机器人示例代码

    快速实现基于Python的微信聊天机器人示例代码

    本篇文章主要介绍了快速实现基于Python的微信聊天机器人示例代码,基于itchat开发,可以用它做一个微信聊天机器人,有兴趣的可以了解一下。
    2017-03-03
  • 使用python flask框架开发图片上传接口的案例详解

    使用python flask框架开发图片上传接口的案例详解

    刚领导安排任务,需求是这样的开发一个支持多格式图片上传的接口,并且将图片压缩,支持在线预览图片,下面小编分享下使用python flask框架开发图片上传接口的案例详解,感兴趣的朋友一起看看吧
    2022-04-04
  • PyQt5组件读取参数的实例

    PyQt5组件读取参数的实例

    今天小编就为大家分享一篇PyQt5组件读取参数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • pytorch Dropout过拟合的操作

    pytorch Dropout过拟合的操作

    这篇文章主要介绍了pytorch Dropout过拟合的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python logging简介详解

    Python logging简介详解

    这篇文章主要介绍了Python日志模块logging简介,本文讲解了Logger、Handler、Formatter、日志配置管理、通过文件配置管理日志等内容,需要的朋友可以参考下
    2021-09-09
  • Python使用docx模块编辑Word文档

    Python使用docx模块编辑Word文档

    docx提供了一组功能丰富的函数和方法,用于创建、修改和读取Word文档,Python可以用它对word文档进行大批量的编辑,下面小编就来通过一些示例为大家好好讲讲吧
    2023-07-07
  • Python中强大的命令行库click入门教程

    Python中强大的命令行库click入门教程

    click是Python的一个命令行工具,极其好用。不信?一试便知。下面这篇文章主要给大家介绍了Python中强大的命令行库click,需要的朋友可以参考学习,下面来一起看看吧。
    2016-12-12
  • 学习python 的while循环嵌套

    学习python 的while循环嵌套

    这篇文章主要为大家介绍了python 的while循环嵌套,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • python 写一个水果忍者游戏

    python 写一个水果忍者游戏

    这篇文章主要介绍了python 如何写一个水果忍者游戏,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • Python数据正态性检验实现过程

    Python数据正态性检验实现过程

    这篇文章主要介绍了Python数据正态性检验实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论