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