Chi-squared 卡方检验

卡方检验筛选特征

利用 χ 2 \chi^2 χ2筛选特征时,我们计算每个特征和类标之间的 χ 2 \chi^2 χ2统计量,最后选择 χ 2 \chi^2 χ2分数最高的k个特征。

χ 2 \chi^2 χ2检验

χ 2 \chi^2 χ2独立性检验用于检验两个类别型变量之间是否存在显著的关联关系。

特征x正类负类总计
x = 1 x=1 x=1 A A A B B B A + B = M A+B=M A+B=M
x = 0 x=0 x=0 C C C D D D C + D = N − M C+D=N-M C+D=NM
总计 A + C = P A+C=P A+C=P B + D = N − P B+D=N-P B+D=NP N N N

A , B , C , D A,B,C,D A,B,C,D表示观测到的数量, E A , E B , E C , E D E_A,E_B,E_C,E_D EA,EB,EC,ED分别表示期望值。

原假设:变量之间相互独立
备选假设:变量之间不独立

基于原假设,即变量之间相互独立,那么 x = 1 x=1 x=1出现在正类中的概率应该等于 x = 1 x=1 x=1出现在所有样本中的概率,因此我们有
E A A + C = A + B N ⟹ E A = A + B N ( A + C ) \frac{E_A}{A+C}=\frac{A+B}{N}\Longrightarrow E_A=\frac{A+B}{N}(A+C) A+CEA=NA+BEA=NA+B(A+C)
同理可求出 E A , E B , E C , E D E_A,E_B,E_C,E_D EA,EB,EC,ED

χ 2 \chi^2 χ2统计量的计算公式为:

χ 2 = 1 d ∑ k = 1 K ( O k − E k ) 2 E k = ( A − E A ) 2 E A + ( B − E B ) 2 E B + ( C − E C ) 2 E C + ( D − E D ) 2 E D \chi^2 =\frac{1}{d} \sum_{k=1}^{K}\frac{(O_k-E_k)^2}{E_k}\\ =\frac{(A-E_A)^2}{E_A}+\frac{(B-E_B)^2}{E_B}+\frac{(C-E_C)^2}{E_C}+\frac{(D-E_D)^2}{E_D} χ2=d1k=1KEk(OkEk)2=EA(AEA)2+EB(BEB)2+EC(CEC)2+ED(DED)2

其中 d = ( r o w s − 1 ) ( c o l s − 1 ) = ( 2 − 1 ) ( 2 − 1 ) = 1 d=(rows-1)(cols-1)=(2-1)(2-1)=1 d=(rows1)(cols1)=(21)(21)=1为自由度。

如果我们拒绝原假设 ( p &lt; = t h r e s h o l d ) (p &lt;= threshold) p<=threshold,则特征 x x x在我们模型中是一个重要的变量。

注意使用 χ 2 \chi^2 χ2检验的前提:

  1. 类别型变量
  2. 频率至少为5
  3. 变量独立抽样
Python 中利用 χ 2 \chi^2 χ2检验筛选特征
	# Load libraries
	from sklearn.datasets import load_iris
	from sklearn.feature_selection import SelectKBest
	from sklearn.feature_selection import chi2
	#Load Data
	# 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)
	
	#Compare Chi-Squared Statistics
	# Select two features with highest chi-squared statistics
	chi2_selector = SelectKBest(chi2, k=2)
	X_kbest = chi2_selector.fit_transform(X, y)
	# Show results
	print('Original number of features:', X.shape[1])
	print('Reduced number of features:', X_kbest.shape[1])

t检验和卡方检验

简单介绍T检验和卡方检验
T检验
卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,卡方值越大,越不符合;卡方值越小,偏差越小,越趋于符合,若两个值完全相等时,卡方值就为0,表明理论值完全符合。

适用条件:卡方检验适用于分类变量,主要涉及到的是二分类变量的理论值和实际值的检测。

T检验(T Test)是最常见的一种假设检验类型,主要验证总体均值间是否存在显著性差异。T检验属于参数假设检验,所以它适用的范围是数值型的数据,在网站分析中可以是访问数、独立访客数、停留时间等,电子商务的订单数、销售额等。T检验还需要符合一个条件——总体符合正态分布。


参考文献

Chi Square Feature Selection in Python
Chi Square test for feature selection

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值