一.特征提取和特征选择的区别
特征选择和降维(特征提取)有着些许的相似点,这两者达到的效果是一样的,就是试图去减少特征数据集中的属性(或者称为特征)的数目;但是两者所采用的方式方法却不同:降维的方法主要是通过属性间的关系,如组合不同的属性得到新的属性,这样就改变了原来的特征空间;而特征选择的方法是从原始特征数据集中选择出子集,是一种包含的关系,没有更改原始的特征空间。
二.常用的特征选择方法有哪些?
特征选择是从样本集中选取重要的特征子集
比较有名的特征选择有过滤法(Filter),包裹法(Wrapper),嵌入法(Embedded)
先介绍几个和特征选择相关的名词:
特征发散:如果特征不发散,也就是说特征的方差趋近于0,则代表这个特征上不同样本之间没有差异性,对区分样本的作用基本不存在。
特征与目标的相关性:所谓相关性,就是说特征和目标值之间存在正相关(随着目标值的变大特征值也逐渐变大)或者负相关的特性。代表了特征值和目标值之间具有很强的数据上的因果关系。
1.过滤法
过滤法就是按照发散性或者相关性对各个特征进行评分,设定阈值或者选择阈值的个数,完成特征选择。
1)方差法:这种方法通过计算每个特征的均值和方差,设定一个基础阈值,当该维度的特征方差小于基础阈值时,则丢弃该特征。这种方法简单高效的过滤了一些低方差的特征,但是存在一个问题就是阈值的设定是一个先验条件,当设置过低时,保留了过多低效的特征,设置过高则丢弃了过多有用的特征。
2)单变量特征选择:单变量特征选择能够对每一个特征进行测试,衡量该特征和响应变量之间的关系,根据得分扔掉不好的特征。单变量特征选择方法,独立的衡量每个特征与响应变量之间的关系
卡方检验:对于回归和分类问题可以采用卡方检验等方式对特征进行测试。
互信息法选择特征样例:
什么是互信息?
互信息(Mutual Information)是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。
2.包裹法(Wrapper)
所谓包裹法就是选定特定算法,然后再根据算法效果来选择特征集合。
就是通过不断的启发式方法来搜索特征,主要分为如下两类。
方法一:选择一些特征,逐步增加特征保证算法模型精度是否达标。
方法二:删除一些特征,然后慢慢在保持算法精度的条件下,缩减特征。
即为选用那些本就提供特征重要性测量的模型,直接调用相应方法进行特征选择。
1)利用线性回归模型
这个不常用,因为真实数据的线性关系不是很好,故应选择能处理非线性的随机森林模型,它精确度更高,也提供预测特征重要性的方法。
lr.coef_ lr为创建的模型,会输出形如:
Linear model: -1.291 * X0 + 1.591 * X1 + 2.747 * X2 通过特征前的权重值来判断特征的重要性
2)RF选取重要特征的依据
平均不纯度减少(MDI):表示每个特征对误差的平均减少程度。
平均精确率减少(MDA):打乱每个特征的特征值顺序,并且度量顺序变动对模型的精确率的影响。对于不重要的特征来说,打乱顺序对模型的精确率影响不会太大,但是对于重要的特征来说,打乱顺序就会降低模型的精确率。
3)sklearn GBDT是根据非叶子节点在分裂时加权不纯度减少的程度来衡量的,减少得越多说明特征越重要。
4)XGBoost则有三种方法(get_score)
weight:特征用来作为分裂点的次数
gain:使用特征进行切分的平均增益
cover:某个特征在某个结点进行分裂时所覆盖的样本个数
3.嵌入法(Embedded)
就是利用正则化的思想,将部分特征属性的权重调整到0,则这个特性相当于就是被舍弃了。(其实就是在损失函数上再加入正则项,不断的利用梯度下降极小化损失函数,调整一些特征的权重,有些权重变为0了则相当于被舍弃了,没被舍弃的相当于被选择出来的向量。)
L1正则方法具有稀疏解的特性,因此天然具备特征选择的特性,但是要注意,L1没有选到的特征不代表不重要,原因是两个具有高相关性的特征可能只保留了一个,如果要确定哪个特征重要应再通过L2正则方法交叉检验;
三、常用的特征提取方法有哪些?
常用的方法有主成分分析(PCA),独立成分分析(ICA),线性判别分析(LDA)一般数据是有类别的,最好先考虑用LDA降维。也可先用小幅度的PCA降维消除噪声再用LDA降维,若训练数据没有类别优先考虑PCA。
特征提取是由原始输入形成较少的新特征,它会破坏数据的分布,为了使得训练出的模型更加健壮,若不是数据量很大特征种类很多,一般不要用特征提取。
1.PCA
作为一个非监督学习的降维方法,它只需要特征值分解,就可以对数据进行压缩,去噪。因此在实际场景应用很广泛。为了克服PCA的一些缺点,出现了很多PCA的变种,比如为解决非线性降维的KPCA,还有解决内存限制的增量PCA方法Incremental PCA,以及解决稀疏数据降维的PCA方法Sparse PCA等。
PCA是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大(样本的分布最散乱)以使用较少的数据维度同时保留住较多的原数据点的特征。
PCA的优缺点分析:
优点:
第一、仅仅需要以方差衡量信息量,不受数据集以外的因素影响。第二、各主成分之间正交,可消除原始数据成分间的相互影响的因素。第三、计算方法简单,主要运算是特征值分解,易于实现。
缺点:
第一、提取出的各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。第二、PCA会消除一些类信息,但是方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。
2.LDA
LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。什么意思呢? 我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。
LDA的优缺点分析:
LDA算法的主要优点有:
1)在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。
2)LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。
LDA算法的主要缺点有:
1)LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。
2)LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题。
3)LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好。
4)LDA可能过度拟合数据。