Spec-Zone.ru › scikit-learn

f_regression

sklearn.feature_selection.f_regression(X, y, *, center=True, force_finite=True)[исходный код]

Тесты одномерной линейной регрессии, возвращающие 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 являются константами. В этом случае корреляция Пирсона R не определена, что приводит к получению значений 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

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

f_classif

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

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.21, 2.67e13, 2.66])
>>> p_values
array([0.276, 1.54e-283, 0.11])

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

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

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

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

Spec-Zone.ru

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