特征工程简介
**特征工程(Feature Engineering)**是指将原始数据转变成模型的训练数据的过程,从而更好地提取数据特征,使得机器学习模型的学习能力更好。其本质上是对原始数据的再加工,其目的是产生进入模型的特征。
特征工程分为数据预处理(Data Preprocessing)、特征构造(Feature Construction)、特征抽取(Feature Extraction)和特征选择(Feature Selection) 等几个步骤,每个步骤间没有明显的顺序之分,往往需要根据需求反复执行,甚至也没有严格区分的概念边界,例如特征构造可能会与数据预处理使用同样的数据变换技术等。
特征构造
特征构建是指从原始数据中人工的找出一些具有物理意义的特征。需要花时间去观察原始数据,思考问题的潜在形式和数据结构,对数据敏感性和机器学习实战经验能帮助特征构建。除此之外,属性分割和结合是特征构建时常使用的方法。对于有些场景的数据的属性比较难以处理,可以采用属性合并构建新的特征,从而为模型训练提供好的特征。另外还有特征降维—主成分分析。
特征处理
特征处理是特征工程最关键的步骤之一,包括对原始数据的去重、查看是否缺失等基础问题。另外处理之前需要对数据的进行充分认识,需要对数据进行数据探索性分析(EDA),观察数据类型、数据的离散程度、有无偏度、分布情况、离群值检测等等,认识之后,在对数据进行进一步处理——
异常值处理
主要是离群值、数据缺失性、冗余性分析。
离群点是指那些模型预测效果不佳的观察点;可能产生较大的正残差;也可能产生较大的负残差。离群点检测可以采用箱线图进行观察,在数据不符合高斯分布的情形下推荐使用——箱形图为我们提供了识别异常值的一个标准:异常值被定义为小于Q1-1.5IQR或大于Q3+1.5IQR的值 。但是也存在一些局限——
- 不能提供关于数据分布偏态和尾重程度的精确度量
- 对于批量比较大的数据批,反应的形状信息更加模糊
- 用中位数代表总体评价水平有一定的局限性
数据标准化
数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。可以分为三大类:直线型方法(如极值法、标准差法)、折线型方法(如三折线法)、曲线型方法(如半正态性分布)。标准化前后结果对比:
上述两个图可以发现,经过标准化后的数据大致呈现高斯分布。
常用的方式有:最小最大化处理、Z-Score处理、二值化、L2正则化、Onehot encoding等
最小最大化处理(Min-Max Normalization)
X = X − m i n m a x − m i n