特征工程和算法的关系

来源:4-3 训练数据集,测试数据集

慕村4073631

2018-01-26

我用自己的一些数据集做测试,概率只能达到75%~85%,对于算法而言,是不是特征工程更重要?特征工程和算法是什么关系,有什么好的特征工程的书推介一下吗?sklean有针对特征工程方面的模块吗?

写回答

5回答

liuyubobobo

2018-01-26

严格来讲,算法是算法,特征工程是特征工程。好的算法没有好的特征是毫无用武之地的。只用一个人的名字做特征,什么样的算法也无法判断这个人是否患某种疾病,就算给了身高体重也没用!而只有特征没有算法也是没有意义的,面对一片数据,无从下手。


这个课程相对比较强调算法。假设已经有了相对比较好的数据,看具体算法是如何使用的。也正是因为这个原因,这个课程涉及的非监督学习也不多。一定程度上,非监督学习都可以叫做特征工程:)不过以后有机会,我确实想讲一个更多强调特征工程的机器学习课程:)


整体而言,其实很多机器学习的书籍,对general的特征处理方式介绍的是ok的。只不过混杂在算法的介绍中,很多读者,尤其是第一遍学习,没有经过实战,会不在意。比如多项式特征就是一种最基础的特征工程。线性回归也可以作为特征选择的依据。这一点我在这个课程的线性回归可解释性一节有所提及;LASSO也可以用于特征选择,我在这个课程中也会提及。决策树,随机森林,等等,都可以用于辨识已知特征的重要程度。另外诸如深度学习等方法,背后其实很大程度也是在解决特征的问题:)


另外,所有的非监督学习,或多或少都可以叫做在做特征工程(或者是数据的预处理)。这个课程中对PCA进行了详细的介绍,降维不仅仅是将高维特征映射到了低维空间,更能起到降噪的作用。我在这个课程中会提及。当然,非监督学习算法也是一个很广阔的领域,更多非监督学习算法,可以自己查阅其他资料。


再有,很多general的特征工程的思想其实隐藏在统计学中。系统学习一遍统计学,对发掘数据中的“秘密”很有帮助。毕竟,统计学的作用,就是要发掘数据中的“秘密”:)


最后,就是领域知识。对于特征工程来说,这是极端重要的。从某种程度上讲,各个专业领域研究的一个很重要的方向,都可以理解成在做特征工程。比如医学:研究到底哪些基因和哪些疾病相关;心理学,研究哪些大脑活动和哪些情绪相关;经济学,研究哪些社会现象,和经济表现结果相关,等等等等。我很早看过kaggle的一期冠军的采访,印象深刻。问他获得冠军的秘诀,他的秘诀就是,把精力放在了查找那个领域的文献上,从而使用了更靠谱的特征。(印象里那一期是和医学相关的数据)

20
7
手中的铅笔
就光看波波老师给大家的回答我觉得都能学到不少东西!
2020-09-13
共7条回复

慕慕9414451

2018-02-01

精辟!

4
0

木子二月鸟

2018-12-03

为什么回答不能收藏。。。。

3
1
liuyubobobo
我把这个产品需求帮你提给慕课网:)
2018-12-04
共1条回复

你的鱼塘对我打了烊

2019-10-17

师傅领进门,学习在自人。特征工程直接在kaggle上面学习就行了,如果你有能力掌握这节课不足一半的算法,你就肯定有能力掌握特征工程。学无止境,掌握不代表此生无忧;小到sklearn这个新语言现在更新非常快,半年可能就改变了结构或者取代了旧的东西;大到当你达到5%在kaggle上面,你会发现所有东西都可以改进,但你可能甚至超参都不会非常用心的去调,因为特征选择或者别的可能更重要(甚至看到遗传算法不禁羡慕大神的code比自己少x个数量级,速度也快x个数量级)。简单说,学完这节课,在kaggle拿前几%,就算是初步入门ML的世界了吧(新手级的competition,不要去纠结为什么非新手级的项目在有上千团队参与的情况下最高准确率为什么还不到10%,把新手competition做好就行)。

1
1
liuyubobobo
大赞!感谢分享:)
2019-10-17
共1条回复

伊利札洛夫

2019-01-11

手动mark,说的好

0
0

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5753 学习 · 2426 问题

查看课程