Склеарн РСЕ с логистикой c регрессия - PullRequest
2 голосов
/ 24 марта 2020

Я пытаюсь создать регрессионную модель логистики c с выбором функции 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_ для извлечения списка выбранных объектов (подмножество фрейма данных) и создания модели только с этими функциями (кроме как вручную, сделав объявление для l oop подмножеством списка функций) Есть ли более элегантный способ?

Бонусный вопрос: Где я могу найти больше информации о выборе признаков для регрессии логистики c (не включая обратный, прямой и пошаговый метод)?

1 Ответ

0 голосов
/ 24 марта 2020

Используйте для этого Конвейер , например:

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_validate и все другие виды встроенных функций в rfe_model.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...