對數座標歸一化 特徵工程中的 歸一化 有什麼作用?

2021-10-12 13:25:05 字數 2127 閱讀 1181

不少答主都解釋了為什麼消除量綱可以加速優化過程,直觀角度可以參考 @憶臻的回答(他的最高票回答指的不是我的答案)。我想在大家回答上補充一些內容:資料縮放的本質是什麼

不同資料縮放的區別

如何選擇適合的縮放方法

在這個回答下,我們對一維資料的縮放有如下定義:歸一化(normalization):

標準化(standardization):

其中和

代表樣本的均值和標準差,

為最大值,

為最小值。

1. 歸一化和標準化本質上都是一種線性變換

先看歸一化,在資料給定的前提下,令常數

,常數

,那麼歸一化的新的形式就是

。在這種改寫後下,易發現和標準化形式

類似,因為在資料給定後

和 也可看做常數。

因此可以再稍微變形一下:

(公式1)

就發現事實上就是對向量

按照比例壓縮

再進行平移

。所以歸一化和標準化的本質就是一種線性變換。

舉個簡單的例子:原始資料:

,其中

, ,

歸一化:代入公式1,將

壓縮4倍並平移

,得到,最終有

標準化:與歸一化類似,略

2. 線性變化的性質

線性變換有很多良好的性質,這些性質決定了為什麼對資料進行改變後竟然不會造成「失效」,反而還能提高資料的表現。拿其中很重要的乙個性質為例,線性變化不改變原始資料的數值排序。

感興趣的朋友可以試試下面的**,就會發現這兩種處理方法都不會改變資料的排序。對於很多模型來說,這個性質保證了資料依然有意義,順序性不變,而不會造成了額外的影響。

from sklearn import preprocessing

from scipy.stats import rankdata

x = [[1], [3], [34], [21], [10], [12]]

std_x = preprocessing.standardscaler().fit_transform(x)

norm_x = preprocessing.minmaxscaler().fit_transform(x)

# print(std_x)

# print(norm_x)

print('原始順序 :', rankdata(x))

print('標準化順序:', rankdata(std_x))

print('歸一化順序:', rankdata(norm_x))

說白了,只是因為線性變換保持線性組合與線性關係式不變,這保證了特定模型不會失效,忘記的朋友需要翻翻高數課本。

3. 歸一化和標準化的區別

我們已經說明了它們的本質是縮放和平移,但區別是什麼呢?在不涉及線性代數的前提下,我們給出一些直覺的解釋:歸一化的縮放是「拍扁」統一到區間(僅由極值決定),而標準化的縮放是更加「彈性」和「動態」的,和整體樣本的分布有很大的關係。值得注意:歸一化:縮放僅僅跟最大、最小值的差別有關。

標準化:縮放和每個點都有關係,通過方差(variance)體現出來。與歸一化對比,標準化中所有資料點都有貢獻(通過均值和標準差造成影響)。

當資料較為集中時,

更小,於是資料在標準化後就會更加分散。如果資料本身分布很廣,那麼

較大,資料就會被集中到更小的範圍內。

從輸出範圍角度來看,

必須在0-1間。對比來看,顯然

,甚至在極端情況下

,所以標準化的輸出範圍一定比歸一化更廣。歸一化: 輸出範圍在0-1之間

標準化:輸出範圍是負無窮到正無窮

4. 什麼時候用歸一化?什麼時候用標準化?

我們已經從第三部分得到了一些性質,因此可以得到以下結論:如果對輸出結果範圍有要求,用歸一化

如果資料較為穩定,不存在極端的最大最小值,用歸一化

如果資料存在異常值和較多噪音,用標準化,可以間接通過中心化避免異常值和極端值的影響

一般來說,我個人建議優先使用標準化。在對輸出有要求時再嘗試別的方法,如歸一化或者更加複雜的方法。很多方法都可以將輸出調整到0-1,如果我們對於資料的分布有假設的話,更加有效方法是使用相對應的概率密度函式來轉換。讓我們以高斯分布為例,我們可以首先計算高斯誤差函式(gaussian error function),此處定為

,那麼可用下式進行轉化:

特徵工程 特徵歸一化

為了消除資料特徵之間的量綱影響,需要對特徵進行歸一化 normalization 處理,使得不同特徵處於同乙個數量級,具有可比性 2.1 線性函式歸一化 min max scaling 對原始資料進行線性變換,使結果對映到 0,1 的範圍內,實現對原始資料的等比縮放。歸一化公式 其中,x為原始資料,...

特徵工程之特徵歸一化

百面機器學習 為了消除資料特徵之間的量綱影響,使得不同指標之間具有可比性。在實際應用中,通過梯度下降法求解的模型通常是需要歸一化的。但對於決策樹模型並不適用。對原始資料進行線性變換,使結果對映到 0,1 實現對原始資料的等比縮放。公式如下 x no rm x xmi nxma x xm in x f...

特徵工程 歸一化 類別處理

二 類別型特徵 對於乙個機器學習問題,資料和特徵往往決定了結果的上線,而模型 演算法的選擇及優化則是在逐步接近這個上限。特徵工程,就是對原始資料進行一系列工程處理,將其提煉為特徵,做為輸入供演算法和模型使用。特徵工程的目的是去除原始資料中的雜質和冗餘,設計更高效的特徵以刻畫求解的問題與 模型之間的關...