Spec-Zone.ru › scikit-learn

f_regression

sklearn.feature_selection.f_regression(X, y, *, center=True, force_finite=True)[source]

Однофакторные линейные регрессионные тесты, возвращающие статистику F и p-значения.

Быстрая линейная модель для последовательного тестирования эффекта одного регрессора для многих регрессоров.

Это делается в 2 шага:

  1. Вычисляется взаимная корреляция между каждым регрессором и целевой переменной, используя r_regression как:

    E[(X[:, i] - mean(X[:, i])) * (y - mean(y))] / (std(X[:, i]) * std(y))
    
  2. Она преобразуется в статистику F, а затем в p-значение.

f_regression выводится из r_regression и будет сортировать признаки в том же порядке, если все признаки положительно коррелируют с целевой переменной.

Однако обратите внимание, что в отличие от f_regression, значения r_regression лежат в диапазоне [-1, 1] и могут быть отрицательными. Поэтому f_regression рекомендуется в качестве критерия отбора признаков для идентификации потенциально предсказывающих признаков для последующей классификации, независимо от знака связи с целевой переменной.

Кроме того, f_regression возвращает p-значения, в то время как r_regression нет.

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

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

Матрица данных.

yarray-like of shape (n_samples,)

Вектор целевых значений.

centerbool, default=True

Центрировать ли матрицу данных X и вектор целевых значений y. По умолчанию X и y будут центрированы.

force_finitebool, default=True

Принудительно ли устанавливать статистику F и соответствующие p-значения в конечные значения. Есть два случая, когда ожидается, что статистика F не будет конечной:

  • когда целевая переменная y или некоторые признаки в X являются постоянными. В этом случае корреляция Пирсона не определена, что приводит к получению значений np.nan в статистике F и p-значении. Когда force_finite=True, статистика F устанавливается в 0.0, а соответствующее p-значение в 1.0.
  • когда признак в X идеально коррелирует (или антикоррелирует) с целевой переменной y. В этом случае ожидается, что статистика F будет np.inf. Когда force_finite=True, статистика F устанавливается в np.finfo(dtype).max, а соответствующее p-значение в 0.0.

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

Возвращаемые значения:
f_statisticndarray of shape (n_features,)

Статистика F для каждого признака.

p_valuesndarray of shape (n_features,)

P-значения, связанные со статистикой F.

См. также

r_regression

Корреляция Пирсона между меткой/признаком для регрессионных задач.

f_classif

Статистика ANOVA F между меткой/признаком для задач классификации.

chi2

Статистика Хи-квадрат для неотрицательных признаков для задач классификации.

SelectKBest

Выбрать признаки по k наибольшим значениям.

SelectFpr

Выбрать признаки на основе теста ложноположительной вероятности.

SelectFdr

Выбрать признаки на основе оценки ложноположительной доли.

SelectFwe

Выбрать признаки на основе вероятности ошибки семейства.

SelectPercentile

Выбрать признаки на основе процентиля наибольших значений.

Примеры

>>> from sklearn.datasets import make_regression
>>> from sklearn.feature_selection import f_regression
>>> X, y = make_regression(
...     n_samples=50, n_features=3, n_informative=1, noise=1e-4, random_state=42
... )
>>> f_statistic, p_values = f_regression(X, y)
>>> f_statistic
array([1.2...+00, 2.6...+13, 2.6...+00])
>>> p_values
array([2.7..., 1.5..., 1.0...])

Примеры галереи

Агломерация признаков против отбора признаков по единственной переменной

Сравнение теста F и взаимной информации

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.feature_selection.f_regression.html

Spec-Zone.ru

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