變量處理中的標準化方法

關於標準化的幾點理解:

  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 - 正則化(使用了範數)

知道它們具體是怎麼就好了。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章