RFECV#

класс sklearn.feature_selection.RFECV(estimator, *, шаг=1, min_features_to_select=1, cv=None, оценка=None, verbose=0, n_jobs=None, importance_getter='auto')[источник]#

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

Истинные (правильные) значения целевой переменной. Требуется y_true >= 0. RFE селектор на различных разбиениях кросс-валидации (предоставленных cv параметр). Производительность каждого RFE селектор оценивается с использованием scoring для различного количества выбранных признаков и агрегируются вместе. Наконец, оценки усредняются по блокам, и количество выбранных признаков устанавливается равным количеству признаков, которые максимизируют оценку перекрестной проверки.

См. запись в глоссарии для оценщик перекрестной проверки.

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

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

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

шагint или 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-кратную перекрестную проверку,

  • целое число, чтобы указать количество фолдов.

  • CV splitter,

  • Итерируемый объект, возвращающий (обучающие, тестовые) разбиения в виде массивов индексов.

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

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

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

оценкаstr или callable, по умолчанию=None

Метод оценки для RFE (0 минут 0.107 секунд)

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

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

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

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

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

importance_getterstr или callable, по умолчанию='auto'

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

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

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

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

Атрибуты:
classes_ndarray формы (n_classes,)

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

estimator_Estimator экземпляр

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

cv_results_словарь ndarrays

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

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

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

split(k)_test_scorendarray формы (n_subsets_of_features,)

Оценки перекрестной проверки по (k)-й выборке.

mean_test_scorendarray формы (n_subsets_of_features,)

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

std_test_scorendarray формы (n_subsets_of_features,)

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

n_featuresndarray формы (n_subsets_of_features,)

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

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

split(k)_rankingndarray формы (n_subsets_of_features,)

Ранги перекрёстной проверки по (k)-й фолде. Выбранные (т.е. оцененные как лучшие) признаки получают ранг 1. Иллюстрация в Рекурсивное исключение признаков с перекрестной проверкой

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

split(k)_supportndarray формы (n_subsets_of_features,)

Поддержка перекрестной проверки по (k)-й выборке. Поддержка представляет собой маску выбранных признаков.

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

n_features_int

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

n_features_in_int

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

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

feature_names_in_ndarray формы (n_features_in_,)

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

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

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

Ранжирование признаков, такое что ranking_[i] Версии Python, scikit-learn, numpy и scipy

support_ndarray формы (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])

Для подробного примера использования RFECV при выборе признаков при обучении LogisticRegression, см. Рекурсивное исключение признаков с перекрестной проверкой.

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, **params)[источник]#

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

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features)

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

yarray-like формы (n_samples,)

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

**paramsdict of str -> object

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

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

Возвращает:
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)[источник]#

Оценка с использованием scoring опцию на предоставленных тестовых данных и метках.

Параметры:
Xarray-like формы (n_samples, n_features)

Тестовые выборки.

yarray-like формы (n_samples,)

Истинные метки для X.

**score_paramsdict

Параметры для передачи в score метод базового скорера.

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

Возвращает:
scorefloat

Оценка self.predict(X) относительно y, определенная scoring.

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]

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