python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python  PyCM混淆矩阵

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

作者:小寒聊python

这篇文章主要为大家介绍了python编写的PyCM多类混淆矩阵库,用于多类别混淆矩阵分析,帮助用户从不同角度评价分类模型的表现,这些指标包括但不限于准确率、召回率、F1分数、Kappa 统计量等,支持二分类、多分类及多标签分类问题

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

https://github.com/sepandhaghighi/pycm 

PyCM多类混淆矩阵库

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

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

特点

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多类别混淆矩阵的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文