我使用的混淆矩阵在到达numpy数组的特定部分之前一直很好用。

基本事实结果存储在名为y_test的数组中,而分类程序的结果存储在r中。

当我将混淆矩阵用于整个结果集时,没有任何问题。

但我想将实验结果除以。
我有3个特定分类器的结果,这些结果存储在名为cbt的数组中。

现在,我想将这3个特定分类器的结果与整体结果的某些特定索引进行比较。例如,我要突出显示分类器C的结果的混淆矩阵,特别是从总体结果的索引91到180。

对于分类器B,我想查看索引1到90的结果的混淆矩阵。
等等。

这是我的代码,如下。对于前两个混淆矩阵,没有问题。他们表现得很好。

cm_c = confusion_matrix(y_test[91:80],c[91:80])
plt.matshow(cm_c)
plt.title('Confusion matrix')
plt.colorbar()
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()

cm_b = confusion_matrix(y_test[1:90],b[1:90])
plt.matshow(cm_b)
plt.title('Confusion matrix')
plt.colorbar()
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()

cm_t = confusion_matrix(y_test[228:317,t[228:317])
plt.matshow(cm_t)
plt.title('Confusion matrix')
plt.colorbar()
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()


但是对于上面的最后一组结果(使用分类器T中的结果数组),我得到以下错误:

cm_t = confusion_matrix(y_test[228:317], t[228:317])
IndexError: invalid index to scalar variable


我不知道怎么了

最佳答案

在您的行中:

cm_t = confusion_matrix(y_test[228:317,t[228:317])


您缺少括号。它应该是:

cm_t = confusion_matrix(y_test[228:317],t[228:317])

关于python - scikit混淆矩阵中标量变量的无效索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27944762/

10-12 16:38
查看更多