pandas 评估测试数据集

yrdbyhpb  于 2023-02-20  发布在  其他
关注(0)|答案(2)|浏览(138)

对于大多数比赛,数据被分为训练数据和测试数据。我处理训练数据(将其分为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]
j1dl9f46

j1dl9f461#

真实标签(Y_test)和预测标签(logreg_main_test)之间的样本数不匹配
在使用训练模型进行预测之前,应确保测试数据的形状与训练数据的形状相同。为此,可以采用与训练数据相同的方式预处理测试数据。具体而言,应将应用于训练数据的相同特征缩放或归一化应用于测试数据。
您可以尝试以下操作:

scaler = StandardScaler()
scaler.fit(X_train)
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)
xmakbtuz

xmakbtuz2#

真值标签中的长度(样本数)与预测标签中的样本数不匹配。
检查Y_testlogreg_main_test的长度,它们应该匹配。如果不匹配,则说明您的分段不正确,或者您试图使用列车分段而不是测试分段进行预测。

相关问题