我该如何解决这个错误:ValueError:功能名称应该与通过的那些相匹配

问题描述 投票:0回答:1

我正在尝试用我的模型进行训练和预测,所以当前的错误是

ValueError:特征名称应与拟合期间传递的特征名称相匹配。 在拟合时看不到的特征名称:

这是我的代码

X_train = X_train.drop(columns=['InvoiceDate', "BillingAddress", "BillingCity", "BillingState", "BillingCountry", "BillingPostalCode", "Rowversion_x", "Rowversion_y", "Rowversion", "Name", "Composer"], axis=1)


print(f'Tipo X_train: {type(X_train)} Tipo y_train: {type(y_train)}')
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)

accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

mining_data.to_csv('mining_table.csv', index=False)

我不明白什么是错误,我排除了一些列,因为我收到了另一个这样的错误:

ValueError: could not convert string to float: 'Calle Lira, 198'

python pandas
1个回答
0
投票

因为您在 X_train 中删除了列,但在 X_test 中没有删除,所以模型告诉您它在测试期间看到了在训练中未遇到的列。
训练和测试的输入中的维度/列数应该相同。如果列数已经相同并且您遇到问题,请检查您发送的列是否正确,如果是这样(可能只是拼写错误或您的列标题不同但数据匹配)通过通过执行

X_train.values

来获取数据的 numpy 版本
© www.soinside.com 2019 - 2024. All rights reserved.