卡方特征选择究竟是如何工作的?

机器算法验证 卡方检验 特征选择
2022-01-28 04:00:17

我知道对于每个要素类对,都会计算卡方统计量值并与阈值进行比较。

我有点困惑。如果有m特点和k类,如何建立列联表?如何决定保留哪些功能,删除哪些功能?

任何澄清将不胜感激。提前致谢

1个回答

卡方检验是一种独立性统计检验,用于确定两个变量的相关性。它与决定系数 R² 有相似之处。但是,卡方检验仅适用于分类或名义数据,而 R² 仅适用于数值数据。

从卡方的定义我们可以很容易地推导出卡方技术在特征选择中的应用。假设您有一个目标变量(即类标签)和一些其他特征(特征变量)来描述每个数据样本。现在,我们计算每个特征变量和目标变量之间的卡方统计量,并观察变量和目标之间是否存在关系。如果目标变量独立于特征变量,我们可以丢弃该特征变量。如果它们是依赖的,则特征变量非常重要。

此处描述了数学细节:http: //nlp.stanford.edu/IR-book/html/htmledition/feature-selectionchi2-feature-selection-1.html

对于连续变量,可以在“分箱”变量后应用卡方。

R中的一个例子,无耻地从FSelector复制而来

# Use HouseVotes84 data from  mlbench package
library(mlbench)# For data
library(FSelector)#For method
data(HouseVotes84)

#Calculate the chi square statistics 
weights<- chi.squared(Class~., HouseVotes84)

# Print the results 
print(weights)

# Select top five variables
subset<- cutoff.k(weights, 5)

# Print the final formula that can be used in classification
f<- as.simple.formula(subset, "Class")
print(f)

与功能选择无关,但下面的视频详细讨论了卡方https://www.youtube.com/watch?time_continue=5&v=IrZOKSGShC8