使用CNN做分类时confusion_matrix仅返回单个数值是否存在问题?
问题原因说明
- 1x1格式的混淆矩阵属于
confusion_matrix的正常输出逻辑,该接口会自动根据输入的y_test和y_pred中实际出现的类别数量生成对应维度的矩阵,返回单值[[851]]说明你的y_test和y_pred两个数组里所有样本的标签都属于同一个类别,851是该类别的样本总数。 - 你预期的2x2矩阵对应至少两类的分类场景,和实际输出不符的问题出在数据或模型配置环节,常见排查方向如下:
- 检查
y_test做np.argmax操作前的独热编码是否正确,若独热编码所有样本的有效位都在同一维度,np.argmax后就会全为同一数值 - 检查测试集划分逻辑,可能划分时只分到了单一类别的样本
- 检查模型输出层配置,若多分类任务的输出层神经元数设置错误,会导致
model.predict返回的结果维度异常,np.argmax后所有样本的预测值都为同一数值
- 检查
验证方法
执行以下代码即可确认是否为单类别问题:
# 查看测试集真实标签和预测标签的去重结果 print(np.unique(y_test)) print(np.unique(y_pred))
若输出均为单一数值,按上述方向排查对应问题即可。
内容的提问来源于stack exchange,提问作者Laila zahrona
相关产品推荐
相关产品推荐

