SelectFromModel#

класс sklearn.feature_selection.SelectFromModel(estimator, *, порог=None, prefit=False, norm_order=1, max_features=None, importance_getter='auto')[источник]#

Мета-трансформер для выбора признаков на основе весов важности.

Добавлено в версии 0.17.

Подробнее в Руководство пользователя.

Параметры:
estimatorobject

Базовый оценщик, из которого строится преобразователь. Это может быть как обученный (если prefit установлено в True) или необученный оценщик. Оценщик должен иметь feature_importances_ или coef_ атрибут после обучения. В противном случае, importance_getter параметр должен использоваться.

порогstr или float, по умолчанию=None

Пороговое значение для отбора признаков. Признаки, чьё абсолютное значение важности больше или равно, сохраняются, а остальные отбрасываются. Если "медиана" (соответственно "среднее"), то threshold значение является медианой (соответственно средним) важности признаков. Также может использоваться масштабирующий коэффициент (например, "1.25*mean"). Если None и у оценщика есть параметр penalty, установленный в l1, явно или неявно (например, Lasso), используется порог 1e-5. В противном случае по умолчанию используется "mean".

prefitbool, по умолчанию=False

Ожидается ли передача предварительно обученной модели непосредственно в конструктор или нет. Если True, estimator должен быть обученным оценщиком. Если False, estimator обучается и обновляется вызовом fit и partial_fit, соответственно.

norm_orderненулевое целое число, inf, -inf, по умолчанию=1

Порядок нормы, используемой для фильтрации векторов коэффициентов ниже threshold в случае, когда coef_ атрибут оценщика имеет размерность 2.

max_featuresint, callable, по умолчанию=None

Максимальное количество признаков для выбора.

  • Если целое число, то оно задает максимальное количество признаков, которое разрешено.

  • Если вызываемый объект, то он определяет, как рассчитать максимальное количество допустимых признаков. Вызываемый объект получит X как вход: max_features(X).

  • Если None, тогда все признаки сохраняются.

Чтобы выбирать только на основе max_features, установите threshold=-np.inf.

Добавлено в версии 0.20.

Изменено в версии 1.1: max_features принимает вызываемый объект.

importance_getterstr или callable, по умолчанию='auto'

Если 'auto', использует важность признаков либо через coef_ атрибут или feature_importances_ атрибут оценщика.

Также принимает строку, указывающую имя/путь атрибута для извлечения важности признаков (реализовано с помощью attrgetter). Например, дайте regressor_.coef_ в случае TransformedTargetRegressor или named_steps.clf.feature_importances_ в случае Pipeline с последним шагом, названным clf.

Если callable, переопределяет стандартный метод получения важности признаков. Вызываемый объект передается с обученным оценщиком и должен возвращать важность для каждого признака.

Добавлено в версии 0.24.

Атрибуты:
estimator_estimator

Базовый оценщик, из которого строится преобразователь. Этот атрибут существует только когда fit был вызван.

  • Если prefit=True, это глубокая копия estimator.

  • Если prefit=False, это клон estimator и обучается на данных, переданных в fit или partial_fit.

n_features_in_int

Количество признаков, замеченных во время fit.

Представление вероятностного распределения гауссовской смеси. Этот класс позволяет оценивать параметры распределения гауссовской смеси.int

Максимальное количество признаков, вычисляемых во время fit. Определено только если max_features не является None.

  • Если max_features является int, затем max_features_ = max_features.

  • Если max_features является вызываемым объектом, то max_features_ = max_features(X).

Добавлено в версии 1.1.

feature_names_in_ndarray формы (n_features_in_,)

Имена признаков, наблюдаемых во время fit. Определено только когда X имеет имена признаков, которые все являются строками.

Добавлено в версии 1.0.

threshold_float

Пороговое значение, используемое для отбора признаков.

Смотрите также

RFE

Рекурсивное исключение признаков на основе весов важности.

RFECV

Рекурсивное исключение признаков со встроенной кросс-валидированной выборкой оптимального количества признаков.

SequentialFeatureSelector

Последовательный отбор признаков на основе кросс-валидации. Не зависит от весов важности.

Примечания

Разрешает NaN/Inf во входных данных, если базовый оценщик также это делает.

Примеры

>>> from sklearn.feature_selection import SelectFromModel
>>> from sklearn.linear_model import LogisticRegression
>>> X = [[ 0.87, -1.34,  0.31 ],
...      [-2.79, -0.02, -0.85 ],
...      [-1.34, -0.48, -2.55 ],
...      [ 1.92,  1.48,  0.65 ]]
>>> y = [0, 1, 0, 1]
>>> selector = SelectFromModel(estimator=LogisticRegression()).fit(X, y)
>>> selector.estimator_.coef_
array([[-0.3252,  0.8345,  0.4976]])
>>> selector.threshold_
np.float64(0.55249)
>>> selector.get_support()
array([False,  True, False])
>>> selector.transform(X)
array([[-1.34],
       [-0.02],
       [-0.48],
       [ 1.48]])

Использование вызываемого объекта для создания селектора, который может использовать не более половины входных признаков.

>>> def half_callable(X):
...     return round(len(X[0]) / 2)
>>> half_selector = SelectFromModel(estimator=LogisticRegression(),
...                                 max_features=half_callable)
>>> _ = half_selector.fit(X, y)
>>> half_selector.max_features_
2
fit(X, y=None, **fit_params)[источник]#

