特征选择——卡方检验(使用Python sklearn进行实现)
2017-12-21 19:44
4924 查看
在看这篇文章之前,如果对卡方检验不熟悉,可以先参考:卡方检验
Python有包可以直接实现特征选择,也就是看自变量对因变量的相关性。今天我们先开看一下如何用卡方检验实现特征选择。
1. 首先import包和实验数据:
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
from sklearn.datasets import load_iris
#导入IRIS数据集
iris = load_iris()
iris.data#查看数据
结果输出:
array([[ 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],
2. 使用卡方检验来选择特征
model1 = SelectKBest(chi2, k=2)#选择k个最佳特征
model1.fit_transform(iris.data, iris.target)#iris.data是特征数据,iris.target是标签数据,该函数可以选择出k个特征
结果输出为:
array([[ 1.4, 0.2],
[ 1.4, 0.2],
[ 1.3, 0.2],
[ 1.5, 0.2],
[ 1.4, 0.2],
[ 1.7, 0.4],
[ 1.4, 0.3],
可以看出后使用卡方检验,选择出了后两个特征。如果我们还想查看卡方检验的p值和得分,可以使用第3步。
3. 查看p-values和scores
model1.scores_ #得分
得分输出为:
array([ 10.81782088, 3.59449902, 116.16984746, 67.24482759])
可以看出后两个特征得分最高,与我们第二步的结果一致;
model1.pvalues_ #p-values
p值输出为:
array([ 4.47651499e-03, 1.65754167e-01, 5.94344354e-26, 2.50017968e-15])
可以看出后两个特征的p值最小,置信度也最高,与前面的结果一致。
也可以参考官方的帮助文档:selectKbest帮助文档
Python有包可以直接实现特征选择,也就是看自变量对因变量的相关性。今天我们先开看一下如何用卡方检验实现特征选择。
1. 首先import包和实验数据:
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
from sklearn.datasets import load_iris
#导入IRIS数据集
iris = load_iris()
iris.data#查看数据
结果输出:
array([[ 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],
2. 使用卡方检验来选择特征
model1 = SelectKBest(chi2, k=2)#选择k个最佳特征
model1.fit_transform(iris.data, iris.target)#iris.data是特征数据,iris.target是标签数据,该函数可以选择出k个特征
结果输出为:
array([[ 1.4, 0.2],
[ 1.4, 0.2],
[ 1.3, 0.2],
[ 1.5, 0.2],
[ 1.4, 0.2],
[ 1.7, 0.4],
[ 1.4, 0.3],
可以看出后使用卡方检验,选择出了后两个特征。如果我们还想查看卡方检验的p值和得分,可以使用第3步。
3. 查看p-values和scores
model1.scores_ #得分
得分输出为:
array([ 10.81782088, 3.59449902, 116.16984746, 67.24482759])
可以看出后两个特征得分最高,与我们第二步的结果一致;
model1.pvalues_ #p-values
p值输出为:
array([ 4.47651499e-03, 1.65754167e-01, 5.94344354e-26, 2.50017968e-15])
可以看出后两个特征的p值最小,置信度也最高,与前面的结果一致。
也可以参考官方的帮助文档:selectKbest帮助文档
相关文章推荐
- machine learning in coding(python):使用贪心搜索【进行特征选择】
- sklearn学习:使用sklearn进行特征选择(未完)
- Python 文本挖掘:使用机器学习方法进行情感分析(一、特征提取和选择)
- 智慧石的链接:[使用Matlab进行特征选择]
- Python 3.4.3 使用threading模块进行多线程编码实现
- 如何使用R语言的Boruta包进行特征选择
- 数据预处理(1) ——数据清洗 使用python(sklearn,pandas,numpy)实现
- RELIEFF Feature Selection(RELIEFF特征选择) Python实现
- 数据预处理(2) ——数据变换与数据离散化 使用python(sklearn,pandas,numpy)实现
- 预处理 (补充) ---特征选择(sklearn实现)
- sklearn:使用GBDT选择特征
- 借助weka实现的分类器进行针对文本分类问题的特征词选择实验(实验代码备份)
- 使用Python以优雅的方式实现根据shp数据对栅格影像进行切割
- 下拉框使用c:if标签进行判断然后使用selected属性实现选择状态
- 文本挖掘之特征选择(python 实现)
- 文本挖掘之特征选择(python 实现)
- 使用caffe的python接口进行特征提取和人脸验证
- Python笔记–IAR使用Python脚本实现自动对烧录文件进行处理
- 数据预处理(3) ——数据归约 使用python(sklearn,pandas,numpy)实现
- 数据挖掘(Python)——利用sklearn进行数据挖掘,实现算法:svm、knn、C5.0、NaiveBayes