Spec-Zone.ru › scikit-learn

SelectFromModel

classsklearn.feature_selection.SelectFromModel(estimator, *, threshold=None, prefit=False, norm_order=1, max_features=None, importance_getter='auto')[source]

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

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

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

Параметры:
estimatorобъект

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

thresholdстрока или число, по умолчанию=None

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

prefitбулево значение, по умолчанию=False

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

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

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

max_featuresцелое число, вызываемая функция, по умолчанию=None

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

  • Если целое число, то оно определяет максимальное число разрешённых признаков.
  • Если вызываемая функция, то она определяет, как рассчитать максимальное количество разрешённых признаков, используя результат max_features(X).
  • Если None, все признаки сохраняются.

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

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

Изменено в версии 1.1: max_features принимает вызываемую функцию.

importance_getterстрока или вызываемая функция, по умолчанию=’auto’

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

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

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

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

Атрибуты:
estimator_оценщик

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

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

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

max_features_целое число

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

  • Если max_features является int, то max_features_ = max_features.
  • Если max_features является вызываемой функцией, то max_features_ = max_features(X).

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

feature_names_in_массив формы (n_features_in_,)

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

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

threshold_число с плавающей точкой

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

См. также

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)[source]

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

Параметры:
Xмассив-подобный формы (n_samples, n_features)

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

yмассив-подобный формы (n_samples,), по умолчанию=None

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

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

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

Возвращает:
selfобъект

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

fit_transform(X, y=None, **fit_params)[source]

Обучает трансформатор на данных, а затем преобразует их.

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

Параметры:
Xмассив-подобный формы (n_samples, n_features)

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

yмассив-подобный формы (n_samples,) или (n_samples, n_outputs), по умолчанию=None

Значения целевых переменных (None для безконтрольного преобразования).

**fit_paramsсловарь

Дополнительные параметры обучения.

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

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

get_feature_names_out(input_features=None)[source]

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

Параметры:
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_, если feature_names_in_ определено.
Возвращает:
feature_names_outndarray из str объектов

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

get_metadata_routing()[source]

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

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

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

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

MetadataRouter объект, содержащий информацию о маршрутизации.

get_params(deep=True)[source]

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

Параметры:
deepbool, по умолчанию=True

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

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

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

get_support(indices=False)[source]

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

Параметры:
indicesbool, по умолчанию=False

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

Возвращает:
supportмассив

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

inverse_transform(X)[source]

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

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

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

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

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

свойствоn_features_in_

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

partial_fit(X, y=None, **partial_fit_params)[source]

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

Параметры:
Xмассив-подобный объект формы (n_samples, n_features)

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

yмассив-подобный объект формы (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, что позволяет использовать псевдонимы.

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

Возвращает:
selfобъект

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

set_output(*, transform=None)[source]

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

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

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

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

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

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

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

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

set_params(**params)[source]

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

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

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

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

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

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

propertythreshold_

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

transform(X)[source]

Сокращение X до выбранных признаков.

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

Входящие образцы.

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

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

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

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

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

Spec-Zone.ru

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