特征工程和特征提取的思路整理

目的:逐步深入了解机器学习平台的上下游依赖项

步骤:先了解特征工程、特征提取的重要工作点


一、特征选择的入门理解

特征选择是特征工程中的重要问题(另一个重要的问题是特征提取),坊间常说:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见,特征工程尤其是特征选择在机器学习中占有相当重要的地位。

通常而言,特征选择是指选择获得相应模型和算法最好性能的特征集,工程上常用的方法有以下:
1. 计算每一个特征与响应变量的相关性:工程上常用的手段有计算皮尔逊系数和互信息系数,皮尔逊系数只能衡量线性相关性而互信息系数能够很好地度量各种相关性,但是计算相对复杂一些,好在很多toolkit里边都包含了这个工具(如sklearn的MINE),得到相关性之后就可以排序选择特征了;
2. 构建单个特征的模型,通过模型的准确性为特征排序,借此来选择特征,另外,记得JMLR'03上有一篇论文介绍了一种基于决策树的特征选择方法,本质上是等价的。当选择到了目标特征之后,再用来训练最终的模型;
3. 通过L1正则项来选择特征:L1正则方法具有稀疏解的特性,因此天然具备特征选择的特性,但是要注意,L1没有选到的特征不代表不重要,原因是两个具有高相关性的特征可能只保留了一个,如果要确定哪个特征重要应再通过L2正则方法交叉检验;
4. 训练能够对特征打分的预选模型:RandomForest和Logistic Regression等都能对模型的特征打分,通过打分获得相关性后再训练最终模型;
5. 通过特征组合后再来选择特征:如对用户id和用户特征最组合来获得较大的特征集再来选择特征,这种做法在推荐系统和广告系统中比较常见,这也是所谓亿级甚至十亿级特征的主要来源,原因是用户数据比较稀疏,组合特征能够同时兼顾全局模型和个性化模型,这个问题有机会可以展开讲。
6. 通过深度学习来进行特征选择:目前这种手段正在随着深度学习的流行而成为一种手段,尤其是在计算机视觉领域,原因是深度学习具有自动学习特征的能力,这也是深度学习又叫unsupervised feature learning的原因。从深度学习模型中选择某一神经层的特征后就可以用来进行最终目标模型的训练了。
整体上来说,特征选择是一个既有学术价值又有工程价值的问题,目前在研究领域也比较热,值得所有做机器学习的朋友重视

摘自知乎:
https://www.zhihu.com/question/28641663/answer/41653367

二、特征工程的选择

追本溯源,为什么特征工程和特征选择值得讨论?在实际的数据分析和建模中,我们通常要面对两种情况:
1 数据集中已有的特征变量不够多,或者已有的特征变量不足以充分表征数据的特点;
2 我们拥有大量的特征,需要判断出哪些是相关特征,哪些是不相关特征。
特征工程解决的是第一个问题,而特征选择解决的是第二个问题


对于特征工程来说,它的的难点在于找到好的思路,来产生能够表征数据特点的新特征变量;
而特征选择的难点则在于,其本质是一个复杂的组合优化问题(combinatorial optimization)。
例如,如果有 30 个特征变量,当我们进行建模的时候,每个特征变量有两种可能的状态:“保留”和“被剔除”。
那么,这组特征维度的状态集合中的元素个数就是 2^{30} 。更一般地,如果我们有 N 个特征变量,则特征变量的状态集合中的元素个数就是 2^{N}
因此,从算法角度讲,通过穷举的方式进行求解的时间复杂度是指数级的(O( 2^{N} ))。
当 N 足够大时,特征筛选将会耗费大量的时间和计算资源(图1)。
在实际应用中,为了减少运算量,目前特征子集的搜索策略大都采用贪心算法(greedyalgorithm),
其核心思想是在每一步选择中,都采纳当前条件下最好的选择,从而获得组合优化问题的近似最优解



1 通过穷举法求解特征选择问题的二叉树表示。状态集合中元素的个数随特征变量数目增加而呈现指数增长

目前很多流行的机器学习的材料,都未能给出特征工程和特征选择的详细论述。
其主要原因是,大部分机器学习算法有标准的推导过程,因而易于讲解。
但是在很多实际问题中,寻找和筛选特征变量并没有普适的方法。 
然而,特征工程和特征选择对于分析结果的影响,往往比之后的机器学习模型的选择更为重要。
斯坦福大学教授, Coursera 上著名的机器学习课程主讲老师 Andrew Ng 就曾经表示:“基本上,所谓机器学习应用,就是进行特征工程。”


三、总结
在数据建模的过程中,需要保持着对数据和算法全面,准确,深刻的理解和思考


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值