特征选择

本文参照:https://www.cnblogs.com/hhh5460/p/5186226.html 

                http://scikit-learn.org/stable/modules/feature_selection.html#univariate-feature-selection

                https://blog.csdn.net/lk7688535/article/details/52529610

1.Removing features with low variance

  这是特征选择的基线方法,假设某特征的特征值只有0和1,并且在所有输入样本中,95%的实例的该特征取值都是1,那就可以认为这个特征作用不大。可以把它作为特征选择的预处理,先去掉那些取值变化小的特征,然后再从接下来提到的的特征选择方法中选择合适的进行进一步的特征选择。如下面官网的例子,设置阈值0.8:

>>> from sklearn.feature_selection import VarianceThreshold
>>> X = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]
>>> sel = VarianceThreshold(threshold=(.8 * (1 - .8)))
>>> sel.fit_transform(X)
array([[0, 1],
       [1, 0],
       [0, 0],
       [1, 1],
       [1, 0],
       [1, 1]])

2.Univariate feature selection

     单变量特征选择能够对每一个特征进行测试,衡量该特征和响应变量之间的关系,根据得分扔掉不好的特征。对于回归和分类问题可以采用卡方检验等方式对特征进行测试。此方法比较简单易于理解,但对特征优化、提高泛化能力来说不一定有效。有很多变种。

2.1 Pearson Correlation

  皮尔森相关系数是一种最简单的,能帮助理解特征和响应变量之间关系的方法,该方法衡量的是变量之间的线性相关性,结果的取值区间为[-1,1],-1表示完全的负相关(这个变量下降,那个就会上升),+1表示完全的正相关,0表示没有线性相关。

皮尔逊相关系数的适用范围:

当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于: 
1. 两个变量之间是线性关系,都是连续数据。 
2. 两个变量的总体是正态分布,或接近正态的单峰分布。 

3. 两个变量的观测值是成对的,每对观测值之间相互独立。

Pearson相关系数公式的四种形式





 Pearson Correlation速度快、易于计算,经常在拿到数据(经过清洗和特征提取之后的)之后第一时间就执行。Scipy的pearsonr方法能够同时计算相关系数和p-value。

2.2 互信息和最大信息系数 Mutual information and maximal information coefficient (MIC)

可以看出,如果X与Y独立,则P(X,Y)=P(X)P(Y),I(X,Y)就为0,即代表X与Y不相关

其中,H(Y)是Y的熵,定义为 
H(Y)=YP(Y)logP(Y)H(Y)=−∫YP(Y)log⁡P(Y)

Y的熵指的是衡量的是Y的不确定度,Y分布得越离散,H(Y)的值越高

H(Y|X)则表示在已知X的情况下,Y的不确定度

所以,根据互信息公式的变形: 
I(X,Y)=H(Y)H(Y|X)I(X,Y)=H(Y)−H(Y|X)

可以看出,I(X,Y)可以解释为由X引入而使Y的不确定度减小的量,这个减小的量为H(Y|X)

所以,如果X,Y关系越密切,I(X,Y)就越大

I(X,Y)最大的取值是H(Y)H(Y),此时H(Y|X)为0,意义为X和Y完全相关,在X确定的情况下Y是个定值,没有出现其他不确定情况的概率,所以为H(Y|X)为0

I(X,Y)取0时,代表X与Y独立,此时H(Y)=H(Y|X),意义为X的出现不影响Y

缺点: 在做文本分类时,我们可能会判断一个词和某类的相关程度,但是计算时,未考虑词频的影响 

(可以让互信息的结果再乘上tf-idf因子,从而将特征频率与特征分布考虑进去)

2.3 距离相关系数 (Distance correlation)

距离相关系数是为了克服Pearson相关系数的弱点而生的。在x和x^2这个例子中,即便Pearson相关系数是0,我们也不能断定这两个变量是独立的(有可能是非线性相关);但如果距离相关系数是0,那么我们就可以说这两个变量是独立的。

2.4 基于学习模型的特征排序 (Model based ranking)

2.5 用回归模型的系数来选择特征。越是重要的特征在模型中对应的系数就会越大,而跟输出变量越是无关的特征对应的系数就会越接近于0。在噪音不多的数据上,或者是数据量远远大于特征数的数据上,如果特征之间相对来说是比较独立的,那么即便是运用最简单的线性回归模型也一样能取得非常好的效果

2.6 正则化 L2正则化将系数向量的L2范数添加到了损失函数中。由于L2惩罚项中系数是二次方的,这使得L2和L1有着诸多差异,最明显的一点就是,L2正则化会让系数的取值变得平均。对于关联特征,这意味着他们能够获得更相近的对应系数。还是以Y=X1+X2为例,假设X1和X2具有很强的关联,如果用L1正则化,不论学到的模型是Y=X1+X2还是Y=2X1,惩罚都是一样的,都是2alpha。但是对于L2来说,第一个模型的惩罚项是2alpha,但第二个模型的是4*alpha。可以看出,系数之和为常数时,各系数相等时惩罚是最小的,所以才有了L2会让各个系数趋于相同的特点。


可以看出,L2正则化对于特征选择来说一种稳定的模型,不像L1正则化那样,系数会因为细微的数据变化而波动。所以L2正则化和L1正则化提供的价值是不同的,L2正则化对于特征理解来说更加有用:表示能力强的特征对应的系数是非零。


     

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值