1、为什么要做特征选择
在有限的样本数目下,用大量的特征来设计分类器计算开销太大而且分类性能差。
2、特征选择的确切含义
将高维空间的样本通过映射或者是变换的方式转换到低维空间,达到降维的目的,然后通过特征选取删选掉冗余和不相关的特征来进一步降维。
3、特征选取的原则
获取尽可能小的特征子集。不显著降低分类精度、不影响类分布以及特征子集应具有稳定适应性强等特点
4、特征选择须要考虑的问题
a、确定选择算法,在同意的时间内以最小的代价找出最小的、最能描写叙述类别的特征组合
b、确定评价标准,衡量特征组合是否是最优。得到特征获取操作的停止条件。
5、特征获取方法
a、依照特征子集的形成方式能够分为三种。穷举法(exhaustion)、启示法(heuristic)和随机法(random)。
穷举法须要遍历特征空间中全部的特征组合。所以方法复杂度最大,实用性不强;启示法通过採用期望的人工机器调度规则,反复迭代产生递增的特征子集,复杂度略低于穷举法。可是仅仅能获取近似最优解。随即方法分为全然随机方法和概率随机方法两种。对參数设置的依赖性较强。
b、依照特征评价标准来分,依据评价函数与分类器的关心。能够分为筛选器和封装器两种,筛选器的评价函数与分类器无关。封装器採用分类器的错误概率作为评价函数。
筛选器的评价函数能够细分为距离測度、信息測度、相关性測度和一致性測度。
距离測度用距离来衡量样本之间的类似度,信息測度利用最小不确定性特征来分类。
6、特征选择方法总结
1 去掉取值变化小的特征 Removing features with low variance
该方法一般用在特征选择前作为一个预处理的工作。即先去掉取值变化小的特征。然后再使用其它的特征选择方法选择特征。
2 单变量特征选择 Univariate feature selection
单变量特征选择能够对每一个特征进行測试,衡量该特征和响应变量之间的关系。依据得分扔掉不好的特征。
对于回归和分类问题能够採用卡方检验等方式对特征进行測试。
2.1 Pearson相关系数 Pearson Correlation
皮尔森相关系数是一种最简单的,能帮助理解特征和响应变量之间关系的方法,该方法衡量的是变量之间的线性相关性,结果的取值区间为[-1,1],-1表示全然的负相关(这个变量下降。那个就会上升)。+1表示全然的正相关,0表示没有线性相关。
2.2 互信息和最大信息系数 Mutual information and maximal information coefficient (MIC)
以上就是经典的互信息公式了。想把互信息直接用于特征选择事实上不是太方便:1、它不属于度量方式,也没有办法归一化,在不同数据及上的结果无法做比較;2、对于连续变量的计算不是非常方便(X和Y都是集合。x。y都是离散的取值),通常变量须要先离散化,而互信息的结果对离散化的方式非常敏感。
2.3 距离相关系数 (Distance correlation)
距离相关系数是为了克服Pearson相关系数的弱点而生的。
在x和x^2这个样例中,即便Pearson相关系数是0,我们也不能断定这两个变量是独立的(有可能是非线性相关)。但如果距离相关系数是0,那么我们就能够说这两个变量是独立的。
2.4 基于学习模型的特征排序 (Model based ranking)
这样的方法的思路是直接使用你要用的机器学习算法,针对每一个单独的特征和响应变量建立预測模型。事实上Pearson相关系数等价于线性回归里的标准化回归系数。
假如某个特征和响应变量之间的关系是非线性的,能够用基于树的方法(决策树、随机森林)、或者扩展的线性模型等。
基于树的方法比較易于使用。由于他们对非线性关系的建模比較好。而且不须要太多的调试。但要注意过拟合问题,因此树的深度最好不要太大,再就是运用交叉验证。
3 线性模型和正则化
单变量特征选择方法独立的衡量每一个特征与响应变量之间的关系,还有一种主流的特征选择方法是基于机器学习模型的方法。有些机器学习方法本身就具有对特征进行打分的机制。或者非常easy将其运用到特征选择任务中,比如回归模型。SVM,决策树。随机森林等等。
说句题外话。这样的方法好像在一些地方叫做wrapper类型,大概意思是说。特征排序模型和机器学习模型是耦盒在一起的,相应的非wrapper类型的特征选择方法叫做filter类型。
3.1 正则化模型
正则化就是把额外的约束或者惩处项加到已有模型(损失函数)上,以防止过拟合并提高泛化能力。
损失函数由原来的E(X,Y)变为E(X,Y)+alpha||w||,w是模型系数组成的向量(有些地方也叫參数parameter,coefficients),||·||通常是L1或者L2范数。alpha是一个可调的參数。控制着正则化的强度。
当用在线性模型上时。L1正则化和L2正则化也称为Lasso和Ridge。
3.2 L1正则化/Lasso
L1正则化将系数w的l1范数作为惩处项加到损失函数上。由于正则项非零,这就迫使那些弱的特征所相应的系数变成0。因此L1正则化往往会使学到的模型非常稀疏(系数w经常为0)。这个特性使得L1正则化成为一种非常好的特征选择方法。
3.3 L2正则化/Ridge regression
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正则化对于特征理解来说更加实用:表示能力强的特征相应的系数是非零
4 随机森林
随机森林具有准确率高、鲁棒性好、易于使用等长处。这使得它成为了眼下最流行的机器学习算法之中的一个。随机森林提供了两种特征选择的方法:mean decrease impurity和mean decrease accuracy。
4.1 平均不纯度降低 mean decrease impurity
随机森林由多个决策树构成。
决策树中的每一个节点都是关于某个特征的条件。为的是将数据集依照不同的响应变量一分为二。
利用不纯度能够确定节点(最优条件)。对于分类问题,通常採用基尼不纯度或者信息增益,对于回归问题,通常採用的是方差或者最小二乘拟合。当训练决策树的时候,能够计算出每一个特征降低了多少树的不纯度。对于一个决策树森林来说。能够算出每一个特征平均降低了多少不纯度,并把它平均降低的不纯度作为特征选择的值。
4.2 平均精确率降低 Mean decrease accuracy
还有一种经常使用的特征选择方法就是直接度量每一个特征对模型精确率的影响。主要思路是打乱每一个特征的特征值顺序,而且度量顺序变动对模型的精确率的影响。
非常明显,对于不重要的变量来说。打乱顺序对模型的精确率影响不会太大,可是对于重要的变量来说。打乱顺序就会降低模型的精确率。
5 两种顶层特征选择算法
之所以叫做顶层,是由于他们都是建立在基于模型的特征选择方法基础之上的。比如回归和SVM,在不同的子集上建立模型,然后汇总终于确定特征得分。
5.1 稳定性选择 Stability selection
稳定性选择是一种基于二次抽样和选择算法相结合较新的方法。选择算法能够是回归、SVM或其它类似的方法。
它的主要思想是在不同的数据子集和特征子集上执行特征选择算法。不断的反复,终于汇总特征选择结果,比方能够统计某个特征被觉得是重要特征的频率(被选为重要特征的次数除以它所在的子集被測试的次数)。
理想情况下,重要特征的得分会接近100%。略微弱一点的特征得分会是非0的数,而最没用的特征得分将会接近于0。
5.2 递归特征消除 Recursive feature elimination (RFE)
递归特征消除的主要思想是反复的构建模型(如SVM或者回归模型)然后选出最好的(或者最差的)的特征(能够依据系数来选),把选出来的特征放到一遍。然后在剩余的特征上反复这个过程。直到全部特征都遍历了。
这个过程中特征被消除的次序就是特征的排序。
因此。这是一种寻找最优特征子集的贪心算法。
RFE的稳定性非常大程度上取决于在迭代的时候底层用哪种模型。比如,假如RFE採用的普通的回归。没有经过正则化的回归是不稳定的。那么RFE就是不稳定的;假如採用的是Ridge,而用Ridge正则化的回归是稳定的,那么RFE就是稳定的。
7、特征获取方法的选取原则
a、处理的数据类型
b、处理的问题规模
c、问题须要分类的数量
d、对噪声的容忍能力
e、无噪声环境下,产生稳定性好、最优特征子集的能力。
注:
什么是卡方检验?用方差来衡量某个观測频率和理论频率之间差异性的方法
什么是皮尔森卡方检验?这是一种最经常使用的卡方检验方法。它有两个用途:1是计算某个变量对某种分布的拟合程度,2是依据两个观測变量的Contingency table来计算这两个变量是否是独立的。主要有三个步骤:第一步用方差和的方式来计算观測频率和理论频率之间卡方值。第二步算出卡方检验的自由度(行数-1乘以列数-1);第三步比較卡方值和相应自由度的卡方分布。推断显著性。
什么是p-value?简单地说,p-value就是为了验证如果和实际之间一致性的统计学意义的值,即如果检验。
有些地方叫右尾概率,依据卡方值和自由度能够算出一个固定的p-value,
什么是响应变量(response value)?简单地说,模型的输入叫做explanatroy variables,模型的输出叫做response variables,事实上就是要验证该特征对结果造成了什么样的影响