如果你看看这个:
>>> y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]
>>> y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]
>>> confusion_matrix(y_true, y_pred, labels=["ant", "bird", "cat"])
array([[2, 0, 0],
[0, 0, 1],
[1, 0, 2]])我猜想第一行数组的意思是“预测蚂蚁”,第一列是“实际上是蚂蚁”,第二列是“实际上是鸟”等等。
所以第一行我读起来像“预测的蚂蚁,是蚂蚁”,第二行我读为“建议的蚂蚁是鸟”是0,第三列是“预测的蚂蚁是猫”是0,但应该是1。
我在理解混乱矩阵时做错了什么。
另一个例子是
>>> from sklearn.metrics import confusion_matrix
>>> y_true = [2, 0, 2, 2, 0, 1]
>>> y_pred = [0, 0, 2, 2, 0, 2]
>>> confusion_matrix(y_true, y_pred)
array([[2, 0, 0],
[0, 0, 1],
[1, 0, 2]])哪里甚至不清楚,班级的顺序是什么。
来源:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html
编辑:除非它是交换的。第一行是“是蚂蚁”而不是“预测蚂蚁”。只有维基百科上的系统才是预测的那一行。
发布于 2020-11-01 17:30:18
你只是把实际情况和预测搞混了。每一行代表数组中不同元素的实际值,列表示它们的预测值。那是,

https://datascience.stackexchange.com/questions/84798
复制相似问题