最近看到的“特征工程”相关文章,特汇总在一起方便浏览~
对于搞数据的和玩深度学习的特征工程是不可少的一环,尤其是特征选择,好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。
- 这里先上一篇总括《特征工程技术与方法》
这篇文章详细梳理了特征工程所包含的内容,对机器学习中的特征、特征的重要性、特征提取与选择、特征的构建、学习等子类问题也给与了总结,总之看过这篇文章之后对特征工程就能有一个总体的认识。(这张图总结的太好了,一目了然,贴出来!)http://blog.csdn.net/jasonding1354/article/details/47171115 特征选择是特征工程中的重要问题(另一个是特征提取),这里上两篇文章,分别从不同的角度的介绍了特征选择这个问题,结合着一起看更加方便理解~
- 《特征选择》
这篇文章结合Scikit-learn提供的例子介绍了几种常用的特征选择方法,它们各自的优缺点和问题。包括去掉取值变化小的特征、单变量特征选择、线性模型和正则化、随机森林、两种顶层特征选择算法等。http://chaoslog.com/te-zheng-xuan-ze.html
- 《特征选择常用算法综述》
这篇文章是从“特征选择的一般过程”这个角度来介绍特征选择,中间根据不同的应用场景穿插介绍各种算法。http://dataunion.org/12105.htmlp.s.再补充一个知乎问答“机器学习中,有哪些特征选择的工程方法?”这里截取一段:特征选择是指选择获得相应模型和算法最好性能的特征集,工程上常用的方法有如下:
1. 计算每一个特征与响应变量的相关性:工程上常用的手段有计算皮尔逊系数和互信息系数,皮尔逊系数只能衡量线性相关性而互信息系数能够很好地度量各种相关性,但是计算相对复杂一些,好在很多toolkit里边都包含了这个工具(如sklearn的MINE),得到相关性之后就可以排序选择特征了;
2. 构建单个特征的模型,通过模型的准确性为特征排序,借此来选择特征,另外,记得JMLR‘03上有一篇论文介绍了一种基于决策树的特征选择方法,本质上是等价的。当选择到了目标特征之后,再用来训练最终的模型;
3. 通过L1正则项来选择特征:L1正则方法具有稀疏解的特性,因此天然具备特征选择的特性,但是要注意,L1没有选到的特征不代表不重要,原因是两个具有高相关性的特征可能只保留了一个,如果要确定哪个特征重要应再通过L2正则方法交叉检验;
4. 训练能够对特征打分的预选模型:RandomForest和Logistic Regression等都能对模型的特征打分,通过打分获得相关性后再训练最终模型;
5. 通过特征组合后再来选择特征:如对用户id和用户特征最组合来获得较大的特征集再来选择特征,这种做法在推荐系统和广告系统中比较常见,这也是所谓亿级甚至十亿级特征的主要来源,原因是用户数据比较稀疏,组合特征能够同时兼顾全局模型和个性化模型,这个问题有机会可以展开讲。
6. 通过深度学习来进行特征选择:目前这种手段正在随着深度学习的流行而成为一种手段,尤其是在计算机视觉领域,原因是深度学习具有自动学习特征的能力,这也是深度学习又叫unsupervised feature learning的原因。从深度学习模型中选择某一神经层的特征后就可以用来进行最终目标模型的训练了。全部回答见这里》》“机器学习中,有哪些特征选择的工程方法?”
继续补充:微博上看到的@爱可可-爱生活大大分享的关于特征工程 vs. 特征提取的英文文章《Feature Engineering versus Feature Extraction: Game On!》持续更新,欢迎大家帮我一起收集,人多力量大!
可以点击”查看原网页“查看更详细内容哦~