Spec-Zone.ru › scikit-learn

RFECV

classsklearn.feature_selection.RFECV(estimator, *, step=1, min_features_to_select=1, cv=None, scoring=None, verbose=0, n_jobs=None, importance_getter='auto')[source]

Рекурсивное исключение признаков с перекрёстной проверкой для выбора признаков.

Количество выбранных признаков настраивается автоматически путём подгонки селектора RFE к различным разбиениям перекрёстной проверки (предоставленным параметром cv). Производительность селектора RFE оценивается с использованием scorer для различного числа выбранных признаков и агрегируется вместе. Наконец, оценки усредняются по слоям, а количество выбранных признаков устанавливается в число признаков, которые максимизируют оценку перекрёстной проверки. См. запись в глоссарии для оценщика перекрёстной проверки.

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

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

Оценщик контролируемого обучения с методом fit, который предоставляет информацию о важности признаков, либо через атрибут coef_, либо через атрибут feature_importances_.

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

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

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

Минимальное число признаков для выбора. Это количество признаков всегда будет оцениваться, даже если разность между исходным количеством признаков и min_features_to_select не делится нацело на step.

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

cvint, генератор перекрёстной проверки или итерируемый объект, по умолчанию=None

Определяет стратегию разбиения перекрёстной проверки. Возможные входные данные для cv:

  • None, для использования по умолчанию 5-кратной перекрёстной проверки,
  • целое число, для указания количества слоёв.
  • делитель перекрёстной проверки,
  • Итерируемый объект, возвращающий (обучающие, тестовые) разбиения как массивы индексов.

Для целочисленных/None входных данных, если y является бинарным или многоклассовым, используется StratifiedKFold. Если оцениватель не является классификатором или если y не является ни бинарным, ни многоклассовым, используется KFold.

См. Руководство пользователя для различных стратегий перекрёстной проверки, которые могут быть здесь использованы.

Изменено в версии 0.22: cv значение по умолчанию None изменено с 3-кратного на 5-кратное.

scoringстрока, вызываемый объект или None, по умолчанию=None

Строка (см. Параметр scoring: определение правил оценки модели) или вызываемый объект/функция с сигнатурой scorer(estimator, X, y).

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

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

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

Число ядер для параллельной работы при подгонке по слоям. None означает 1, за исключением контекста joblib.parallel_backend. -1 означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.

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

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

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

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

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

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

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

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

estimator_Estimator экземпляр

Оцениватель, подготовленный для выбора признаков.

cv_results_словарь массивов

Все массивы (значения словаря) отсортированы в порядке возрастания по количеству используемых признаков (т.е., первый элемент массива представляет модели, которые использовали наименьшее количество признаков, а последний элемент представляет модели, которые использовали все доступные признаки).

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

Этот словарь содержит следующие ключи:

split(k)_test_scoreмассив формы (n_subsets_of_features,)

Значения оценки перекрёстной проверки по (k)-му слою.

mean_test_scoreмассив формы (n_subsets_of_features,)

Среднее значение оценок по слоям.

std_test_scoreмассив формы (n_subsets_of_features,)

Стандартное отклонение оценок по слоям.

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

Количество признаков, используемых на каждом шаге.

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

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,)

Маска выбранных признаков.

См. также

RFE

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

Примечания

Размер всех значений в cv_results_ равен ceil((n_features - min_features_to_select) / step) + 1, где step — количество признаков, удаляемых на каждой итерации.

Допускает 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 RFECV
>>> from sklearn.svm import SVR
>>> X, y = make_friedman1(n_samples=50, n_features=10, random_state=0)
>>> estimator = SVR(kernel="linear")
>>> selector = RFECV(estimator, step=1, cv=5)
>>> 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, *, groups=None, **params)[source]

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

Параметры:
X{массив-подобный объект, разреженная матрица} формы (n_samples, n_features)

Вектор обучения, где n_samples — количество выборок, а n_features — общее количество признаков.

yмассив-подобный объект формы (n_samples,)

Целевые значения (целые числа для классификации, вещественные числа для регрессии).

groupsмассив-подобный объект формы (n_samples,) или None, по умолчанию=None

Метки групп для выборок, используемые при разделении на обучающую и тестовую выборки. Используется только в сочетании с “Group” cv (например, GroupKFold).

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

**paramsсловарь str -> объект

Параметры, передаваемые методу fit оценщика, оценщика и разделителя CV.

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

Возвращаемые значения:
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]

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

set_params(**params)[source]

Установите параметры этого оценщика.

Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как Pipeline). Последние имеют параметры в формате <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

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

Возвращает:
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.RFECV.html

Spec-Zone.ru

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