- 为什么会出现特征缩放?
因为在对训练集,进行梯度下降的时候,会出现一种情况,以三维的J(θ1,θ2)J(\theta_1,\theta_2)J(θ1,θ2)为例,得到的三维图像非常不均匀,狭长,想象一下银河系的形状。在这种类型的大型训练集中操作,学习算法是迂回前进的,比起走直线要多花费不少时间,在这种情况下:
程序员:我要让他变短。
数学家:两点之间,直线最短。随便拐个弯也没什么,总比绕来绕去好啊。
于是,他们坚持着,能短的都让它短了的原则,对坐标轴进行缩放,使之更均匀,于是就有了特征缩放。

缩放前

缩放前
就这样,成功减短纷纷露出了欣慰的笑容。
- 特征缩放的方法
2.1 Rescaling (min-max normalization)
x′=x−min(x)max(x)−min(x)x'=\frac{x-min(x)}{max(x)-min(x)}x′=max(x)−min(x)x−min(x)
常见的映射范围有 [0, 1] 和 [-1, 1] ,主要用于一些数据范围太大和太小的问题。
2.2 Mean normalization
x′=x−average(x)max(x)−min(x)x'=\frac{x-average(x)}{max(x)-min(x)}x′=max(x)−min(x)x−average(x)
2.3 Standardization
x′=x−μσx'=\frac{x-\mu}\sigmax′=σx−μ
μ\muμ 是样本数据的均值(mean), σ\sigmaσ 是样本数据的标准差(std)变成了一个均值为 0 ,方差为 1 的正态分布。
2.4 Scaling to unit length
x′=x∣∣x∣∣x'=\frac {x}{||x||}x′=∣∣x∣∣x
L0范数:∥w∥0=#(i) with xi≠0(非零元素的个数)L_{0} 范数: \left \| w \right \|_{0} = \#(i)\ with \ x_{i} \neq 0 (非零元素的个数)L0范数:∥w∥0=#(i) with xi̸=0(非零元素的个数)
L1范数:∥w∥1=∑i=1d∣xi∣(每个元素绝对值之和)L_{1} 范数: \left \| w \right \|_{1} = \sum_{i = 1}^{d}\lvert x_i\rvert (每个元素绝对值之和)L1范数:∥w∥1=∑i=1d∣xi∣(每个元素绝对值之和)
L2范数:∥w∥2=(∑i=1dxi2)1/2(欧氏距离)L_{2} 范数: \left \| w \right \|_{2} =\Bigl(\sum_{i = 1}^{d} x_i^2\Bigr)^{1/2} (欧氏距离)L2范数:∥w∥2=(∑i=1dxi2)1/2(欧氏距离)
Lp范数:∥w∥p=(∑i=1dxip)1/pL_{p} 范数: \left \| w \right \|_{p} = \Bigl(\sum_{i = 1}^{d} x_i^p\Bigr)^{1/p}Lp范数:∥w∥p=(∑i=1dxip)1/p