模型评估报错:样本数量不一致问题排查与解决
问题原因分析
- 核心错误是评估时真实标签集与预测结果的样本数量不匹配:
Y_test有4705个样本,模型对main_test_scaled的预测结果logreg_main_test有10086个样本,sklearn的评估函数要求两者长度必须完全一致,因此触发报错。 - 你犯了两个具体错误:
- 用错了标签集:拿训练集拆分出的验证集标签
Y_test,去评估模型对预留测试集的预测结果,两者根本不是对应关系,应该用预留测试集的真实标签(比如命名为Y_main_test)。 - 评估参数传错:第7行
f1_score的第二个参数传成了准确率logreg_score_main_test(一个浮点数),而不是预测结果logreg_main_test,就算样本数量问题解决,这里也会报错。
- 用错了标签集:拿训练集拆分出的验证集标签
解决办法
- 替换正确的真实标签集
找到预留测试集对应的真实标签(假设变量名为Y_main_test),修改评估代码:# evaluate logreg_score_main_test = accuracy_score(Y_main_test, logreg_main_test) f1_val_main_test = f1_score(Y_main_test, logreg_main_test) recall_val_main_test = recall_score(Y_main_test, logreg_main_test) - 验证数据维度一致性
预测前检查训练集和测试集的特征维度是否匹配,避免预处理出错:
如果维度不一致,说明测试集预处理时遗漏了特征或缩放方式和训练集不统一,需要重新对齐预处理流程。print("训练集特征维度:", X_train_scaled.shape) print("测试集特征维度:", main_test_scaled.shape) - 修正评估参数错误
确保f1_score和recall_score的第二个参数都是模型的预测结果logreg_main_test,而非准确率数值。
内容的提问来源于stack exchange,提问作者Rumple Rak
相关产品推荐
相关产品推荐

