ConfusionMatrixDisplay函数里面的display_labels如何更换标签名称,例如训练后给出的预测值的标签是“1”和“2”,现在我想换成“花”和“草”,但是如何确定“花”对应“1”,而草对应“2”
时间: 2023-09-05 10:09:01 浏览: 39
要将混淆矩阵中的标签从默认名称更改为自定义名称,并且保持正确的对应关系,你可以使用字典来定义每个标签的新名称。具体来说,你可以根据实际情况,将预测值对应的标签映射到自定义的标签名称中。
例如,假设你的模型预测值的类别标签是[1, 2],你想将"1"替换为"花",将"2"替换为"草",那么你可以使用以下代码:
```
from sklearn.metrics import ConfusionMatrixDisplay
label_dict = {1: "花", 2: "草"}
display_labels = [label_dict[x] for x in [1, 2]]
cm_display = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=display_labels)
cm_display.plot()
```
在这个例子中,我们首先定义了一个字典label_dict,将预测值的标签1映射到"花",将预测值的标签2映射到"草"。然后,我们使用列表解析式将这些新标签存储到display_labels变量中,最后使用ConfusionMatrixDisplay函数来创建一个新的混淆矩阵显示对象cm_display,同时将display_labels参数设置为新标签列表。最后,我们调用plot()方法来绘制混淆矩阵,并在图例中使用新的标签名称。
需要注意的是,这种方法只是将预测值的标签映射到自定义标签名称中,并不会修改真实标签的名称。如果你也想修改真实标签的名称,可以参考之前的回答,使用字典将原始标签映射到自定义标签名称中。