特征工程是什么?
数据和特征决定了机器学习的上限,模型和算法只是逼近这个上限。
特征工程定义
特征工程是指在机器学习中,在数据准备阶段之后,在构建模型和算法训练之前,对已经经过预处理的原始数据进一步提取和选择(数据的)(对本次任务)有效的特征,以供模型和算法来使用。
顾名思义,特征工程是一种工程活动,有很多对数据的处理在一定程度上都可以算法是特征工程,比方说数据清洗、数据选择、数据构造、数据提取等。
所谓数据的特征,被抽象出来的信息,可以被机器或人类加以利用和识别。机器学习如何识别人脸,我们需要为机器学习汇总和整理好人脸的特征,交给机器来学习,这就是特征工程需要做的事情。
本质对数据的降维
把“数据样本”拆解为“多个特征的组合”的过程就是降维的过程。例如把图片分解为像素,进而意识到像素就是50x50个像素点,每一个像素都是一个维度,就是对图像数据的降维;再比如,对立方体的关键点进行取样,而不是整个立方体取样,也是一种降维,亦即抓住主要特征、能够在数学上足够定义一个立方体的数据点来描述一个立方体,而不是对立方体空间内的所有点取样。
特征工程的基本方法
特征工程非常依赖实践,在项目实战中学习特征工程才最有效。
特征提取
在特征选择之前,对原始数据提取(转换),“自动”构建新的特征,即具有明显物理意义或统计意义的特征,例如文本处理当中的词袋模型。后续在实战项目中会详细讲到。
深度学习每一个隐藏层就相当于是在对数据特征进行提取,只是每一层都是在进行不同层次的提取。在后续实战项目中会看到,浅层是边缘特征,深层是整体轮廓特征。
特征选择
在数据集中,从特征集合中选择出有用的子集,就是特征选择。
主要目的是为了去除无关特征,降低学习任务的难度,模型也会变得简单,降低复杂度。
这会牺牲一部分性能,但这就是取舍,模型复杂度和性能职之间的取舍。
特征构建
人工构建新的特征,观察原始数据,洞察力和分析能力,思考问题的潜在形式和数据结构,主要是混合、组合、分解、切分,需要对业务领域和数据来源非常熟悉。完全人为的人工构建数据特征。例如日期分拆为年月日或者极度,语音数据映射到频域等