将 Iris 数据集目标名称应用于混淆矩阵

apply Iris Dataset target names to the confusion matrix

晚上好,我已经完成了虹膜数据集的 KNN 分类器方法,我可以显示所有代码,但我认为 post 完整代码并不重要,只有一个片段我不明白是如何将虹膜目标名称分配给混淆矩阵?这是混淆矩阵

from sklearn.metrics import confusion_matrix
print(confusion_matrix(y_test, prediction))

哪个returns矩阵

[[13  0  0]
 [ 0 15  1]
 [ 0  0  9]]

我在网上搜索过Confussion matrix

而且我知道还有额外的参数标签,所以我试过了

from sklearn.metrics import confusion_matrix
class_names =iris_dataset["target_names"]
print(confusion_matrix(y_test, prediction,labels=class_names))

但我收到以下错误:

ValueError: At least one label specified must be in y_true

请帮我解决一下?

我几个月前去过那里,这里有一段代码,尽量适应你的需要;) original 是原始数据集 iris 数据集 预测是对分类所做的预测

希望对您有所帮助!

from sklearn.metrics import confusion_matrix
from mlxtend.plotting import plot_confusion_matrix

myarray = np.asarray(original)
matrix = confusion_matrix((myarray),(predictions+1))

class_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica']

fig, ax = plot_confusion_matrix(conf_mat=matrix,
                                show_absolute=True,
                                show_normed=False,
                                colorbar=True,
                                class_names=class_names)
plt.title('Confusion Matrix')
plt.show()