最近参加一些数据挖掘/机器学习的比赛,很多时候只会简单的弄个baseline或者套模型,知道通过交叉验证来判断是高偏差还是高方差,但是知道高偏差之后不知道怎么构建有效的特征,经常都是想到什么就构建什么,基本没什么提高。经常看到有人或者文章说特征工程很重要,甚至占了比赛成绩的80%,剩下的才是模型融合、调参之类的。

特征工程有什么比较系统的方法学习吗?还是只能靠对业务本身的理解或者经验积累?或者无脑堆很多乱七八糟的特征之后再筛选?(如果有效果的话....) 一直不知道怎么能学习特征工程或者说模型优化方面的知识,希望有人可以稍微提点一下,非常感谢。


主要还是要靠先验知识,经验还是很重要的。比赛的话,就另说了,因为人家都把变数池告诉你了,剩下的,主要做一下聚合衍生与横向衍生,可以去github看下featuretools,查阅下文档。你可以不用这个工具,但是你看他的文档会学到很多衍生方法,基本囊括了所有。


跟你一样的感觉,应该还是有一些通用的思路的。现在感觉完全没入门一样,一直乱撞成绩提高不了,自己还费了很大劲,信心兴趣都没了。。

期待更新!


泻药,我就我知道的一些特征工程的理解说一下,首先特征工程分为特征提取和特征选择两大类,在我们做比赛的时候,首先第一步就是判断每个特征和目标也就是标签的关系,在这个之中,我们可能需要对类别特征做一些处理,因为我们机器学习的演算法大部分只能接受数值数据,当然一些决策树演算法也可以接受类别特征,看这些特征对目标的贡献,选出那些对目标有最大贡献的一些特征,当然这里面还有很复杂的东西,比如缺失值和杂讯点的处理,接下来就是构建一个baseline模型,看一下结果,接下来就是对那些有显著影响的特征看能不能做一下特征融合(包含在特征提取里面)构建新的特征,然后再看实验效果,这个时候可能感觉没法提升了,这个时候要回到数据本身去查找原因,是不是对某些特征没有深度挖掘,细粒度不够赞成的,比如年龄这个栏位,要不要把他进行分段,有时候可能需要做一下降维,比如pca,但是做了之后就不知道每个特征的具体意义了,在要求需要对数据可解释下,这个就不能做了。最后就是集成了,这个就是bagging这些东西了。仅抒己见,如有不足之处,请多多指教!


楼主的问题非常好,期待大牛的干货回答。特征构建和模型优化方面如果没有大牛指点的话,只能靠自己多做项目,多思考,多总结。已关注问题。


个人理解最重要的是根据对问题的理解去构建特征,构建特征之后可以运用像与或非等操作构建组合特征等,然后在进行特征选择。

有一个暴力衍生特征的工具包featuretools,可以批量衍生海量特征。不过这样无脑衍生的栏位可能90%都是无效的,所以后面还要跟一个特征筛选的步骤。


推荐阅读:
相关文章