百题突击1:为什么要对特征做归一化/什么是组合特征/如何处理高维组合特征/欧式距离与曼哈顿距离/为什么一些场景中使用余弦相似度而不是欧式距离
文章目录
- 1. 为什么要对特征做归一化 ?
- 2. 什么是组合特征?如何处理高维组合特征?
- 3. 请比较欧式距离与曼哈顿距离?
- 4. 为什么一些场景中使用余弦相似度而不是欧式距离 ?
- 5. One-hot的作用是什么?为什么不直接使用数字作为表示
| 序号 | 难度 | 题目 | 注意事项 |
|---|---|---|---|
| 1 | 简单 | 为什么要对特征做归一化 | 理解清楚特征归一化所适用的模型场景 |
| 2 | 中等 | 什么是组合特征?如何处理高维组合特征? | 这里的特征组合主要指的是类别特征(Categorical Feature)之间的组合 |
| 3 | 中等 | 请比较欧式距离与曼哈顿距离? | 比较曼哈顿距离和欧式距离的数值特点,并结合一两个具体例子做分析 |
| 4 | 中等 | 为什么一些场景中使用余弦相似度而不是欧式距离 | 比较余弦相似度和欧式距离的数值特点,并结合一两个具体例子做分析 |
| 5 | 中等 | One-hot的作用是什么?为什么不直接使用数字作为表示 | 理解清楚并比较One-hot编码和数字编码的特点 |
1. 为什么要对特征做归一化 ?
-
特征间单位和尺度差异影响计算(涉及或隐含距离计算的算法的时候):拿Angrew Ng的课程的房屋价格预测举例,房子有很多属性,例如面积x1,多少房间x2,以及多少卫生间x3。 那么如果不归一化,进行距离有关的计算时,单位的不同会导致计算结果的不同,尺度大的特征会起决定性作用(x1),而尺度小的特征其作用可能会被忽略(x2,x3),为了消除特征间单位和尺度差异的影响,以对每维特征同等看待,需要对特征进行归一化。
-
归一化有利于收敛(梯度下降算法角度):原始特征下,因尺度差异,其损失函数的等高线图可能是椭圆形(x1在远端,x2,x3近端),梯度方向垂直于等高线,下降会走zigzag路线,而不是指向local minimum。通过对特征进行归一化后,其损失函数的等高线图更接近圆形,梯度下降的方向震荡更小,收敛更快。

-
有一些情况不需要归一化,或者归一化作用不大:与距离计算无关的概率模型,不需要归一化,比如Naive Bayes;与距离计算无关的基于树的模型,不需要归一化,比如决策树、随机森林等,树中节点的选择只关注当前特征在哪里切分对分类更好,即只在意特征内部的相对大小,而与特征间的相对大小无关。
参见:深入探讨:为什么要做特征归一化/标准化?
2. 什么是组合特征?如何处理高维组合特征?
组合特征一般出现在特征工程的概率里面(特别是决策树)。为了提高复杂关系的拟合能力,在特征工程上经常会把一阶离散特征两两组合,构成高阶组合特征。这样做增加了属性的表示能力。 但是这个过程可能是复杂的,在缺少专家经验的情况下,在选择不同的属性组合时可能抱着试试看的心态去实现的,但是并不是左右组合的结合都是有意义的。
组合特征直观上可以理解为将部分特征组合在一起。给定最初的特征x1,x2,x3,x4,组合特征就是x1,x2,x3,x4,x1+x2,x3+x4。一个更形象的例子就是,之前特征是(男,学生,16岁),现在组合成为(男学生,16岁)。
高维组合特征处理会存在参数规模过大的问题,这个时候使用降维的方法可以解决这个问题。
3. 请比较欧式距离与曼哈顿距离?
- 欧氏距离定义:
d ( x , y ) = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 + . . . + ( x n − y n ) 2 = ∑ i = 1 n ( x i − y i ) 2 d(x,y) = \sqrt{(x_1-y_1)^2+(x_2-y_2)^2+...+(x_n-y_n)^2}=\sqrt{\sum_{i=1}^n(x_i-y_i)^2} d(x,y)=(x1−y1)2+(x2−y2)2+...+(xn−yn)2=i=1∑n(xi−yi)2
欧氏距离虽然很有用,但也有明显的缺点。它将样品的不同属性(即各指标或各变量量纲)之间的差别等同看待,这一点有时不能满足实际要求(除非归一化)。
- 曼哈顿距离:
d ( x , y ) = ∑ i = 1 n ∣ x i − y i ∣ d(x,y) =\sum_{i=1}^n|x_i-y_i| d(x,y)=i=1∑n∣xi−yi∣
曼哈顿距离依赖座标系统的转度,而非系统在座标轴上的平移或映射。当坐标轴变动时,点间的距离就会不同
4. 为什么一些场景中使用余弦相似度而不是欧式距离 ?
余弦相似度:取值范围[-1,1]。余弦距离=1-余弦相似度:取值范围[0,2]。
余弦相似度在高维的情况下依然保持“相同时为1,正交时为0,相反时为-1”的性质。欧式距离的数值受维度的影响,范围不固定。欧式距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。
如果归一化,那么计算余弦距离是比较好的选择,计算简单,计算结果有固定范围,不受特征具体数值的影响。
举个例子,可以通过学生的不通科目的考试成绩判断两个学生是不是有相同的学科优势,这样可以把不同的学生搭配起来坐在一起互相帮助学习。A学生语文120,数学140,B学生语文60,数学78,那么这个时候使用余弦就不行,余弦距离差不多是0,但是他们之间是有差距的,这个时候使用欧氏距离更好。
另外一个例子,例如我们给某宝上的两件物品评分,A用户给了3分和3分,B用户给了4分和4分。这个时候考察两个用户的偏好,显然他们对两个物品没有任何偏好,都是一样的态度,中立。所以选择余弦距离比较好。
5. One-hot的作用是什么?为什么不直接使用数字作为表示
假设图片分类的结果是苹果,菠萝,香蕉。那么分类器的输出怎么去设计呢?
这个时候我们直接使用苹果,菠萝,香蕉肯定不可以,无法直接用于计算loss. 我们需要将类别转换为数值类型的。one-hot编码就是这样一种转换。苹果表示为[1,0,0],菠萝表示为[0,1,0],香蕉表示为[0,0,1]。
为什么不用数字呢?例如苹果是1,菠萝是2,香蕉是3?
因为将离散型特征使用one-hot编码,会让特征之间的距离计算更加合理。
比如,不使用one-hot编码,苹果是1,菠萝是2,香蕉是3。两两之间的距离是,(苹果,菠萝) = 1, d(菠萝, 香蕉) = 1, d(苹果,香蕉) = 2。那么苹果和香蕉之间就越不相似吗?显然这样的表示,计算出来的特征的距离是不合理的。
那如果使用one-hot编码,则得到苹果表示为[1,0,0],菠萝表示为[0,1,0],香蕉表示为[0,0,1],那么两个水果之间的距离就都是sqrt(2),距离是一样的,显得更合理。
Charles@SZ, 20210406
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
