解决accuracy_score报错:输入变量样本数不一致[365,1]
解决ValueError:样本数量不匹配的问题
嘿,这个错误的根源很清晰——你混淆了测试集整体预测和单个样本预测的场景,导致传给accuracy_score的两个参数样本数完全不匹配:
问题出在哪?
你执行predictions = model.predict([[4.2,40,40,120,4.5,2.3]])时,只对1个自定义样本做了预测,所以predictions只有1个元素;但y_test是train_test_split拆分出的测试集真实标签,有365个样本。accuracy_score要求两个输入的样本数量必须完全一致,自然就抛出了Found input variables with inconsistent numbers of samples的错误。
修复方案
把测试集准确率计算和单个样本预测拆成两个独立的步骤:
1. 正确计算模型在测试集上的准确率
用模型对整个测试集X_test做预测,再和y_test对比计算准确率:
# 预测整个测试集的结果 test_predictions = model.predict(X_test) # 计算测试集准确率 score = accuracy_score(y_test, test_predictions) print(f"模型在测试集上的准确率: {score}")
2. 单独处理单个样本的预测
如果只是想验证某个自定义样本的预测结果,直接输出即可,不需要和y_test关联:
# 单个样本的特征数据 single_sample = [[4.2,40,40,120,4.5,2.3]] # 预测该样本的Pick值 single_prediction = model.predict(single_sample) print(f"这个样本的预测Pick值是: {single_prediction[0]}")
这样就能彻底解决样本数量不匹配的问题啦~
内容的提问来源于stack exchange,提问作者Allen Rahrooh
相关产品推荐
相关产品推荐

