Как вручную выбрать функции для регрессии модели Scikit-LearnPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как вручную выбрать функции для регрессии модели Scikit-Learn

Сообщение Anonymous »


Это очень простой вопрос, поэтому я надеялся получить простой ответ. Подозреваю, что упускаю что-то очевидное...

В Scikit-learn существуют различные методы автоматического выбора функций.

Например

my_feature_selector = SelectKBest(score_func=f_reгрессия, k=3) my_feature_selector.fit_transform(X, y) Выбранные функции затем можно получить с помощью

feature_idx = my_feature_selector.get_support(indices=True) Feature_names = X.columns[feature_idx] (Обратите внимание, в моем случае X и y — это фреймы данных Pandas с именованными столбцами).

Они также сохраняются как атрибут подобранной модели:

feature_names = my_model.feature_names_in_ Однако я хочу создать конвейер с ручным (т. е. заранее заданным) набором функций.

Очевидно, что я мог бы вручную выбирать функции из полного набора данных каждый раз, когда провожу обучение или прогнозирование:

model1_feature_names = ['MedInc', 'AveRooms', 'Latitude'] model1.fit(X[model1_feature_names], y) y_pred1 = model1.predict(X[model1.feature_names_in_]) Но мне нужен более удобный способ создания различных моделей (или конвейеров), каждая из которых использует потенциально другой набор (указанных вручную) функций. В идеале я бы указал feature_names_in_ в качестве параметра инициализации, чтобы позже мне не приходилось беспокоиться о преобразовании данных и можно было запустить мою модель (или конвейер) на полном наборе данных следующим образом:< /п> model1.fit(X, y) # использует заранее определенный поднабор функций в X model2.fit(X, y) # использует другой набор функций y_pred1 = модель1.predict(X) y_pred2 = model2.predict(X) Нужно ли для этого создать собственный селектор функций? Конечно, есть более простой способ.

Думаю, я ожидал найти что-то вроде встроенного класса FeatureSelector, который можно было бы использовать в конвейере следующим образом:
my_feature_selector1 = FeatureSelector(feature_names=['MedInc', 'AveRooms', 'Latitude']) my_feature_selector1.fit_transform(X, y) # Это ничего не даст Pipe1 = Pipeline([('feature_selector', my_feature_selector1), ('model', LinearReгрессия())])
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»