【问题标题】:Get misclassified samples from validation set using index and form a dataframe使用索引从验证集中获取错误分类的样本并形成数据框
【发布时间】:2026-01-27 17:20:03
【问题描述】:

您好,我有一个confusion matrix,我需要从中获取misclassified samples 并形成一个dataframe 与列[samples,actual,predicted]

我已经完成了以下操作:

misclassified = np.where(y_test_class!= y_pred_class)

其中y_test_class是实际类,y_pred_class是预测的。现在要找到对应的样本和类,我用了

mis_np = np.concatenate(X_test[misclassified],y_test_class[misclassified],y_pred[misclassified])
mis_df = pd.DataFrame(mis_np)

但我得到了错误

TypeError:只有整数标量数组可以转换为标量 索引

【问题讨论】:

  • 您是否要创建一个包含 3 列的数据框,X, y_true, y_pred

标签: python numpy confusion-matrix


【解决方案1】:

试试:

mis_np = np.concatenate(
    (X_test[misclassified],y_test_class[misclassified],y_pred[misclassified]), 
    axis=1
)

mis_df = pd.DataFrame(data=mis_np, columns=['X', 'y_true', 'y_pred'])

注意np.concatenate 的第一个参数应该是一个数组序列。

因此,您只需将数组包装在一个元组中。同时设置axis=1创建二维数组(矩阵)。

【讨论】: