一些常见的特征选择方法

现实中产生的特征维度可能很多,特征质量参差不齐,不仅会增加训练过程的时间,也可能会降低模型质量。因此,提取出最具代表性的一部分特征来参与训练就很重要了。
通常有特征抽取和特征选择两种方法。这里分别介绍一下。

特征抽取

特征抽取中最常见的当属PCA了。

PCA

对于特征之间存在正交关系,数据满足高斯分布或指数分布的数据,作线性变换,使用方差、协方差去噪,生成新的主元,接下来按重要性排序后取少数参与训练,达到减少特征的目的。
这里最重要的思想是把多个特征进行线性变换,使用较少的特征表达原来多个特征的主要特点。
由于现实中取得的数据绝大部分满足高斯分布,所以PCA应用极广。

人脸识别应用
将多幅同一人的人脸图像进行PCA变换,找到代表人脸的主要特征模型。当有新的人脸需要识别时,进行相同变换,并与已存在的人脸特征模型进行匹配。

原理讲解参考文档
http://www.360doc.com/content/10/0318/20/1024901_19297267.shtml

R应用方法

//PCA方案1:用SVD实现
pca1<-prcomp(USArrests, scale = TRUE)
//PCA方案2:采用线性代数中的实对称均值的对角化实现
pca2<-princomp(USArrests,cor=T)
summary(pc1)

summary的输出为:

Importance of components:
PC1 PC2 PC3 PC4
Standard deviation 1.5749 0.9949 0.59713 0.41645
Proportion of Variance 0.6201 0.2474 0.08914 0.04336
Cumulative Proportion 0.6201 0.8675 0.95664 1.00000

上面三行分别为标准差,方差贡献率,累计方差贡献率。
根据上面的数据,至PC3时,累计方差贡献率已达0.95664,因此只取前三个特征已经足够。

特征选择

特征选择主要有Filter、Wrapper、Embedded等几种不同的思路。这里主要写写Filter。

卡方检验

在有不同特征值的影响下,对两组目标变量作卡方检验,计算x2值,看两组数据是否有统计学上的明显差异。

这里给出R中的代码例子。

1、使用卡方检验判断患者治疗方式对治疗效果的影响

library(vcd)//加载vcd数据包
//准备进行卡检验所需的数据,提取治疗方式与治疗效果
mytable<-xtabs(~Treatment+Improved,data=Arthritis)
//对mytable进行卡方检验
chisq.test(mytable)

以下是输出结果

Pearson's Chi-squared test

data: mytable
X-squared = 13.055, df = 2, p-value = 0.001463

p < 0.01,可以判断患者接受的治疗方式对治疗效果有明显影响。

2、使用卡方检验判断患者的性别对治疗效果的影响

library(vcd)//加载vcd数据包
//准备进行卡检验所需的数据,提取患者性别与治疗效果
mytable<-xtabs(~Improved+Sex,data=Arthritis)
//对mytable进行卡方检验
chisq.test(mytable)

以下是输出结果

Pearson's Chi-squared test

data: mytable
X-squared = 4.8407, df = 2, p-value = 0.08889

p > 0.05,可以判断患者的性别对治疗效果无明显影响。

上面的实验中,p值表示不同列之间的相互独立的概率。
在1中,由于p值很小,所以拒绝了治疗方式与治疗效果之间相互独立的假设。
在2中,由于p值不够小,所以无法拒绝性别与治疗效果之间相互独立的假设。

WOE、IV

预测目标变量所需的信息总量蕴含在所有的特征中,某个特征所蕴含信息量(IV值)越大,则越重要。
IV值的计算以WOE为基础。
详细的概念、原理及公式可以参考这篇文章
数据挖掘模型中的IV和WOE详解:
http://www.17bigdata.com/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98%E6%A8%A1%E5%9E%8B%E4%B8%AD%E7%9A%84iv%E5%92%8Cwoe%E8%AF%A6%E8%A7%A3.html

接下来看看R中的应用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值