使用卡方检验进行特征选择

时间:2014-02-05 04:07:51

标签: machine-learning feature-selection chi-squared

我总是无法理解卡方检验的重要性以及如何将其用于特征选择。我试过阅读维基页面,但我没有得到实际的理解。谁能解释一下?

2 个答案:

答案 0 :(得分:0)

卡方测试通过确定特征变量与目标变量之间的相关性,帮助您确定可用特征列表中最重要的特征。

以下示例取自https://chrisalbon.com/machine-learning/chi-squared_for_feature_selection.html

以下测试将在最初的4个可用功能中选择两个最佳功能(因为我们将2分配给“k”参数)。

# Load libraries
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2

# Load iris data
iris = load_iris()

# Create features and target
X = iris.data
y = iris.target

# Convert to categorical data by converting data to integers
X = X.astype(int)

# Select two features with highest chi-squared statistics
chi2_selector = SelectKBest(chi2, k=2)
X_kbest = chi2_selector.fit_transform(X, y)
type(X_kbest)

# Show results
print('Original number of features:', X.shape[1])
print('Reduced number of features:', X_kbest.shape[1])

答案 1 :(得分:0)

卡方特征选择是用于分类变量的单变量特征选择技术。它也可以用于连续变量,但需要首先对连续变量进行分类。

它如何运作?

通过计算基于列联表的卡方统计,检验结果类依赖于分类变量的零假设。有关列联表和卡方检验的详细信息,请查看视频:https://www.youtube.com/watch?v=misMgRRV3jQ

为了对连续数据进行分类,有一系列技术可用于简化的基于频率的分级,以推进诸如最小描述长度和基于熵的分箱方法之类的方法。

对连续变量使用卡方检验的优点是它可以捕获与结果变量的非线性关系。