我正在尝试用我的模型进行训练和预测,所以当前的错误是
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'
因为您在 X_train 中删除了列,但在 X_test 中没有删除,所以模型告诉您它在测试期间看到了在训练中未遇到的列。
训练和测试的输入中的维度/列数应该相同。如果列数已经相同并且您遇到问题,请检查您发送的列是否正确,如果是这样(可能只是拼写错误或您的列标题不同但数据匹配)通过通过执行
X_train.values
来获取数据的 numpy 版本