如何为多类分类器构建混淆矩阵?

机器算法验证 机器学习 物流 分类 多级 混淆矩阵
2022-01-20 02:45:13

我有 6 节课的问题。所以我构建了一个多类分类器,如下:对于每个类,我有一个 Logistic 回归分类器,使用 One vs. All,这意味着我有 6 个不同的分类器。

我可以为每个分类器报告一个混淆矩阵。但是,我想报告所有分类器的混淆矩阵,正如我在这里的很多示例中看​​到的那样。

我该怎么做?我是否必须改变我的分类策略,使用一对一算法而不是一对一算法?因为在这些混淆矩阵上,报告显示了每个类别的误报。

多类混淆矩阵示例

多类混淆矩阵

我想找到错误分类的项目的数量。在第一行中,有 137 个类别 1 的示例被归类为 1 类,有 13 个类别 1 的示例被归类为 2 类如何获得这个号码?

3个回答

虽然这个论坛上已经有一些答案,但我想我会给出明确的方程式以使其更加明确:

假设你有一个多类混淆矩阵的形式,

C=ActualClassifedc11...c1ncn1cnn

每个类的混淆元素由下式给出:

tpi=cii

fpi=l=1nclitpi

fni=l=1nciltpi

tni=l=1nk=1nclktpifpifni

据推测,您正在使用这些分类器来帮助为给定的一组特征值选择一个特定的类(正如您所说,您正在创建一个多类分类器)。

所以,假设你有个类,那么你的混淆矩阵将是一个矩阵,左轴显示真正的类(如测试集中已知的那样),上轴显示分配给项目的类那个真正的班级。矩阵的每个元素将是具有真正类别且被归类为类别的项目数。NN×Ni,jij

这只是 2 类混淆矩阵的直接扩展。

使用问题中附加的矩阵并将垂直轴中的值视为实际类别,将水平轴中的值视为预测。然后对于第 1 类:

  • 真阳性= 137-> 1 类样本,归类为 1 类
  • 假阳性= 6-> (1+2+3) 类 2、3 和 4 的样本,但归类为 1 类
  • 假阴性= 18-> (13+3+1+1) 类 1 的样本,但分类为 2、3、6 和 7 类
  • Ture Negative = 581-> (55+1+6...+2+26) 矩阵中除第 1 列和第 1 行之外的所有值的总和