加入了个开课吧9.9元的AI面试题交流群,纯当笔记记录及分析。
1. 为什么要对特征归一化?
归一化可以消除因特征量纲差异导致对模型收敛带来的影响,可以加快收敛,便于使用默认的参数。如果不归一化,会导致特征值相差大的特征占主导作用,而忽略特征值相差小的特征。
对连续数值进行归一化可以将特征统一到一个大致相同的数据区间内。
常用方法有min-max scaling,z-score normalization.通常在计算欧氏距离或者使用梯度下降优化的场景下需要对特征进行归一化处理,例如线性回归、逻辑回归、SVM、神经网络等。
2. 什么是组合特征?如何处理高维组合特征?
有时候为了提高模型的拟合能力,在特征工程阶段常会把一阶离散特征两两组合,构成高阶组合特征。比如推荐系统排序模型FM就使用了二阶组合特征。高维的特征组合往往带来庞大的可训练参数,为了解决这一问题可以采用隐向量点积降维的方式来减少高维特征组合后需要学习的参数。很多场景下,简单的两两组合会存在过拟合问题,而且并不是所有的两两组合都有现实意义,因此也可以考虑基于决策树的方式寻求特征组合。
高维组合特征的处理方式为矩阵分解。
3. 请比较欧式距离和曼哈顿距离
欧氏距离(又称欧几里得距离)是指N维空间中两点的直线距离,公式
d
(
x
,
y
)
=
∑
i
=
1
n
(
x
i
−
y
i
)
2
d(x,y)=\sqrt{\sum_{i=1}^n(x_i-y_i)^2}
d(x,y)=∑i=1n(xi−yi)2
曼哈顿距离用以标明两个点在标准坐标系上的绝对轴距总和。
以
A
(
x
1
,
y
1
)
A(x_1,y_1)
A(x1,y1)和
B
(
x
2
,
y
2
)
B(x_2,y_2)
B(x2,y2)为例
AB间欧氏距离:
(
x
1
−
x
2
)
2
+
(
y
1
−
y
2
)
2
\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}
(x1−x2)2+(y1−y2)2
AB间曼哈顿距离:
∣
x
1
−
x
2
∣
+
∣
y
1
−
y
2
∣
|x_1-x_2|+|y_1-y_2|
∣x1−x2∣+∣y1−y2∣
上图绿色线即为欧氏距离,红黄色线都可作为曼哈顿距离。
曼哈顿距离只需要计算加减法,在大量的计算中代价更低,消除了开放过程中取近似值而带来的近似误差。这两种距离计算方法都对异常数据敏感,并且将各个维度的差异同等对待。
4. 为什么一些场景中使用余弦相似度而不是欧式距离?
余弦相似度是通过计算两个向量的的夹角余弦值来评估他们的相似度,体现的是方向上的相对差异,而欧氏距离体现的是两向量距离树枝上的绝对差异。
余弦相似度无论在几维空间,取值范围都为[-1,1],两向量方向相同为1,正交为0,相反为-1,而欧氏距离取值范围不固定,含义较模糊。
余弦距离=1-余弦相似度,取值范围[0,2]
两个向量之间的余弦值可以通过使用欧几里得点积公式求出:
a
⋅
b
=
∣
∣
a
∣
∣
∣
∣
b
∣
∣
c
o
s
θ
a\cdot b=||a||||b||cos\theta
a⋅b=∣∣a∣∣∣∣b∣∣cosθ
给定两个属性向量,A和B,其余弦相似性由点积和向量长度给出:
s
i
m
i
l
a
r
i
t
y
=
c
o
s
(
θ
)
=
A
⋅
B
∣
∣
A
∣
∣
∣
∣
B
∣
∣
=
∑
i
=
1
n
A
i
×
B
i
∑
i
=
1
n
(
A
i
)
2
×
∑
i
=
1
n
(
B
i
)
2
similarity=cos(\theta)=\frac{A\cdot B}{||A||||B||}=\frac{\sum_{i=1}^{n}A_i\times B_i}{\sqrt{\sum_{i=1}^n(A_i)^2}\times \sqrt{\sum_{i=1}^n(B_i)^2}}
similarity=cos(θ)=∣∣A∣∣∣∣B∣∣A⋅B=∑i=1n(Ai)2×∑i=1n(Bi)2∑i=1nAi×Bi
在计算文本、句子之间的相似度时常余弦相似度而不是欧氏距离。
5. one-hot的作用是什么?为什么不直接使用数字作为表示?
ont-hot编码将类别变量转为二值化变量,通常用来处理类别变量间不具有大小关系的特征。
如果直接使用数字表示,默认为连续变量,将原本不具有大小关系的变量转换为数字后会影响同一特征在样本中的权重,数字编码更适合类别间具有大小关系的数据。