Spec-Zone.ru › scikit-learn

SelectFromModel

classsklearn.feature_selection.SelectFromModel(estimator, *, threshold=None, prefit=False, norm_order=1, max_features=None, importance_getter='auto')[исходный код]

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

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

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

Параметры:
estimatorobject

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

thresholdstr or float, default=None

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

prefitbool, default=False

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

norm_ordernon-zero int, inf, -inf, default=1

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

max_featuresint, callable, default=None

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

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

Чтобы выполнять отбор только на основе max_features, задайте threshold=-np.inf.

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

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

importance_getterstr or callable, default=’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.

max_features_int

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

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

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

feature_names_in_ndarray of shape (n_features_in_,)

Имена признаков, обнаруженных во время обучения. Определяется только в том случае, если 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 of shape (n_samples, n_features)

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

yarray-like of shape (n_samples,), default=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 of shape (n_samples, n_features)

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

yarray-like of shape (n_samples,) or (n_samples, n_outputs), default=None

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

**fit_paramsdict

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

Возвращает:
X_newndarray array of shape (n_samples, n_features_new)

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

get_feature_names_out(input_features=None)[исходный код]

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

Параметры:
input_featuresarray-like of str or None, default=None

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

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

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

get_metadata_routing()[исходный код]

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

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

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

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

MetadataRouter, содержащий сведения о маршрутизации.

get_params(deep=True)[исходный код]

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

Параметры:
deepbool, default=True

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

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

Имена параметров и соответствующие им значения.

get_support(indices=False)[исходный код]

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

Параметры:
indicesbool, default=False

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

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

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

inverse_transform(X)[исходный код]

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

Параметры:
Xarray of shape [n_samples, n_selected_features]

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

Возвращает:
X_originalarray of shape [n_samples, n_original_features]

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

partial_fit(X, y=None, **partial_fit_params)[исходный код]

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

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

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

yarray-like of shape (n_samples,), default=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(*, transform=None)[исходный код]

Задать контейнер выходных данных.

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

Параметры:
transform{“default”, “pandas”, “polars”}, default=None

Настроить формат выходных данных transform и fit_transform.

  • "default": формат выходных данных преобразователя по умолчанию
  • "pandas": вывод в формате DataFrame
  • "polars": вывод в формате Polars
  • None: конфигурация преобразования остается без изменений

Добавлено в версии 1.4: Добавлен параметр "polars".

Возвращает:
selfestimator instance

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

set_params(**params)[исходный код]

Задать параметры этого оценивателя.

Метод работает как с простыми оценивателями, так и с вложенными объектами (например, Pipeline). У последних параметры имеют вид <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

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

Параметры оценивателя.

Возвращает:
selfestimator instance

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

transform(X)[исходный код]

Оставить в X только отобранные признаки.

Параметры:
Xarray of shape [n_samples, n_features]

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

Возвращает:
X_rarray of shape [n_samples, n_selected_features]

Входные образцы, содержащие только отобранные признаки.

Примеры из галереи

Отбор признаков на основе модели и последовательный отбор

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.feature_selection.SelectFromModel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API