【问题标题】:Confusion Matrix Classification Report - Keras混淆矩阵分类报告 - Keras
【发布时间】:2019-05-26 07:06:50
【问题描述】:

我正在运行从 git 中挑选的代码以了解它是如何工作的。 这是我可以理解的准确性/损失,但我需要帮助来阐明这个混淆矩阵和报告。在这方面需要你的帮助。

损失:0.0553 - acc:0.9826 - val_loss:0.0492 - val_acc:0.9825

混淆矩阵

[[22 10 11  1 15  8  8  8 26 15 14 25  3 33 20]
 [ 9  3  7  3 13  6  2  5  8  6  8  3  0 16 17]
 [11  6  8  0  8  5  1  4  7  9  8  6  1 20 12]
 [ 3  0  2  0  0  2  0  0  2  2  2  2  0  4  2]
 [25  8  3  4 18 10  7  8 11 11 10  7  2 23 11]
 [12  3  4  2  7 13 10  3 15  6  7  3  3 19  9]
 [ 7  5  4  3  5  6  8  4  7  4  7  8  2 19 12]
 [ 6  6  3  0  9  7  7  4  6  8  7  6  2 23  6]
 [18  8  7  2 16  8 10 17 20 25 22 12  3 28 14]
 [17  9 10  3 15  6  7  8 16 15 15 21  0 33 13]
 [15  5  7  3 13 15  8  9 12  8 10 14  2 32 14]
 [17  8  7  0  7  7  6  8 12 15  8  9  3 32 11]
 [ 2  2  1  0  1  1  5  0  4  4  4  3  0  1  1]
 [38 22 26  2 20 15 19 13 41 34 24 20  7 50 23]
 [14  9  9  0 11 11  9  7 18 20 16 14  1 22 14]]

以下是分类报告。

Classification Report
          precision    recall  f1-score   support

     A       0.10      0.10      0.10       219
     B       0.03      0.03      0.03       106
     C       0.07      0.08      0.07       106
     D       0.00      0.00      0.00        21
     E       0.11      0.11      0.11       158
     F       0.11      0.11      0.11       116
     G       0.07      0.08      0.08       101
     H       0.04      0.04      0.04       100
     I       0.10      0.10      0.10       210
     J       0.08      0.08      0.08       188
     K       0.06      0.06      0.06       167
     L       0.06      0.06      0.06       150
     M       0.00      0.00      0.00        29
     N       0.14      0.14      0.14       354
     O       0.08      0.08      0.08       175


   micro avg       0.09      0.09      0.09      2200
   macro avg       0.07      0.07      0.07      2200
weighted avg       0.09      0.09      0.09      2200

请帮助我理解分类报告。我阅读了混淆矩阵的理论,但无法阐明这个 keras 输出。另外,什么是微平均,微平均等。需要帮助理解。是上面的准确性似乎很好。请原谅我,我对此很陌生。

【问题讨论】:

  • 您能提供您使用的代码吗?另外我认为这不是编码问题,而是统计问题,您可能想将问题移至 stat

标签: scikit-learn keras


【解决方案1】:

我猜你在微平均上挣扎得最多。 精度、召回率和 f1 是非常基础的,你会找到一个清晰的解释here:

对于 Micro Avg,您可以找到一个很好的示例 here: 但基本上这只是计算平均值的另一种方式。

微观和宏观平均值(无论是什么指标)都会略微计算 不同的事物,因此它们的解释也不同。一种 macro-average 将为每个类独立计算度量,并且 然后取平均值(因此平等对待所有类别),而 微平均将汇总所有类别的贡献 计算平均指标。在多类分类设置中, 如果您怀疑可能有课程,则最好使用微平均 不平衡(即你可能有更多的一个类的例子而不是 其他类)。

Cited from here

【讨论】:

  • 比你!上面的分类报告看起来准确吗?我一定会阅读您提供的链接。
  • 嗯,这取决于您的数据,但总的来说不是,它似乎有问题。因为你的准确率相当不错,但你每门课的个人分数却很差。可能是一个非常不平衡的数据集。您可以将 f1 分数作为一个整体平衡的指标,它应该会高得多。
  • 是的,数据不平衡。我现在不确定我是否可以使用这个模型。
  • 嗯,取决于你想要达到的目标。你的数据集有多大?您可以使用 class_weights 进行平衡
  • 19k train 和 2.2k val
猜你喜欢
  • 2020-08-21
  • 2019-07-26
  • 2020-04-11
  • 2021-07-29
  • 2022-10-20
  • 2020-03-08
  • 2015-08-25
  • 1970-01-01
  • 2020-01-18
相关资源
最近更新 更多