对于大多数比赛,数据被分为训练数据和测试数据。我处理训练数据(将其分为x_train ......)并创建了一个模型,我对其进行了评估并获得了相应的准确度得分。我使用相同的模型来预测被遗漏的测试数据集,然而,当我试图评估模型性能时,我不断得到以下错误:谁能解释一下我做错了什么?并给出补救的方法.
守则:
# logistic regression
logreg_main_test = logreg.predict(main_test_scaled) # predict
# evaluate
logreg_score_main_test = accuracy_score(Y_test, logreg_main_test)
f1_val_main_test = f1_score(Y_test, logreg_score_main_test)
recall_val_main_test = recall_score(Y_test, logreg_score_main_test)
# display result
print('Model accuracy:',logreg_score_main_test)
输出错误
ValueError Traceback (most recent call last)
<ipython-input-51-8265b6fa0a29> in <module>
4
5 # evaluate
----> 6 logreg_score_main_test = accuracy_score(Y_test, logreg_main_test)
7 f1_val_main_test = f1_score(Y_test, logreg_score_main_test)
8 recall_val_main_test = recall_score(Y_test, logreg_score_main_test)
2 frames
/usr/local/lib/python3.8/dist-packages/sklearn/utils/validation.py in check_consistent_length(*arrays)
330 uniques = np.unique(lengths)
331 if len(uniques) > 1:
--> 332 raise ValueError(
333 "Found input variables with inconsistent numbers of samples: %r"
334 % [int(l) for l in lengths]
ValueError: Found input variables with inconsistent numbers of samples: [4705, 10086]
2条答案
按热度按时间j1dl9f461#
真实标签(Y_test)和预测标签(logreg_main_test)之间的样本数不匹配
在使用训练模型进行预测之前,应确保测试数据的形状与训练数据的形状相同。为此,可以采用与训练数据相同的方式预处理测试数据。具体而言,应将应用于训练数据的相同特征缩放或归一化应用于测试数据。
您可以尝试以下操作:
xmakbtuz2#
真值标签中的长度(样本数)与预测标签中的样本数不匹配。
检查Y_test和logreg_main_test的长度,它们应该匹配。如果不匹配,则说明您的分段不正确,或者您试图使用列车分段而不是测试分段进行预测。