python - scikit 混淆矩阵中标量变量的索引无效

标签 python numpy machine-learning scikit-learn confusion-matrix

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

真实结果存储在名为 y_test 的数组中,而分类器的结果存储在 r 中。

当我对整组结果使用混淆矩阵时,没有任何问题。

但我想划分我的实验结果。 我有 3 个特定分类器的结果,它们存储在名为 cbt 的数组中。

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

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

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

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/

相关文章:

python - 在拆分命名空间中找不到模块

python - 导入多数组 Numpy 扩展模块失败 Visual Studio 2019 Anaconda 1.9.6 Python 3.7.1

machine-learning - 此场景的文本分类技术

machine-learning - 为什么 RMSProp 被视为 "leaky"?

python - Numpy.savetxt() 函数

tensorflow - LSTM 或任何其他层的 TimeDistributed 包装器有什么用途

python - 检查有向图中节点是否共享相互连接

python - celery worker 在任务完成后不释放内存

python - 如何使用 python boto 获取亚马逊 S3 中唯一文件夹的列表?

python - 删除零元素的对角线