(1)最大最小值歸一化(min-max normalization)
:將數值範圍縮放到 [0, 1]
區間裡(2)均值歸一化(mean normalization):將數值範圍縮放到 [-1, 1]
區間裡,且資料的均值變為0
(3)標準化 / z值歸一化(standardization /z-scorenormalization):將數值縮放到0附近,且資料的分布變為均值為0,標準差為1的標準正態分佈(先減去均值來對特徵進行中心化 mean centering處理,再除以標準差進行縮放)
(4)最大絕對值歸一化(max abs normalization ):也就是將數值變為單位長度(scaling to unit length),將數值範圍縮放到 [-1, 1]
區間裡(5)穩鍵標準化(robust standardization):先減去中位數,再除以四分位間距(interquartile range),因為不涉及極值,因此在資料裡有異常值的情況下表現比較穩健
* 有一些時候,只對資料進行中心化和縮放是不夠的,還需對資料進行白化(whitening)處理來消除特徵間的線性相關性。
歸一化(normalization):歸一化是將樣本的特徵值轉換到同一量綱下,把資料對映到[0,1]或者[-1, 1]區間內。
標準化(standardization):標準化是將樣本的特徵值轉換為標準值(z值),每個樣本點都對標準化產生影響。
1. 統一特徵的權重&提公升模型準確性
如果某個特徵的取值範圍比其他特徵大很多,那麼數值計算(比如說計算歐式距離)就受該特徵的主要支配。但實際上並不一定是這個特徵最重要,通常需要把每個特徵看成同等重要。歸一化/標準化資料可以使不同維度的特徵放在一起進行比較,可以大大提高模型的準確性。
2. 提公升梯度下降法的收斂速度
在使用梯度下降法求解最優化問題時, 歸一化/標準化資料後可以加快梯度下降的求解速度。
在需要使用距離來度量相似性的演算法中,或者使用pca技術進行降維的時候,通常使用標準化(standardization)或均值歸一化(mean normalization)
比較好,但如果資料分布不是正態分佈或者標準差非常小,以及需要把資料固定在 [0, 1]
範圍內,那麼使用最大最小值歸一化(min-max normalization)
比較好(min-max 常用於歸一化影象的灰度值)。但是min-max比較容易受異常值的影響,如果資料集包含較多的異常值,可以考慮使用穩鍵歸一化(robust normalization)。對於已經中心化的資料或稀疏資料的縮放,比較推薦使用最大絕對值歸一化(max abs normalization ),因為它會保住資料中的0元素,不會破壞資料的稀疏性(sparsity)。
通過梯度下降法求解的模型需要進行特徵縮放,這包括線性回歸(linear regression)、邏輯回歸(logistic regression)、感知機(perceptron)、支援向量機(svm)、神經網路(neural network)等模型。此外,近鄰法(knn),k均值聚類(k-means)等需要根據資料間的距離來劃分資料的演算法也需要進行特徵縮放。主成分分析(pca),線性判別分析(lda)等需要計算特徵的方差的演算法也會受到特徵縮放的影響。
決策樹(decision tree),隨機森林(random forest)等基於樹的分類模型不需要進行特徵縮放,因為特徵縮放不會改變樣本在特徵上的資訊增益。
需要先把資料拆分成訓練集與驗證集,在訓練集上計算出需要的數值(如均值和標準值),對訓練集資料做標準化/歸一化處理(不要在整個資料集上做標準化/歸一化處理,因為這樣會將驗證集的資訊帶入到訓練集中,這是乙個非常容易犯的錯誤),然後再用之前計算出的資料(如均值和標準值)對驗證集資料做相同的標準化/歸一化處理。
參考:
特徵縮放 feature scaling
特徵縮放的一些方法 feature scaling 資料規範化 是資料探勘或機器學習常用到的步驟,這個步驟有時對演算法的效率和準確率都會產生巨大的影響。對精度的影響 這個步驟的必要性要依賴於資料特徵的特性,如果有 2特徵,並且不同特徵間的值變化範圍差異大,那就很有必要使用feature scalin...
優達筆記 特徵縮放
特徵縮放 特徵縮放這個名字聽起來很膩害的樣子,實際上它講了乙個非常淺顯的方法。例如下面的cameront1身高5.9,體重175,他穿l號的衣服。sarah體重115,身高5.2,她穿s號的衣服。那麼有個人叫chris,他體重140,身高6.1,應該穿了l還是s呢?我們可以合理的猜測一下,chris...
Udacity 機器學習入門 特徵縮放
因為在這裡,體重完全主導了結果,身高的影響微乎其微。而我們應該盡量讓兩者對結果有同等重要的影響。這就引來了特徵縮放 把特徵都限制在 0,1 之間。解釋 特點 縮放後的特徵值總是在0和1之間 def featurescaling arr import numpy as np arr np.array ...