带逻辑回归的sklearn RFE

时间:2020-03-24 02:03:20

标签: scikit-learn logistic-regression feature-extraction feature-selection rfe

我正在尝试使用RFE特征选择来建立逻辑回归模型。

weights = {0:1, 1:5}
model = LogisticRegression(solver='lbfgs', max_iter=5000, class_weight=weights)
rfe = RFE(model, 25)
rfe_model = rfe.fit(X_train, y_train)
print(rfe_model.support_)
print(selector.ranking_)

我得到:

array([ True,  True,  True,  True,  True, False, False, False, False, False])
array([1, 1, 1, 1, 1, 6, 4, 3, 2, 5])

如何使用rfe_model.support_提取所选功能的列表(对数据框进行细分),并仅使用这些功能进行建模(手动操作除外,通过制作for循环广告来对功能列表本身进行子集化) ?有没有更优雅的方式?

奖金问题:在哪里可以找到有关逻辑回归特征选择的更多信息(不包括后退,前进和逐步方法)?

1 个答案:

答案 0 :(得分:0)

为此使用Pipeline,例如:

selector = RFE(LogisticRegression(), 25)
final_clf = SVC()
rfe_model = Pipeline([("rfe",selector),('model',final_clf)])

现在,当您调用rfe_model.fit(X,y)时,Pipeline将首先使用RFE转换数据(即选择要素)并将转换后的数据发送到SVC。现在,您还可以在GridSearchCV上使用cross_validaterfe_model和所有其他内置函数。