f_regression#

sklearn.feature_selection.f_regression(X, y, *, центр=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} формы (n_samples, n_features)

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

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

Целевой вектор.

центрbool, по умолчанию=True

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

force_finitebool, по умолчанию=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 формы (n_features,)

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

p-значенияndarray формы (n_features,)

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

Смотрите также

r_regression

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

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