具有逻辑回归的 sklearn RFE
sklearn RFE with logistic regression
我正在尝试制作一个具有 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 循环广告子集特征列表本身)?有没有更优雅的方式?
额外问题:我在哪里可以找到有关逻辑回归特征选择的更多信息(不包括向后、向前和逐步方法)?
为此使用 Pipeline,例如:
selector = RFE(LogisticRegression(), 25)
final_clf = SVC()
rfe_model = Pipeline([("rfe",selector),('model',final_clf)])
现在,当您调用 rfe_model.fit(X,y)
时,Pipeline
将首先使用 RFE
转换数据(即 select 特征)并将转换后的数据发送到 SVC
.您现在还可以在 rfe_model
上使用 GridSearchCV
、cross_validate
和所有其他类型的内置函数。
我正在尝试制作一个具有 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 循环广告子集特征列表本身)?有没有更优雅的方式?
额外问题:我在哪里可以找到有关逻辑回归特征选择的更多信息(不包括向后、向前和逐步方法)?
为此使用 Pipeline,例如:
selector = RFE(LogisticRegression(), 25)
final_clf = SVC()
rfe_model = Pipeline([("rfe",selector),('model',final_clf)])
现在,当您调用 rfe_model.fit(X,y)
时,Pipeline
将首先使用 RFE
转换数据(即 select 特征)并将转换后的数据发送到 SVC
.您现在还可以在 rfe_model
上使用 GridSearchCV
、cross_validate
和所有其他类型的内置函数。