chi2#

sklearn.feature_selection.chi2(X, y)[источник]#

Вычислите статистику хи-квадрат между каждым неотрицательным признаком и классом.

Эта оценка может использоваться для выбора n_features признаки с наибольшими значениями для тестовой статистики хи-квадрат из X, который должен содержать только неотрицательные целочисленные значения признаков таких как булевы значения или частоты (например, количество терминов в классификации документов), относительно классов.

Если некоторые из ваших признаков непрерывны, вам нужно разбить их на интервалы, например, используя KBinsDiscretizer.

Напомним, что критерий хи-квадрат измеряет зависимость между стохастическими переменными, поэтому использование этой функции «отсеивает» признаки, которые с наибольшей вероятностью независимы от класса и, следовательно, нерелевантны для классификации.

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

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

Векторы образцов.

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

Целевой вектор (метки классов).

Возвращает:
chi2ndarray формы (n_features,)

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

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

P-значения для каждого признака.

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

f_classif

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

f_regression

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

Примечания

Сложность этого алгоритма O(n_classes * n_features).

Примеры

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