上一篇:机器学习实战-特征选择之嵌入法
机器学习里面,我们梳理了过滤法,嵌入法,本篇我们来讲解一下包装法。
![278a8d08eb39b3324a8409332699a17f.png](https://i-blog.csdnimg.cn/blog_migrate/1d4375ff8e58df79e4a1914ab88b59bc.jpeg)
本文章节
1、介绍递归特征消除RFE
2、介绍基于交叉验证的RFECV
3、数据特征提取
介绍递归特征消除RFE
在Wrapper里面有个很重要的东西,递归特征消除,Recursive Feature Elimination,简称RFE.
同学以后见到算法中的RFE就别迷茫了,其实就是递归特征消除,这个从字面上非常好理解,我们采用某一个模型,例如逻辑回归LogisticRegression,针对我们的数据进行多次的训练,每一次训练后,都会根据权值系数来移除权重比较低的特征,此时,再根据新的特征,继续下一轮的特征,这就是递归特征消除,不知道这样说是否简单些。
我们研究sklearn官方,它给出了一定的说明:针对那些特征含有权重的预测模型,RFE通过递归的方式,不断减少特征集的规模来选择需要的特征。
第一:给每一个特征指定一个权重,接着采用预测模型在这些原始的特征上进行训练。
第二:在获取到特征的权重值后,对这些权重值取绝对值,把最小绝对值剔除掉。
第三:按照这样做,不断循环递归,直至剩余的特征数量达到所需的特征数量。
介绍基于交叉验证的RFECV
在数据训练的过程中,我们经常采用K折交叉验证来进行调参,RFE也可以进化,这个叫做RFECV,其实简单里面就是:采用交叉验证的递归特征消除,RFECV,这样做的目的只有一个,选择最佳数量的特征。
![ebb38a4b6ae302324e6c23bc4dc44c97.png](https://i-blog.csdnimg.cn/blog_migrate/3ad6160afa618a6e436201ad7b95f392.jpeg)
我这里描述一下其过程:假定我们有N个特征的集合,那这个时候计算一下它的所有子集的个数为2的N次方减一(包含了空集合)。接着,我们选择一个算法,例如决策树、SVM等,通过算法来计算所有子集的验证误差(validation error),然后选择那个误差率最小的子集所选择的特征。
备注:在做交叉验证的时候,不做特殊要求的时候,小编一般采用准确率来判断;特殊要求的时候,例如分类,不平衡分类等,取重要类别的精准率来做判断。
数据特征提取
在本次实验中,我们分别提取5个特征,10个特征,算法上采用逻辑回归来做
![268e74a43090bd29812af8a66b3db16d.png](https://i-blog.csdnimg.cn/blog_migrate/109b2fc578defcf465affbebf89217a4.jpeg)
![d062750b150a38a33db9e0d6cb48949b.png](https://i-blog.csdnimg.cn/blog_migrate/f3e13a763e3a8fd9aa6e6d13acc05840.jpeg)
可以很直接看出,采用了5次与10次的结果。
这里不知道有没有同学发现,这个10次得到的结果跟以前得到的结果是一样,也就是说,删除掉的特征是一样的。举一反三,在分类器中,有弱分类器与强分类器之分,像决策树是弱分类器,随即森林是强分类器,强分类器是由N个弱分类器组合而成,那我们在进行特征提取的时候是否也可以做强特征提取。
1、采用不同提取特征的方法,提取N个特征
2、对每一个方法所提取到的特征做交集,从而达到提取权重都高的特征。
在本次数据提取中,我们提取到的特征都是一样的,因为我们的特征比较少,有很多特征的同学可以试试看。
至此,特征提取的方法告一段落,接下来,我们开始做分类。
--END--
作者:溪云阁
原创作品,抄袭必究。
部分图片来源网络,如侵权请联系删除,谢谢!