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_iffeature_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": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 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]
Входные выборки только с выбранными признаками.
Примеры галереи#
Основанный на модели и последовательный отбор признаков