我把我的数据分成训练和测试,然后把训练分成另一个训练集和一个验证集。对于这个新的训练集和验证集,我应用了下面的转换。我正在实现随机森林回归,因此在下一步,我将对这些集合应用转换,并尝试将其合并为一个集合。问题是np.vstack没有返回正确的形状:输出:(2,1) <-应该是(25455,2394) (21636,2394) (3819,2394)
有人能告诉我我做错了什么吗?
Xtrain_rf, Xtest_rf = train_test_split(insurance_data_prep, test_size=0.15, random_state=42)
Xtrain2_rf, Xval_rf = train_test_split(Xtrain_rf, test_size=0.15, random_state=42)
full_transform_rf = ColumnTransformer([
("num", StandardScaler(), attributes_num),
("cat", OneHotEncoder(handle_unknown='ignore'), attributes_cat),
])
## fit transform in the train set
Xtrain2_rf_att_prepared = full_transform_rf.fit_transform(Xtrain2_rf_att)
## transform in the validation set
Xval_rf_att_prepared = full_transform_rf.transform(Xval_rf_att)
whole_train_set_attributes_rf = np.vstack((Xtrain2_rf_att_prepared, Xval_rf_att_prepared))
print(whole_train_set_attributes_rf.shape)
print(Xtrain2_rf_att_prepared.shape)
print(Xval_rf_att_prepared.shape)发布于 2020-11-26 19:31:25
我试图用我自己的数据集复制您的代码,我遇到的一个问题是您的代码片段中没有定义Xtrain2_rf_att和Xval_rf_att变量。这些是您传递给ColumnTransformer的变量。
我猜在您的例子中,变量是已定义的,但是您真正想要传递给ColumnTransformer的是Xtrain2_rf和Xval_rf。
如果这不能解决您的问题,您是否可以编辑您的问题并添加以下信息:
insurance_data_prep形状和列(或者them)attributes_num和attributes_dat您可能需要使用MRE来替换您的数据帧,我们将看到
https://stackoverflow.com/questions/64994395
复制相似问题