1.特征工程在机器学习中的作用
【参考:什么是特征工程?如何进行特征工程?_图灵的猫i的博客-CSDN博客_特征工程;随着算力成本的不断降低,有了神经网络还需要人工特征工程么? - Rand Xie的回答 - 知乎 https://www.zhihu.com/question/432667112/answer/1618099391】
特征工程的意义是,好的输入特征➡️更简单的模型输出更好的结果。
真正意义上的“端到端”模型应该不需要特征工程,“端到端”的输入即是原始数据。然而,“至少从目前的研究进展来看, 端到端更多发生在Vision, NLP这些领域。而这些领域都有大量的有效数据, 而且格式一般比较标准, 才能有效地进行端到端学习。”对于原始数据“不够好”的情况,需要在数据输入模型之前进行特征工程。
“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用”。从这句话理解,特征工程的输入是采集到的原始数据,输出是提取后的特征,该特征作为算法和模型的输入,那么特征工程的位置应该是机器学习(或神经网络)算法和模型的上游。
【图片来自于AutoML之自动化特征工程 | 一起大数据-技术文章心得】
个人理解的事,数据清洗、特征提取、特征选择、降维都属于特征工程。
这是特征工程的思维导图,包含特征使用方案、特征获取方案、特征处理、特征监控等四部分。
2.人工特征工程和特征工程自动化
【参考:特征工程自动化如何为机器学习带来重大变化 - 知乎】
人工特征工程:“传统的特征工程方法是使用相关领域知识创建一个特征,这是一个冗长、耗时且容易出错的过程,称为人工特征工程。人工特征工程是依赖于具体问题的,必须为每个新数据集重新编写代码。”
特征工程自动化:“特征工程自动化通过自动从一组相关的数据表中提取有用且有意义的特征,并使用一个可应用于任何问题的框架,来改进这个标准工作流。它不仅减少了在特征工程上花费的时间,而且还创建了可解释的特征,并通过过滤具有时间依赖性的数据来防止数据泄漏。”目前有feature tools工具库、Auto ML框架等可以实现特征工程自动化。“使用神经网络的自动化特征工程”,也就是引入了神经网络的特征工程自动化。