变量处理中的标准化方法

关于标准化的几点理解:

  1. 标准化(Standard),是将数据以一个相同的尺度进行缩放
  2. 归一化(Normalization)是以缩放到[0,1]区间
  3. sklearn中的Scaler,可以将数据缩放到给定的区间内
  4. 归一化可以理解成一种特殊的标准化

使用归一化消除不同量纲之间的差异,一般情况下使用线性模型 务必要对连续特征做归一化

graph LR Standard --> Normalization Standard --> MaxMinScaler Normalization --> Normalizer Normalization --> StandardScaler

MaxMinScaler

注意,以下公式用于只有一个随机变量的情况。

1. 归一化(缩放到[0,1]区间)
\( X_{std} = \frac{X-X_{min}}{X_{max}-X_{min}} \)

2. 缩放到给定的[min, max]区间
\( X_{scaled} =X_{std} * (max - min) + min \)

说明:

  1. 加上min 可以保证 \(X_{scaled}\) 最小值为 min
  2. \(X_{std}\)最大值为1,保证了 \(X_{scaled}\)的最大值为max
  3. 需要缩放到数据在指定范围时候可以选择此方法,能够较好保留原始特征的信息。

StandardScaler

标准化(Standardization) ,也就是计算Z-Score,可使得数据的均值为0,方差为1,计算公式:

\( X_{z-score} = \frac{X-\mu}{\sigma} \)

推导均值为0:

\[\bar x_{z-score} = \frac{1}{n} * (\frac{x_1-\mu}{\sigma} + \frac{x_2-\mu}{\sigma} + ... + \frac{x_n-\mu}{\sigma}) =\frac{x_1+x_2+...+x_n - n*\mu}{\sigma} \]

(equation 1)

其中:

\[\mu = \frac{x_1+x_2+...+x_n}{n} => x_1+x_2+...+x_n = n*\mu \]

所以equation 1 中的分子为0,可以得到:
\(\bar x_{z-score} = 0\)

推导方差为1:

\[\sigma{z-score} = \frac{1}{n-1} * (\frac{x_2-\mu}{\sigma} - \frac{x_1-\mu}{\sigma} + ... + \frac{x_n-\mu}{\sigma} - \frac{x_{n-1}-\mu}{\sigma}) = \frac{1}{n-1} * (\frac{x_2-x_1}{\sigma} + \frac{x_3-x_2}{\sigma} + ...+ \frac{x_{n}-x_{n-1}}{\sigma}) = \frac{1}{\sigma} * (\frac{x_2-x_1}{n-1} + \frac{x_3-x_2}{n-1} + ...+ \frac{x_{n}-x_{n-1}}{n-1}) \]

(equation 2)

其中:
\( \sigma =\frac{x_2-x_1 + x_3-x_2 + ... + x_{n}-x_{n-1}}{n-1} \)

可以得到:
\(\sigma{z-score} = 1\)

需要控制数据的均值和方差时候可以选择此方法。

Normalizer

正则化,利用范数进行归一化,计算方法:

\( Norm(X_i) = \frac{x_i}{||X||_p} ;where X=\{x_1, x_2, ..., x_i\} \)

其中\(||X||_p\)表示X的p范数,标准化的过程就是每一个样本除以改变量的p范数,以2范数为例计算方法:

\( ||X||_2 = \sqrt{x_1^2 + x_2^2 + ... + x_n^2} \)

X变量的p范数计算方法:

\( ||X||_p = (\sum {x_1^p + x_2^p + ... +x_n^p})^\frac{1}{p} \)

\(L_2\)范数可以将数据缩放到[0,1]区间:
\( Norm_2(x_i) = \frac{x_i^2}{ x_1^2 + x_2^2 + x_i^2 + ... + x_n^2 } \)

因为\(x_1^2 + x_2^2 + x_i^2 + ... + x_n^2x>=x_i^2>0\) 所以\(Norm_2(x_i)\)也是[0,1]区间。

称呼

上面这几种方式都是标准化方法,也都能实现归一化,但是实际上对它们的翻译是:

  1. MaxMinScaler - 归一化(明显可以把变量缩放到给0,1区间)
  2. StandardScaler - 标准化(因为将数据缩放到一个正太分布了??)
  3. Normalizer - 正则化(使用了范数)

知道它们具体是怎么就好了。。。。

posted @ 2023-02-28 20:02  oaksharks  阅读(1249)  评论(0编辑  收藏  举报