chi2#

sklearn.feature_selection.chi2(X, y)[源代码]#

计算每个非负特征和类别之间的卡方统计数据。

此分数可用于选择 n_features X测试卡方统计量具有最高值的要素,该要素必须仅包含 non-negative integer feature values 例如布尔值或频率(例如,文档分类中的术语计数),相对于类。

如果您的某些功能是连续的,则需要将它们分类,例如使用 KBinsDiscretizer .

回想一下,卡方测试衡量随机变量之间的依赖性,因此使用该函数“剔除”了最有可能独立于类、因此与分类无关的特征。

阅读更多的 User Guide .

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

样本载体。

y形状类似阵列(n_samples,)

目标向量(类标签)。

返回:
chi2形状的nd数组(n_features,)

每个特征的卡方2统计。

p_values形状的nd数组(n_features,)

每个特征的P值。

参见

f_classif

分类任务的标签/特征之间的方差分析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.0004..., 0.0387..., 0.0116... ])