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для различного числа выбранных признаков и агрегируется вместе. Наконец, оценки усредняются по слоям, а количество выбранных признаков устанавливается в число признаков, которые максимизируют оценку перекрёстной проверки. См. запись в глоссарии для оценщика перекрёстной проверки.Подробнее см. в Руководстве пользователя.
- Параметры:
-
-
estimator
Estimatorэкземпляр -
Оценщик контролируемого обучения с методом
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.
-
estimator
- Атрибуты:
-
-
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