Spec-Zone.ru › scikit-learn

RFE

классsklearn.feature_selection.RFE(estimator, *, n_features_to_select=None, step=1, verbose=0, importance_getter='auto')[source]

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

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

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

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

Модель машинного обучения с fit методом, предоставляющим информацию о важности признаков (например, coef_, feature_importances_).

n_features_to_selectint или float, по умолчанию=None

Количество признаков для отбора. Если None, выбирается половина признаков. Если целое число, то параметр — абсолютное число признаков для отбора. Если число с плавающей точкой между 0 и 1, то это доля признаков для отбора.

Изменено в версии 0.24: Добавлены значения с плавающей точкой для долей.

stepint или float, по умолчанию=1

Если больше или равно 1, то step соответствует (целому) числу признаков, удаляемых на каждой итерации. Если значение находится в пределах (0.0, 1.0), то step соответствует проценту (округленному вниз) признаков, удаляемых на каждой итерации.

verboseint, по умолчанию=0

Управление подробностью вывода.

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

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

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

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

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

Атрибуты:
classes_массив формы (n_classes,)

Метки классов, доступные, когда estimator — классификатор.

estimator_Estimator экземпляр

Обученный оценщик, используемый для отбора признаков.

n_features_int

Количество отобранных признаков.

n_features_in_int

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

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

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

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

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

ranking_массив формы (n_features,)

Ранжирование признаков, таким образом, что ranking_[i] соответствует позиции ранжирования i-го признака. Отобранным (т.е. оценённым лучшим) признакам присваивается ранг 1.

support_массив формы (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])
свойствоclasses_

Метки классов, доступные, когда estimator — классификатор.

Возвращает:
массив формы (n_classes,)
decision_function(X)[source]

Вычисление функции принятия решения для X.

Параметры:
X{массив или разреженная матрица} формы (n_samples, n_features)

Входные выборки. Внутренне будет преобразовано в dtype=np.float32, а если предоставлена разреженная матрица, то в разреженную csr_matrix.

Возвращает:
scoreмассив, форма = [n_samples, n_classes] или [n_samples]

Функция принятия решения для входных выборок. Порядок классов соответствует порядку в атрибуте classes_. Регрессия и бинарная классификация возвращают массив формы [n_samples].

fit(X, y, **fit_params)[source]

Обучение модели RFE, а затем основной модели на отобранных признаках.

Параметры:
X{массив, разреженная матрица} формы (n_samples, n_features)

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

yмассив формы (n_samples,)

Значения целевой переменной.

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

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

Возвращает:
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_featuresмассив-подобный 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_outмассив объектов str

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

get_metadata_routing()[source]

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

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

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

Возвращаемое значение:
routingMetadataRouter

MetadataRouter, инкапсулирующий информацию о маршрутизации.

get_params(deep=True)[source]

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

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

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

Возвращаемое значение:
paramsсловарь

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

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.

predict(X, **predict_params)[source]

Сокращение X до выбранных признаков и предсказание с помощью оценщика.

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

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

**predict_paramsсловарь

Параметры для маршрутизации в метод predict базового оценщика.

Добавлена в версии 1.6: Доступно только если enable_metadata_routing=True, что может быть установлено с помощью sklearn.set_config(enable_metadata_routing=True). См. Руководство пользователя по маршрутизации метаданных для получения более подробной информации.

Возвращаемое значение:
yмассив размера [n_samples]

Предсказанные целевые значения.

predict_log_proba(X)[source]

Предсказание логарифмов вероятностей классов для X.

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

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

Возвращаемое значение:
pмассив размера (n_samples, n_classes)

Логарифмы вероятностей классов входных образцов. Порядок классов соответствует атрибуту classes_.

predict_proba(X)[source]

Предсказание вероятностей классов для X.

Параметры:
X{массив или разреженная матрица} формы (n_samples, n_features)

Входные образцы. Внутренне они будут преобразованы в dtype=np.float32, а если предоставлена разреженная матрица, то в разреженную csr_matrix.

Возвращаемое значение:
pмассив формы (n_samples, n_classes)

Вероятности классов входных образцов. Порядок классов соответствует порядку в атрибуте classes_.

score(X, y, **score_params)[source]

Уменьшить X до отобранных признаков и вернуть оценку оценщика.

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

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

yмассив формы [n_samples]

Целевые значения.

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

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

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

Возвращаемое значение:
scoreчисло с плавающей точкой

Оценка базового оценщика, вычисленная с использованием отобранных признаков, возвращенных rfe.transform(X) и y.

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>, чтобы можно было обновить каждый компонент вложенного объекта.

Параметры:
**paramsсловарь

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

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

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

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.RFE.html

Spec-Zone.ru

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