Исключение рекурсивных функций по категориальным данным в sklearn?

У меня есть набор данных, содержащий 8 параметров (4 непрерывных 4 категориальных), и я пытаюсь исключить функции в соответствии с классом RFEC в Scikit.

Это формула, которую я использую:

svc = SVC(kernel="linear")
rfecv = RFECV(estimator=svc, step=1, cv=StratifiedKFold(y, 2),
          scoring='accuracy')
rfecv.fit(X, y)

Поскольку у меня также есть категориальные данные, я изменил их на фиктивную переменную, используя dmatrics (Patsy).

Я хочу попробовать различные модели классификации на данных после выбора функции, чтобы улучшить модель вместе с SVC.

Я запустил RFE после преобразования данных и думаю, что я делаю неправильно.
Запускаем ли мы RFECV перед преобразованием категориальных данных или после?

Я не могу найти никаких четких указаний ни в одном документе.

1 ответ

Решение

Это зависит от того, хотите ли вы выбрать заданные значения категориальной переменной или целой переменной. В настоящее время вы выбираете отдельные параметры (или уровни) категориальной переменной. Чтобы выбрать целые переменные, вам, вероятно, потребуется немного взломать, определив свой собственный оценщик на основе SVC. Вы могли бы сделать make_pipeline(OneHotEncoder(categorical_features), SVC()) но тогда вам нужно установить coef_ из этого трубопровода к чему-то, что отражает входную форму.

Другие вопросы по тегам