RFE#
- класс sklearn.feature_selection.RFE(estimator, *, n_features_to_select=None, шаг=1, verbose=0, importance_getter='auto')[источник]#
Ранжирование признаков с рекурсивным исключением признаков.
Учитывая внешний оценщик, который назначает веса признакам (например, коэффициенты линейной модели), цель рекурсивного исключения признаков (RFE) — выбрать признаки, рекурсивно рассматривая все меньшие и меньшие наборы признаков. Сначала оценщик обучается на начальном наборе признаков, и важность каждого признака получается либо через любой конкретный атрибут, либо через вызываемый объект. Затем наименее важные признаки удаляются из текущего набора признаков. Эта процедура рекурсивно повторяется на урезанном наборе до тех пор, пока не будет достигнуто желаемое количество выбранных признаков.
Подробнее в Руководство пользователя.
- Параметры:
- estimator
Estimatorэкземпляр Обучаемый классификатор с
fitметод, предоставляющий информацию о важности признаков (например,coef_,feature_importances_).- n_features_to_selectint или float, по умолчанию=None
Количество признаков для выбора. Если
None, половина признаков выбирается. Если целое число, параметр является абсолютным количеством признаков для выбора. Если число с плавающей точкой от 0 до 1, это доля признаков для выбора.Изменено в версии 0.24: Добавлены дробные значения.
- шагint или float, по умолчанию=1
Если больше или равно 1, то
stepсоответствует (целому) количеству признаков для удаления на каждой итерации. Если в пределах (0.0, 1.0), тоstepсоответствует проценту (округленному в меньшую сторону) признаков для удаления на каждой итерации.- verboseint, по умолчанию=0
Управляет подробностью вывода.
- importance_getterstr или callable, по умолчанию='auto'
Если 'auto', использует важность признаков либо через
coef_илиfeature_importances_атрибуты оценщика.Также принимает строку, указывающую имя/путь атрибута для извлечения важности признаков (реализовано с помощью
attrgetter). Например, дайтеregressor_.coef_в случаеTransformedTargetRegressorилиnamed_steps.clf.feature_importances_в случае класса:~sklearn.pipeline.Pipelineс последним шагом, названнымclf.Если
callable, переопределяет стандартный метод получения важности признаков. Вызываемый объект передается с обученным оценщиком и должен возвращать важность для каждого признака.Добавлено в версии 0.24.
- estimator
- Атрибуты:
classes_ndarray формы (n_classes,)Метки классов доступны, когда
estimatorявляется классификатором.- estimator_
Estimatorэкземпляр Обученный оценщик, используемый для выбора признаков.
- n_features_int
Количество выбранных признаков.
- n_features_in_int
Количество признаков, замеченных во время fit. Определяется только если базовая оценка предоставляет такой атрибут при обучении.
Добавлено в версии 0.24.
- feature_names_in_ndarray формы (
n_features_in_,) Имена признаков, наблюдаемых во время fit. Определено только когда
Xимеет имена признаков, которые все являются строками.Добавлено в версии 1.0.
- ranking_ndarray формы (n_features,)
Ранжирование признаков, такое что
ranking_[i]соответствует ранговой позиции i-го признака. Выбранные (т.е., оценённые как лучшие) признаки получают ранг 1.- support_ndarray формы (n_features,)
Маска выбранных признаков.
Смотрите также
RFECVРекурсивное исключение признаков со встроенной кросс-валидированной выборкой оптимального количества признаков.
SelectFromModelОтбор признаков на основе пороговых значений весов важности.
SequentialFeatureSelectorПоследовательный отбор признаков на основе кросс-валидации. Не зависит от весов важности.
Примечания
Разрешает NaN/Inf во входных данных, если базовый оценщик также это делает.
Ссылки
[1]Guyon, I., Weston, J., Barnhill, S., & Vapnik, V., “Gene selection for cancer classification using support vector machines”, Mach. Learn., 46(1-3), 389–422, 2002.
Примеры
Следующий пример показывает, как получить 5 наиболее информативных признаков в наборе данных Friedman #1.
>>> from sklearn.datasets import make_friedman1 >>> from sklearn.feature_selection import RFE >>> from sklearn.svm import SVR >>> X, y = make_friedman1(n_samples=50, n_features=10, random_state=0) >>> estimator = SVR(kernel="linear") >>> selector = RFE(estimator, n_features_to_select=5, step=1) >>> selector = selector.fit(X, y) >>> selector.support_ array([ True, True, True, True, True, False, False, False, False, False]) >>> selector.ranking_ array([1, 1, 1, 1, 1, 6, 4, 3, 2, 5])
- decision_function(X)[источник]#
Вычислить решающую функцию
X.- Параметры:
- X{array-like или разреженная матрица} формы (n_samples, n_features)
Входные выборки. Внутренне они будут преобразованы в
dtype=np.float32и если разреженная матрица предоставлена, в разреженнуюcsr_matrix.
- Возвращает:
- scoreмассив, форма = [n_samples, n_classes] или [n_samples]
Функция принятия решений входных выборок. Порядок классов соответствует порядку в атрибуте classes_. Регрессия и бинарная классификация производят массив формы [n_samples].
- fit(X, y, **fit_params)[источник]#
Обучает модель RFE, а затем базовый оценщик на выбранных признаках.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Обучающие входные выборки.
- yarray-like формы (n_samples,)
Целевые значения.
- **fit_paramsdict
Если
enable_metadata_routing=False(по умолчанию): Параметры, напрямую передаваемые вfitметод базового оценщика.Если
enable_metadata_routing=True: Параметры, безопасно перенаправляемые вfitметод базового оценщика.
Изменено в версии 1.6: См. Руководство по маршрутизации метаданных для получения дополнительной информации.
- Возвращает:
- 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.6.
- Возвращает:
- маршрутизация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.
- predict(X, **predict_params)[источник]#
Уменьшить X до выбранных признаков и предсказать с использованием оценщика.
- Параметры:
- Xмассив формы [n_samples, n_features]
Входные образцы.
- **predict_paramsdict
Параметры для маршрутизации в
predictметод базового оценщика.Добавлено в версии 1.6: Доступно только если
enable_metadata_routing=True, который можно установить с помощьюsklearn.set_config(enable_metadata_routing=True). См. Руководство по маршрутизации метаданных для получения дополнительной информации.
- Возвращает:
- yмассив формы [n_samples]
Предсказанные значения целевой переменной.
- predict_log_proba(X)[источник]#
Предсказать логарифмы вероятностей классов для X.
- Параметры:
- Xмассив формы [n_samples, n_features]
Входные образцы.
- Возвращает:
- pмассив формы (n_samples, n_classes)
Логарифмы вероятностей классов входных выборок. Порядок классов соответствует порядку в атрибуте classes_.
- predict_proba(X)[источник]#
Предсказать вероятности классов для X.
- Параметры:
- X{array-like или разреженная матрица} формы (n_samples, n_features)
Входные выборки. Внутренне они будут преобразованы в
dtype=np.float32и если разреженная матрица предоставлена, в разреженнуюcsr_matrix.
- Возвращает:
- pмассив формы (n_samples, n_classes)
Вероятности классов входных выборок. Порядок классов соответствует порядку в атрибуте classes_.
- score(X, y, **score_params)[источник]#
Уменьшить X до выбранных признаков и вернуть оценку оценщика.
- Параметры:
- Xмассив формы [n_samples, n_features]
Входные образцы.
- yмассив формы [n_samples]
Целевые значения.
- **score_paramsdict
Если
enable_metadata_routing=False(по умолчанию): Параметры, напрямую передаваемые вscoreметод базового оценщика.Если
enable_metadata_routing=True: Параметры, безопасно перенаправляемые вscoreметод базового оценщика.
Добавлено в версии 1.0.
Изменено в версии 1.6: См. Руководство по маршрутизации метаданных для получения дополнительной информации.
- Возвращает:
- scorefloat
Оценка базового оценщика, вычисленная с выбранными признаками, возвращенными
rfe.transform(X)иy.
- 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]
Входные выборки только с выбранными признаками.