我在预处理后使用训练测试分割来分割数据。
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test= train_test_split(X,y,test_size=0.2,random_state=42)
然后分别对测试和训练中的数值列进行稳健缩放
from sklearn.preprocessing import RobustScaler
robust = RobustScaler()
X_train_ = robust.fit_transform(X_train[numeric_columns])
X_test_ = robust.transform(X_test[numeric_columns])
X_train_sc_num=pd.DataFrame(X_train_,columns=[numeric_columns])
X_test_sc_num=pd.DataFrame(X_test_,columns=[numeric_columns])
然后进行连接。
X_train_scaled=pd.concat([X_train_sc_num,X_train[categoric_columns]],axis=1)
X_test_scaled=pd.concat([X_test_sc_num,X_test[categoric_columns]],axis=1)
但形状被破坏了,输出数据的分类列中添加了许多“nan”值。sahpe 为 (466,17)+(466,11),应该是 (466,28),但变成了 (560,28)。
我该如何解决这个问题?
我想在 Train_Test_split 之后对我的数据进行 Robust 缩放,但不触及我的 OHE 列,