0

我想用 mlxtend 做一个 FeatureSelection ExhaustiveFeatureSelector。我目前的管道很简单:

regr = make_pipeline(StandardScaler(), SVR())

我还有分类属性,OneHotEncoder()在设置管道之前我已经手动对其进行了编码。

df = onehot(df,"Categorical_Attribute")
X = df.drop('Target_Variable', axis=1)  
y = df['Target_Variable']  

现在我想开始特征选择,但分类属性应该只在实际选择时编码,所以基本上我想要管道中的 OneHotEncoder。但只需这样做:

regr = make_pipeline(OneHotEncoder(), StandardScaler(), SVR())

不工作。如何将编码器添加到管道中,以确保 FeatureSelector 将分类属性作为一个属性处理并且不会选择其中的一部分?

PS:特征选择器的工作方式如下:

regr = make_pipeline(StandardScaler(), SVR())
efs = ExhaustiveFeatureSelector(regr, 
           min_features=4,
           max_features=10, 
           scoring='neg_mean_absolute_error')
efs = efs.fit(X_train, y_train)
print(efs.best_feature_names_)
4

0 回答 0