知识点:
- 两种归一化
- 类别型的三种特征
- 高维组合特征处理
- 如何进行特征的组合
特征工程的概念
是指用一系列工程化的方式从原始数据中筛选出更好的数据特征,以提升模型的训练效果。包括预处理、特征选择和降维等。
两种归一化
1、特征归一化的概念:为了消除数据特征之间的量纲影响,使得不同指标之间具有可比性而对数据做出的操作。
通常在需要通过梯度下降方法求解的模型中,例如逻辑回归、神经网络和支持向量机等。
并不适用:决策树模型
2、为什么要对数值类型的特征做归一化?
主要是为了消除特征间单位和尺度差异的影响,以对每维的特征同等看待。
当数据集的数值属性具有非常大的比例差异时,占比较大的特征属性会起主导作用,特征占比小的特征就容易被忽略,这样并不利于提高模型的泛化能力。
例:特征变量x1的范围在[0,1]之间,特征变量x2的范围在[100,10000]之间,在学习速率相同的情况下,x2的更新速度会大于x1,需要较多的迭代才能得到最优解。同时特征变量x2的特征占比较大,使得特征便利x1容易被忽略了。
3、常用的两种归一化方法
(1)线性归一化
根据最大值、最小值对原始数据进行先行变换,将结果映射到[0,1]中。

(2)零均值归一化(标准化)
将原始数据均映射到均值为0,方差为1的正态分布上。
假设原始特征的均值为μ、标准差为σ,那么归一化公式定义为:

类别型特征
1、概念:主要是指只在有限选项内取值的特征。例如性别(男、女)、血型(A\AB\O)
对于逻辑回归、支持向量机等模型来说,类别型特征必须经过处理转换成数值型特征才能正常工作。
个人认为的大白话:一个个体所拥有的特征只能在两个或三个里选,例如人,要么是男要么是女,如果一个模型要对人的性别做区分检测,则需要将男和女这个性别特征转换成数值特征,例如用1来代表性别男,0来代表性别女。
2、三种编码方式
(1)序号编码
通常用来处理类别间具有大小关系的数据。
例如成绩:高、中、低三档,可用3代表高档,2代表中档,1代表低档,重点是用3、2、1来表示高中低,同样也保留了大小关系。
(2)独热编码
通常用来处理类别间不具有大小关系的数据。
通过数据长度表示样本特征个数,存在的特征为1,不存在的特征为0。
例如血型,一共有4个取值(A型血、B型血、AB型血、O型血),独热编码会把血型变成一个4维稀疏向量:
A型血表示为(1, 0, 0, 0),B型血表示为(0, 1, 0, 0),AB型表示为(0, 0,1, 0),O型血表示为(0, 0, 0, 1)。
如果类别取值较多,需要注意:1.使用稀疏向量节省空间,2.配合特征选择来降低维度,3.通常只有部分维度是对分类、预测有帮助。
(3)二进制编码
先用序号编码给每个类别赋予一个类别ID,然后将类别ID对应的二进制编码作为结果。
高维组合特征的处理
1、什么是组合特征?
为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。
2、如何处理高维组合特征?
有些需要学习的参数规模非常大,此时可以用降维的方式解决,比如可以用k维(低维)的向量表示高维。
组合特征
1、为什么要进行特征组合?
在实际问题中我们会遇到多种高维特征,如果只是简单地两两组合,也会有很多参数,而且还可能会有过拟合的问题,因此需要找到一种方法可以将特征进行有效地组合。
2、如何进行特征组合?
这里介绍一种基于决策树的特征组合。
根据原始输入特征,总共有n个方面的信息,根据其中的m个信息构造决策树,每一条信息后面又可以根据剩下的特征再进行构造,于是每一条从根结点到叶节点的路径都可以看成一种特种组合的方式。
例如:
以点击预测问题为例,假设原始输入特征包含年龄、性别、用户类型(试用期、付费)、物品类型(护肤、食品等)4个方面的信息,并且根据原始输入和标签(点击/未点击)构造出了决策树,如图所示。
于是,每一条从根节点到叶节点的路径都可以看成一种特征组合的方式。具体来说,就有以下4种特征组合的方式。
(1)“年龄<=35”且“性别=女”。
(2)“年龄<=35”且“物品类别=护肤”。
(3)“用户类型=付费”且“物品类型=食品”。
(4)“用户类型=付费”且“年龄<=40”。

3、给定原始输入该如何有效地构造决策树呢?
可以采用梯度提升决策树:每次都在之前构建的决策树的残差上构建下一棵决策树。
参考:
主要参考《百面机器学习》一书。