如何将 class 个名字插入混淆矩阵?
How to insert class names into the confusion matrix?
我有以下混淆矩阵:
print (confusion_matrix(y_test, y_pred))
[[316 183 92 95 93 52]
[191 391 21 24 83 47]
[ 91 23 510 112 15 5]
[163 47 349 184 42 17]
[241 248 53 70 99 41]
[297 228 56 53 116 113]]
我想打印 class 个名字。所以我写了下面的代码:
confusion_matrix(y_test, y_pred, labels=['downstairs', 'jogging', 'sitting', 'standing', 'upstairs',
'walking'])
我收到错误:
ValueError: At least one label specified must be in y_true
有什么解决办法吗?
labels
confusion_matrix
的参数是索引矩阵的标签列表。因此,如果您将 y
表示为 ['a','b','a']
,那么您可以使用 labels
作为 ['a','b']
对其进行索引。
此外,confusion_matrix
returns 是一个 numpy 数组,因此您无法直接从 confusion_matrix
.
获取它
详情见docs。
但是,您可以通过将 numpy 数组转换为 pandas 数据帧来实现
示例代码
from sklearn.metrics import confusion_matrix
import pandas as pd
y_true = [2, 0, 2, 2, 0, 1]
y_pred = [0, 0, 2, 2, 0, 2]
print (pd.DataFrame(confusion_matrix(y_true, y_pred), columns=['a','b','c']))
输出:
a b c
0 2 0 0
1 0 0 1
2 1 0 2
我有以下混淆矩阵:
print (confusion_matrix(y_test, y_pred))
[[316 183 92 95 93 52]
[191 391 21 24 83 47]
[ 91 23 510 112 15 5]
[163 47 349 184 42 17]
[241 248 53 70 99 41]
[297 228 56 53 116 113]]
我想打印 class 个名字。所以我写了下面的代码:
confusion_matrix(y_test, y_pred, labels=['downstairs', 'jogging', 'sitting', 'standing', 'upstairs',
'walking'])
我收到错误:
ValueError: At least one label specified must be in y_true
有什么解决办法吗?
labels
confusion_matrix
的参数是索引矩阵的标签列表。因此,如果您将 y
表示为 ['a','b','a']
,那么您可以使用 labels
作为 ['a','b']
对其进行索引。
此外,confusion_matrix
returns 是一个 numpy 数组,因此您无法直接从 confusion_matrix
.
详情见docs。
但是,您可以通过将 numpy 数组转换为 pandas 数据帧来实现
示例代码
from sklearn.metrics import confusion_matrix
import pandas as pd
y_true = [2, 0, 2, 2, 0, 1]
y_pred = [0, 0, 2, 2, 0, 2]
print (pd.DataFrame(confusion_matrix(y_true, y_pred), columns=['a','b','c']))
输出:
a b c
0 2 0 0
1 0 0 1
2 1 0 2