sklearn(十一)计算混淆矩阵:confusion 您所在的位置:网站首页 混淆矩阵灵敏度怎么计算出来 sklearn(十一)计算混淆矩阵:confusion

sklearn(十一)计算混淆矩阵:confusion

2024-02-14 19:13| 来源: 网络整理| 查看: 265

1.混淆矩阵confusion_matrix

适用于二分类、多分类。

每一行之和表示该类别的真实样本数量,每一列之和表示被预测为该类别的样本数量。

1.分类模型之混淆矩阵: 每一行和每一列分别对应样本输出中的每一个类别,行表示实际类别,列表示预测类别。 A类别 B类别 C类别 A类别 5 0 0 B类别 0 6 0 C类别 0 0 7 查准率 = 主对角线上的值 / 该值所在列的和 召回率 = 主对角线上的值 / 该值所在行的和 获取模型分类结果的混淆矩阵的相关API: import sklearn.metrics as sm sm.confusion_matrix(实际输出, 预测输出)->混淆矩阵

例子如下,从下面矩阵中,我们能看出来,预测错误分到的类别,看看哪些类别更容易混淆,例子中的第四类,有122个预测为了第三类,说明跟第四类跟第三类容易混淆,仔细看了下文本内容,二者确实难舍难分。

import sklearn.metrics as sm matrixes = sm.confusion_matrix(labels, predicts) print(matrixes) 输出: [[ 71 1 2 0] [ 7 203 10 0] [ 2 32 139 1] [ 32 88 122 40]] import matplotlib.pyplot as mp mp.figure('Confusion Matrix') mp.xticks([]) mp.yticks([]) mp.imshow(matrixes, cmap='gray') mp.show()

画图如下,颜色越深,说明分错的越少。

2.multilabel_confusion_matrix

只用于多分类。

sklearn.metrics.multilabel_confusion_matrix 是 scikit-learn 0.21 新增的一个函数。看名字可知道是用来计算多标签的混淆矩阵的。不过也可以用它来计算多分类的混淆矩阵。MCM将多分类数据转化为2分类问题,采用one-vs-rest策略,即某一类为正样本,其余类别为负样本。每一类都作为正样本,计算混淆矩阵。按标签的顺序返回所有。MCM 返回的每一个二分类混淆矩阵中,TN 在 [0, 0] ,FN 在 [1, 0] 是 , TP 在[1,1], FP 在 [1, 0] , 即

TNFPFNTP

例子如下,这个例子严格按照上面表格中TN、FP、FN、TP来统计结果,看不出来某一类错分到了哪一类。数据解读:第一个类别的数据:TN=635  FP=41   FN=3  TP=71。

from sklearn import metrics mcm = metrics.multilabel_confusion_matrix(labels, predicts) print(mcm) 输出: [[[635 41] [ 3 71]] [[409 121] [ 17 203]] [[442 134] [ 35 139]] [[467 1] [242 40]]]

参考:

1.混淆矩阵:https://www.cnblogs.com/jiangkejie/p/13087490.html 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有