特征归一化
- V1.0
- 特征归一化的重要性
- 特征归一化的方式
- 最大最小值归一化
- 最大最小值归一化的局限性
- 零均值归一化
- 测试集的归一化
V1.0
特征归一化的重要性
特征归一化的问题产生于,我们在使用特征向量中不同的特征数据时,特征数据尺度(或者说数量级不同)而造成的问题。
例如,KNN算法中不同的计算距离时,不同特征的量纲不同,比如说特征1的数量级大概在100左右附近,特征2的数量大概在1左右附近,在使用特征1和特征2计算距离时,特征1就会对最终的距离结果产生很大的影响,而特征2的影响就变得相对小很多,这会导致结果的较大偏差。因此要进行特征归一化,将不同特征变换到同一尺度。
d i s t a n c e = ( 120 − 90 ) 2 + ( 1.2 − 1.0 ) 2 distance=\sqrt{(120-90)^2+(1.2-1.0)^2} distance=(120−90)2+(1.2−1.0)2
特征归一化的方式
特征归一化主要包括两种方式
- 最大最小值归一化
- 零均值归一化
最大最小值归一化
x n o r m = x − x m i n x m a x − x m i n x_{norm}=\frac{x-x_{min}}{x_{max}-x_{min}} xnorm=xmax−xminx−xmin
其中 x m i n {x_{min}} xmin是数据的最小值, x m a x {x_{max}} xmax是数据的最大值。
适用于数据有限范围的情况,因为其需要使用最大值
和最小值
。
最大最小值归一化的局限性
极端数据会对最大最小值归一化的结果产生较大影响。
假设我们有一组一维数据,其中有一个很极端的数据,比如说5000。其他数据大概分布在0-1000左右,这会导致这组数据的最大最小值归一化的结果,一般的数据会分布在0.2左右。
零均值归一化
x n o r m = x − μ σ x_{norm}=\frac{x-\mu}{\sigma} xnorm=σx−μ
其中 μ \mu μ 是数据的均值, σ \sigma σ 是数据的标准差。
零均值归一化,适合于绝大多数的情况。
测试集的归一化
假设我们使用零均值归一化,得出了训练集的数据,即训练集的均值和标准差。那么我们在测试集上使用什么均值和标准差呢?
正确的方法是使用训练集的数据,这是因为测试集的数据往往较难获得。在测试样本较少的情况下,不能很好表示的平均的样本的分布情况。