2018最新实用BAT机器学习算法岗位系列面试总结(结构化数据特征工程)

特征工程,是对原始数据进行一系列工程处理,目的是去除原始数据中的杂质和冗余,设计更高效的特征来描述求解的问题与预测模型之间的关系。

特征工程主要对以下两种常用的数据类型做处理:
(1)结构化数据。结构化数据类型可以看作关系型数据库的一张表,每列都有清晰的定义,包含了数值型,类别型两种基本类型;每一行数据表示一个样本的信息。
(2)非结构化数据。非结构化数据主要包括文本,图像,音频,视频数据,其包含的信息无法用一个简单的数值表示,也没有清晰的类别定义,并且每条数据的大小各不相同。

下面会总结出会被问到几个方面的特征工程面试问题。

1. 特征归一化
2. 类别型特征
3. 高维组合特征的处理
4. 组合特征
5. 文本表示模型
6. Word2Vec
7. 图像数据不足时的处理方法


1)特征归一化

为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处理,使得不同指标之间有可比性。比如身高和体重特征分别使用不同的单位,米和千克,数值范围也不一样,身高是1.6-1.8米范围,体重是50-100千克,范围相差很大。所以要对特征进行归一化处理,使得各变量处于同一个数值量级,以便更好的分析。

面试问题:为什么要对数值类型的特征做归一化?
分析与解答:
对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。最常用的方法主要有以下两种:
(1)线性函数归一化(min-max scaling).它对原始数据进行线性变换,使结果映射到[0,1]的范围内,实现对原始数据的等比缩放。归一化公式如下:

2018最新实用BAT机器学习算法岗位系列面试总结(结构化数据特征工程)_第1张图片
其中x为原始数据,Xmax和Xmin分别为数据最大值和数据最小值。
(2)零均值归一化(Z-Score normalization)。它会将原始数据映射到均值为0,标准差为1的分布上。具体来说,归一化公式定义为:
在这里插入图片描述
为什么需要对数值型特征进行归一化?我们不妨借助随机梯度下降的例子来说明归一化的重要性。假设有两种数值型特征,x1的取值范围是[0,10],x2的取值范围为[0,3],于是构造一个目标函数符合图(a)中的等值图。
在学习速率相同的情况下,x1的更新速度会大于x2,需要较多的迭代才能找到最优解。如果将x1和x2归一化到相同的数值区间后,优化目标的等值图绘变成(b)中的圆形,x1和x2的更新速度变的更为一致,容易更快递通过提速下降找到最优解。
2018最新实用BAT机器学习算法岗位系列面试总结(结构化数据特征工程)_第2张图片
当然,数据归一化并不是万能的,在实际应用中,通过梯度下降求解的模型通常是需要归一化的,包括线性回归,逻辑回归,支持向量机,神经网络等模型。但对于决策树模型则并不需要,以c4.5为例,决策树在进行节点分裂时主要依据数据集D关于特征x的信息增益比,后期会总结这个,而信息增益比跟特征是否经过归一化是无关的,因为归一化并不会改变样本在特征x上的信息增益。

2)类别型特征
类别型特征主要是指性别,血型等只有在有限选项内取值的特征。类别型特征原始输入通常是字符串形式,除了决策树等少数模型能直接处理字符串形式的输入,对于逻辑回归,支持向量机等模型来说,类别型特征必须是经过处理转换成数值型特征才能正确工作。
考察点:序号编码,独热编码。

面试问题:在对数据进行预处理时,应该怎样处理类别型特征?
分析与解答:
主要可以通过以下两种方法处理。

  • 序号编码。序号编码通常用于处理类别间具有大小关系的数据。例如成绩,可以分为低,中,高三档,并且存在“高>中>低”的排序关系。序号编码会按照大小关系对类别型特征赋予一个数值ID,例如高表示为3,中为2,低为1,转换后依然保留了大小关系。
  • 独热编码。独热编码通常用于处理类别间不具有大小关系的特征。例如血型,一共有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)使用稀疏向量来节省空间。在独热编码下,特征向量只有某一维取值为1,其他位置为0。因此可以利用向量的稀疏性表示有效地节省空间,并且目前大部分算法均接受稀疏向量形式的输入。(2)配合特征选择来降低维度。高维度特征带来几方面的问题。一是在K近邻算法中,高维空间下两点之间的距离很难得到有效的衡量;二是在逻辑回归中,参数的数量会随维度的增高而增高,容易引起过拟合问题;三是通常只有部分维度是对分类和预测有帮助,因此可以考虑配合特征选择来降低维度。

3)高维度组合特征处理
面试问题:什么是组合特征?如何处理高维组合特征?
分析与解答:
为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。以广告点击预估问题为例,表1.2是语言和类型对点击的影响。为了提高拟合能力,语言和类型可以组成二阶特征,表1.3是语言和类型的组合特征对点击的影响。2018最新实用BAT机器学习算法岗位系列面试总结(结构化数据特征工程)_第3张图片
2018最新实用BAT机器学习算法岗位系列面试总结(结构化数据特征工程)_第4张图片
这两种特征组合起来没有任何问题,但当引入id类型的特征时,对于推荐场景来说就会有维度灾难的发生,在互联网环境下,用户数量和物品数量都可以达到千万量级,如果将用户id和物品id放进去,用户数量时m,物品数量时n,所需要学习的参数规模为m*n,这样就会变的十分庞大,对于这种场景,可以运用降维或矩阵分解,后期会讲,将用户和物品分别用k维的低维向量表示。后面会有一篇总结会说如何运用降维方法来减少两个高维度特征组合

4)组合特征
面试问题:如何有效地找到组合特征?
分析与解答:
在做组合特征的时候,如果只是简单的进行两两组合,很容易导致参数过多、多拟合等问题,而且并不是所有的特征组合都有意义。这里就先介绍一种基于决策树的特征组合寻找方法。以点击预测问题为例,假设原始输入特征包含年龄,性别,用户类型(试用期,付费),物品类型(护肤,食品等)4个方面的信息,并且根据原始输入和标签(点击/未点击) 构造出了决策树,如图1.2.
于是,每一条从根节点到叶节点的路径都可以看成一种特征组合的方式。具体来说,就有以下4中特征组合方式:(1)年龄<=35 且性别是女 (2)年龄<35且物品是护肤 (3)用户是付费且物品是护肤 (4)用户是付费且年龄<=40
2018最新实用BAT机器学习算法岗位系列面试总结(结构化数据特征工程)_第5张图片

这样就可以生成不同的组合特征。

下一篇会写如何对非结构化数据进行特征工程

你可能感兴趣的:(机器学习算法系列面试题)