chi2#

sklearn.feature_selection.chi2(X, y)[Quelle]#

Berechnet Chi-Quadrat-Statistiken zwischen jedem nicht-negativen Merkmal und der Klasse.

Dieser Score kann verwendet werden, um die n_features mit den höchsten Werten für die Chi-Quadrat-Teststatistik aus X auszuwählen. X muss nur **nicht-negative ganzzahlige Merkmalswerte** enthalten, wie z. B. Booleans oder Häufigkeiten (z. B. Termzählungen bei Dokumentenklassifizierung), relativ zu den Klassen.

Wenn einige Ihrer Merkmale kontinuierlich sind, müssen Sie sie diskretisieren, zum Beispiel mithilfe von KBinsDiscretizer.

Zur Erinnerung: Der Chi-Quadrat-Test misst die Abhängigkeit zwischen stochastischen Variablen. Daher werden mit dieser Funktion die Merkmale "ausgemistet", die am wahrscheinlichsten unabhängig von der Klasse und somit für die Klassifizierung irrelevant sind.

Lesen Sie mehr im Benutzerhandbuch.

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

Stichprobenvektoren.

yarray-like von Form (n_samples,)

Zielvektor (Klassenbezeichnungen).

Gibt zurück:
chi2ndarray der Form (n_features,)

Chi2-Statistiken für jedes Merkmal.

p_valuesndarray der Form (n_features,)

P-Werte für jedes Merkmal.

Siehe auch

f_classif

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

f_regression

F-Wert zwischen Label/Merkmal für Regressionsaufgaben.

Anmerkungen

Die Komplexität dieses Algorithmus beträgt O(n_classes * n_features).

Beispiele

>>> import numpy as np
>>> from sklearn.feature_selection import chi2
>>> X = np.array([[1, 1, 3],
...               [0, 1, 5],
...               [5, 4, 1],
...               [6, 6, 2],
...               [1, 4, 0],
...               [0, 0, 0]])
>>> y = np.array([1, 1, 0, 0, 2, 2])
>>> chi2_stats, p_values = chi2(X, y)
>>> chi2_stats
array([15.3,  6.5       ,  8.9])
>>> p_values
array([0.000456, 0.0387, 0.0116 ])