我正在尝试创建一个具有单独的训练和测试数据集的模型。它们具有相同数量的列。当我尝试对分类特征进行编码时,OneHotEncoder 创建的矩阵具有不同的大小,因此我无法预测我的测试数据,因为特征数量不同。
两个数据框具有相同的列数
one_hot= OneHotEncoder()
transformer= ColumnTransformer([("one_hot",one_hot,categorical_features)],
remainder="passthrough")
train_transformed_X = transformer.fit_transform(pd.DataFrame(bigdata_zeros,columns=categorical_features))
train_transformed_X_test=transformer.fit_transform(pd.DataFrame(bigdata_test_zeros,columns=categorical_features))
然后我构建我的模型
model = RandomForestRegressor()
model.fit(train_transformed_X,y_train)
然后我想看看测试数据的预测
model.predict(train_transformed_X_test)
但我收到以下错误
ValueError: X has 256 features, but RandomForestRegressor is expecting 268 features as input.
当我检查 train_transformed_X 和 train_transformed_X_test 时,我可以看到它们的大小不同。
我尝试创建一个分离训练数据和测试数据的机器学习模型