卡方检验针对分类变量,是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若两个值完全相等时,卡方值就为0,表明理论值完全符合。
使用iris数据集,在sklearn库中使用卡方检验筛选与目标变量相关的特征
1、导入包
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
2、卡方检验iris数据集选取2个最佳特征
iris = load_iris() # 载入iris数据
X, y = iris.data, iris.target # iris.data是特征数据,iris.target是标签数据
model = SelectKBest(chi2, k=2) # 使用卡方检验选择k个最佳特征
X_new = model.fit_transform(X, y) # 选择k个最佳特征,作为新的X
SelectKBest.fit_transform方法先fit后transform,选出卡方检验后的2个最佳特征作为新的array。
3、输出观察结果
print(iris.data)
print(iris.target)
—————————————————————————————————————————————————————————————————————————————————————————
[[5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]
[4.6 3.1 1.5 0.2]
[5. 3.6 1.4 0.2]
[5.4 3.9 1.7 0.4]
[4.6 3.4 1.4 0.3]
[5. 3.4