You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建Confusion Matrix时遇TypeError:y_true与y_pred类型不匹配如何解决?

解决混淆矩阵的类型不匹配错误

错误的核心原因很明确:你的真实标签target_test是布尔类型(False/True),但模型输出的预测结果predict_test是字符串形式的布尔值('False'/'True'),两者类型不一致导致无法生成混淆矩阵。

下面是两种直接有效的解决办法:

方法1:将预测结果转为布尔类型

直接把模型输出的字符串预测值转换成布尔类型,和真实标签的类型对齐:

predict_test = best_cat.predict(features_test).astype(bool)
# 或者用列表推导式实现转换,效果一致
# predict_test = [pred == 'True' for pred in best_cat.predict(features_test)]

sns.heatmap(confusion_matrix(target_test, predict_test), annot=True, fmt='3.0f')
plt.title('Confusion Matrix', y=1.05, size=15)

方法2:将真实标签转为字符串类型

如果更倾向于统一用字符串类型,也可以把真实标签转换成字符串:

target_test_str = target_test.astype(str)

sns.heatmap(confusion_matrix(target_test_str, predict_test), annot=True, fmt='3.0f')
plt.title('Confusion Matrix', y=1.05, size=15)

推荐用方法1,布尔类型在后续的模型评估计算(比如准确率、召回率)中更便捷,能避免字符串转换带来的额外问题。

内容的提问来源于stack exchange,提问作者alinase

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 05:45:30