特征选择(feature selection)

探讨了在特征数量远大于样本数量时如何通过特征选择提高GBDT模型性能的方法,介绍了前向搜索和后向搜索两种启发式搜索方法,以及它们在实际应用中的计算复杂度。文章基于KDD Cup 2013数据集,分析了现有特征组合效果不佳的原因,提出了优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做kdd cup 2013,特征倒是能yy出来不少,但是加到GBDT里面去效果就是不好,map反而下降了。

所以想做一个feature selection,现有的特征也不是很多,三四十个,但是全用上效果比较差。


  特征选择严格来说也是模型选择中的一种。这里不去辨析他们的关系,重点说明问题。假设我们想对维度为n的样本点进行回归,然而,n可能大多以至于远远大于训练样例数m。但是我们感觉很多特征对于结果是无用的,想剔除n中的无用特征。n个特征就有clip_image034种去除情况(每个特征去或者保留),如果我们枚举这些情况,然后利用交叉验证逐一考察在该情况下模型的错误率,太不现实。因此需要一些启发式搜索方法。

前向搜索:

1、 初始化特征集F为空。

2、 扫描i从1到n,

如果第i个特征不在F中,那么将特征i和F放在一起作为clip_image036(即clip_image038

在只使用clip_image036[1]中特征的情况下,利用交叉验证来得到clip_image036[2]的错误率。

3、 从上步中得到的n个clip_image036[3]中选出错误率最小的clip_image036[4],更新F为clip_image036[5]

如果F中的特征数达到了n或者预设定的阈值(如果有的话),那么输出整个搜索过程中最好的F,没达到转到2

     前向搜索属于wrapper model feature selection。Wrapper这里指不断地使用不同的特征集来测试学习算法。前向搜索说白了就是每次增量地从剩余未选中的特征选出一个加入特征集中,待达到阈值或者n时,从所有的F中选出错误率最小的。

     既然有增量加,那么也会有增量减,后者称为后向搜索。先将F设置为{1,2,..,n},然后每次删除一个特征,并评价,直到达到阈值或者为空,然后选择最佳的F。

     这两种算法都可以工作,但是计算复杂度比较大。时间复杂度为clip_image040

我是按这样的框架实现,由于训练一次模型的时间比较长,O(n^2)的复杂度也只能让我的feature selection的程序慢慢跑了

参考资料:

http://www.cnblogs.com/jerrylead/archive/2011/03/27/1996799.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值