我正在尝试使用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循环和子集特征列表本身的方法除外)?有没有更优雅的方式?
奖励问题:我在哪里可以找到更多关于logistic回归特征选择的信息(不包括向后,向前和逐步方法)?
发布于 2020-03-24 23:56:00
为此,请使用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上使用GridSearchCV、cross_validate和所有其他类型的内置函数。
https://stackoverflow.com/questions/60823999
复制相似问题