Обучите мета-трансформер SelectFromModel.

Параметры:
Xarray-like формы (n_samples, n_features)

Обучающие входные выборки.

yarray-like формы (n_samples,), по умолчанию=None

Целевые значения (целые числа, соответствующие классам в классификации, вещественные числа в регрессии).

**fit_paramsdict
  • Если enable_metadata_routing=False (по умолчанию): Параметры, напрямую передаваемые в fit метод подоценщика. Они игнорируются, если prefit=True.

  • Если enable_metadata_routing=True: Параметры, безопасно перенаправляемые в fit метод подоценщика. Они игнорируются, если prefit=True.

Изменено в версии 1.4: См. Руководство по маршрутизации метаданных для более подробной информации.

Возвращает:
selfobject

Обученный оценщик.

fit_transform(X, y=None, **fit_params)[источник]#

Обучение на данных с последующим преобразованием.

Обучает преобразователь на X и y с необязательными параметрами fit_params и возвращает преобразованную версию X.

Параметры:
Xarray-like формы (n_samples, n_features)

Входные выборки.

yarray-like формы (n_samples,) или (n_samples, n_outputs), default=None

Целевые значения (None для неконтролируемых преобразований).

**fit_paramsdict

Дополнительные параметры обучения. Передавайте только если оценщик принимает дополнительные параметры в своем fit метод.

Возвращает:
X_newndarray массив формы (n_samples, n_features_new)

Преобразованный массив.

get_feature_names_out(input_features=None)[источник]#

Маскировать имена признаков в соответствии с выбранными признаками.

Параметры:
input_featuresarray-like из str или None, по умолчанию=None

Входные признаки.

  • Если input_features является None, затем feature_names_in_ используется как имена признаков в. Если feature_names_in_ не определено, тогда генерируются следующие имена входных признаков: ["x0", "x1", ..., "x(n_features_in_ - 1)"].

  • Если input_features является массивоподобным, тогда input_features должен соответствовать feature_names_in_ if feature_names_in_ определен.

Возвращает:
feature_names_outndarray из str объектов

Преобразованные имена признаков.

6332()[источник]#

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.

Добавлено в версии 1.4.

Возвращает:
маршрутизацияMetadataRouter

A MetadataRouter Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

Получить параметры для этого оценщика.

Параметры:
глубокийbool, по умолчанию=True

Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.

Возвращает:
paramsdict

Имена параметров, сопоставленные с их значениями.

get_support(индексы=False)[источник]#

Получить маску или целочисленный индекс выбранных признаков.

Параметры:
индексыbool, по умолчанию=False

Если True, возвращаемое значение будет массивом целых чисел, а не булевой маской.

Возвращает:
поддержкамассив

Индекс, который выбирает сохраняемые признаки из вектора признаков. Если indices равно False, это булев массив формы [# входных признаков], в котором элемент равен True, если соответствующий признак выбран для сохранения. Если indices если True, это целочисленный массив формы [# выходных признаков], значения которого являются индексами входного вектора признаков.

inverse_transform(X)[источник]#

Обратить операцию преобразования.

Параметры:
Xмассив формы [n_samples, n_selected_features]

Входные образцы.

Возвращает:
X_originalмассив формы [n_samples, n_original_features]

X со столбцами нулей, вставленными там, где признаки были бы удалены с помощью transform.

partial_fit(X, y=None, **partial_fit_params)[источник]#

Обучите мета-преобразователь SelectFromModel только один раз.

Параметры:
Xarray-like формы (n_samples, n_features)

Обучающие входные выборки.

yarray-like формы (n_samples,), по умолчанию=None

Целевые значения (целые числа, соответствующие классам в классификации, вещественные числа в регрессии).

**partial_fit_paramsdict
  • Если enable_metadata_routing=False (по умолчанию): Параметры, напрямую передаваемые в partial_fit методом суб-оценщика.

  • Если enable_metadata_routing=True: Параметры, передаваемые в partial_fit метод подоценщика. Они игнорируются, если prefit=True.

Изменено в версии 1.4: **partial_fit_params перенаправляются к суб-оценщику, если enable_metadata_routing=True устанавливается через set_config, что позволяет использовать псевдонимы.

См. Руководство по маршрутизации метаданных для более подробной информации.

Возвращает:
selfobject

Обученный оценщик.

set_output(*, преобразовать=None)[источник]#

Установить контейнер вывода.

См. Введение API set_output для примера использования API.

Параметры:
преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None

Настройка вывода transform и fit_transform.

  • "default": Формат вывода трансформера по умолчанию

  • "pandas": DataFrame вывод

  • "polars": Вывод Polars

  • None: Конфигурация преобразования не изменена

Добавлено в версии 1.4: "polars" опция была добавлена.

Возвращает:
selfэкземпляр estimator

Экземпляр оценщика.

set_params(**params)[источник]#

Установить параметры этого оценщика.

Метод работает как на простых оценщиках, так и на вложенных объектах (таких как Pipeline). Последние имеют параметры вида __ чтобы можно было обновить каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр estimator

Экземпляр оценщика.

преобразовать(X)[источник]#

Уменьшить X до выбранных признаков.

Параметры:
Xмассив формы [n_samples, n_features]

Входные образцы.

Возвращает:
X_rмассив формы [n_samples, n_selected_features]

Входные выборки только с выбранными признаками.