f_regression#

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

Univariate lineare Regressionstests, die F-Statistik und p-Werte zurückgeben.

Schnelles lineares Modell zum sequenziellen Testen der Auswirkung einzelner Regressoren auf viele Regressoren.

Dies geschieht in 2 Schritten

  1. Die Kreuzkorrelation zwischen jedem Regressor und dem Ziel wird mit r_regression berechnet als

    E[(X[:, i] - mean(X[:, i])) * (y - mean(y))] / (std(X[:, i]) * std(y))
    
  2. Sie wird in einen F-Score und dann in einen p-Wert umgewandelt.

f_regression leitet sich von r_regression ab und wird die Merkmale in derselben Reihenfolge ranken, wenn alle Merkmale positiv mit dem Ziel korreliert sind.

Beachten Sie jedoch, dass im Gegensatz zu f_regression, Werte von r_regression im Bereich [-1, 1] liegen und daher negativ sein können. f_regression wird daher als Merkmal-Auswahlkriterium empfohlen, um potenziell prädiktive Merkmale für einen nachgeschalteten Klassifikator zu identifizieren, unabhängig vom Vorzeichen der Assoziation mit der Zielvariable.

Darüber hinaus gibt f_regression p-Werte zurück, während r_regression dies nicht tut.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Die Datenmatrix.

yarray-like von Form (n_samples,)

Der Zielvektor.

centerbool, default=True

Ob die Datenmatrix X und der Zielvektor y zentriert werden sollen oder nicht. Standardmäßig werden X und y zentriert.

force_finitebool, default=True

Ob F-Statistiken und zugehörige p-Werte endlich erzwungen werden sollen oder nicht. Es gibt zwei Fälle, in denen die F-Statistik voraussichtlich nicht endlich ist

  • wenn das Ziel y oder einige Merkmale in X konstant sind. In diesem Fall ist die Pearson'sche R-Korrelation nicht definiert, was dazu führt, dass np.nan-Werte in der F-Statistik und im p-Wert erzielt werden. Wenn force_finite=True ist, wird die F-Statistik auf 0.0 und der zugehörige p-Wert auf 1.0 gesetzt.

  • wenn ein Merkmal in X perfekt mit dem Ziel y korreliert (oder antikorreliert) ist. In diesem Fall wird erwartet, dass die F-Statistik np.inf ist. Wenn force_finite=True ist, wird die F-Statistik auf np.finfo(dtype).max und der zugehörige p-Wert auf 0.0 gesetzt.

Hinzugefügt in Version 1.1.

Gibt zurück:
f_statisticndarray von der Form (n_features,)

F-Statistik für jedes Merkmal.

p_valuesndarray von der Form (n_features,)

P-Werte, die mit der F-Statistik verbunden sind.

Siehe auch

r_regression

Pearson's R zwischen Label/Merkmal für Regressionsaufgaben.

f_classif

ANOVA F-Wert zwischen Label/Merkmal für Klassifizierungsaufgaben.

chi2

Chi-Quadrat-Statistiken nicht-negativer Merkmale für Klassifizierungsaufgaben.

SelectKBest

Wählt Merkmale basierend auf den k höchsten Scores aus.

SelectFpr

Wählt Merkmale basierend auf einem Test der falschen positiven Rate aus.

SelectFdr

Wählt Merkmale basierend auf einer geschätzten Rate falsch entdeckter Fälle aus.

SelectFwe

Wählt Merkmale basierend auf der familiären Fehlerrate aus.

SelectPercentile

Wählt Merkmale basierend auf dem Perzentil der höchsten Scores aus.

Beispiele

>>> 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])