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实现多态、协议和鸭子类型,感兴趣的朋友跟随小编一起看看吧
    2019-05-05
  • 教你用python编写脚本实现自动签到

    教你用python编写脚本实现自动签到

    这篇文章主要介绍了教你怎样用python编写脚本实现自动签到,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Python学习笔记整理3之输入输出、python eval函数

    Python学习笔记整理3之输入输出、python eval函数

    这篇文章主要介绍了Python学习笔记整理3之输入输出、python eval函数的相关资料,需要的朋友可以参考下
    2015-12-12
  • Python制作词云的方法

    Python制作词云的方法

    这篇文章主要为大家详细介绍了Python制作词云的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • django上传图片并生成缩略图方法示例

    django上传图片并生成缩略图方法示例

    这篇文章主要介绍了django上传图片并生成缩略图方法示例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Python实现图像的二进制与base64互转

    Python实现图像的二进制与base64互转

    这篇文章主要为大家介绍了如何在Python中使用OpenCV从而实现图像转base64编码、图像转二进制编码、二进制转图像等功能,感兴趣的可以跟上小编一起学习一下
    2022-03-03
  • django配置DJANGO_SETTINGS_MODULE的实现

    django配置DJANGO_SETTINGS_MODULE的实现

    本文主要介绍了django配置DJANGO_SETTINGS_MODULE,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 深入理解Python爬虫代理池服务

    深入理解Python爬虫代理池服务

    这篇文章主要介绍了Python爬虫代理池服务的相关知识,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-02-02
  • python渗透测试linux密码激活的示例

    python渗透测试linux密码激活的示例

    这篇文章主要介绍了python渗透测试linux密码激活的相关知识,通过一个crypt的示例给大家介绍的非常详细,对大家学习python渗透知识有很大的帮助,需要的朋友可以参考下
    2021-05-05
  • Python爬虫XPath解析出乱码的问题及解决

    Python爬虫XPath解析出乱码的问题及解决

    这篇文章主要介绍了Python爬虫XPath解析出乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05

最新评论