【问题标题】:sklearn RFE with logistic regression带有逻辑回归的 sklearn RFE
【发布时间】:2020-07-04 12:46:43
【问题描述】:

我正在尝试使用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 循环广告对特征列表本身进行子集化)?有没有更优雅的方式?

额外问题:我在哪里可以找到有关逻辑回归特征选择的更多信息(不包括向后、向前和逐步方法)?

【问题讨论】:

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


    【解决方案1】:

    为此使用Pipeline,例如:

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

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

    【讨论】:

      猜你喜欢
      • 2021-03-11
      • 2015-05-04
      • 2016-03-06
      • 2014-01-20
      • 2019-07-26
      • 1970-01-01
      • 2013-12-24
      • 2014-01-19
      • 2014-09-16
      相关资源
      最近更新 更多