RFE#

класс sklearn.feature_selection.RFE(estimator, *, n_features_to_select=None, шаг=1, verbose=0, importance_getter='auto')[источник]#

Ранжирование признаков с рекурсивным исключением признаков.

Учитывая внешний оценщик, который назначает веса признакам (например, коэффициенты линейной модели), цель рекурсивного исключения признаков (RFE) — выбрать признаки, рекурсивно рассматривая все меньшие и меньшие наборы признаков. Сначала оценщик обучается на начальном наборе признаков, и важность каждого признака получается либо через любой конкретный атрибут, либо через вызываемый объект. Затем наименее важные признаки удаляются из текущего набора признаков. Эта процедура рекурсивно повторяется на урезанном наборе до тех пор, пока не будет достигнуто желаемое количество выбранных признаков.

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

Параметры:
estimatorEstimator экземпляр

Обучаемый классификатор с 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.

Атрибуты:
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_ if feature_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": Вывод Polars

  • None: Конфигурация преобразования не изменена

Добавлено в версии 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]

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