特征工程(4)--特征选择

来源:互联网 发布:网络90后美女排行榜 编辑:程序博客网 时间:2024/05/21 09:05
特征选择和降维有什么区别呢?前者只踢掉原本特征里和结果预测关系不大的, 后者做特征的计算组合构成新特征。 

特征选择和机器学习算法两者存在紧密的联系,根据特征选择中子集评价标准和后续学习算法的结合方式可分为嵌入式(Embedded)、过滤式(Filter)和封装式(Wrapper)式三种。

嵌入式特征选择
集成法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣

在嵌入式特征选择中,特征选择算法本身作为组成部分嵌入到学习算法里。最典型的即决策树算法,如ID3、C4.5以及CART算法等,决策树算法在树增长过程的每个递归步都必须选择一个特征,将样本集划分成较小的子集,选择特征的依据通常是划分后子节点的纯度,划分后子节点越纯,则说明划分效果越好,可见决策树生成的过程也就是特征选择的过程。

基于惩罚项的特征选择法:
L1范数正则化通过向成本函数中添加L1范数,使得学习得到的结果满足稀疏化(sparsity),从而方便人类提取特征
实际上,L1惩罚项降维的原理在于保留多个对目标值具有同等相关性的特征中的一个,所以没选到的特征不代表不重要。故,可结合L2惩罚项来优化。
具体操作为:若一个特征在L1中的权值为1,选择在L2中权值差别不大且在L1中权值为0的特征构成同类集合,将这一集合中的特征平分L1中的权值,故需要构建一个新的逻辑回归模型
python包:feature_selection.SelectFromModel选出权重不为0的特征。

过滤式特征选择

过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征

过滤式特征选择的评价标准从数据集本身的内在性质获得,与特定的学习算法无关,因此具有较好的通用性。通常选择和类别相关度大的特征或者特征子集。过滤式特征选择的研究者认为,相关度较大的特征或者特征子集会在分类器上可以获得较高的准确率。过滤式特征选择的评价标准分为四种,即距离度量、信息度量、关联度度量以及一致性度量。

过滤式特征选择算法的优缺点分别是:

优点:算法的通用性强;省去了分类器的训练步骤,算法复杂性低,因而适用于大规模数据集;可以快速去除大量不相关的特征,作为特征的预筛选器非常合适。

缺点:由于算法的评价标准独立于特定的学习算法,所选的特征子集在分类准确率方面通常低于Wrapper方法。

python包:SelectKBest指定过滤个数、SelectPercentile指定过滤百分比。

封装式特征选择
包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。

封装式特征选择是利用学习算法的性能来评价特征子集的优劣。因此,对于一个待评价的特征子集,Wrapper方法需要训练一个分类器,根据分类器的性能对该特征子集进行评价。Wrapper方法中用以评价特征的学习算法是多种多样的,例如决策树、神经网络、贝叶斯分类器、近邻法以及支持向量机等等。

封装式特征选择算法的优缺点分别是:

优点:相对于Filter方法,Wrapper方法找到的特征子集分类性能通常更好。

缺点:Wrapper方法选出的特征通用性不强,当改变学习算法时,需要针对该学习算法重新进行特征选择;由于每次对子集的评价都要进行分类器的训练和测试,所以算法计算复杂度很高,尤其对于大规模数据集来说,算法的执行时间很长。

python包:RFE 

0 0