對於大多數的機器學習演算法和優化演算法來說,將特徵值縮放到相同區間可以使得獲取效能更好的模型。就梯度下降演算法而言,例如有兩個不同的特徵,第乙個特徵的取值範圍為1-10,第二個特徵的取值範圍1~10000。在梯度下降演算法中,代價函式為最小平方誤差函式,所以在使用梯度下降演算法的時候,演算法會明顯的偏向於第二個特徵。所以進行需要對特徵歸一化,今天我介紹一下歸一化方法。
(1)min-max標準化
(2)z-score標準化方法
min-max標準化是利用特徵的最大最小值,通過對資料的每乙個維度的值進行重新調節,[0,1]區間內將特徵的值縮放到[0,1]區間,計算公式如下
z-score標準化是給與原始資料的均值(mean)和標準差(standard deviation)進行資料的標準化。經過處理的資料符合標準正態分佈,即均值為0,標準差為1.計算公式如下
):"""特徵標準化處理
args:
x: 樣本集
returns:
標準後的樣本集
"""m, n =
x.shape
# 歸一化每乙個特徵
for j in
range
(n):
features =x[
:,j]
meanval = features.
mean
(axis=0)
std = features.
std(axis=0)
if std !=0:
x[:, j]
=(features-meanval)
/std
el***[
:, j]=0
returnx
def normalize(x
):"""min-max normalization sklearn.preprocess 的maxminscalar
args:
x: 樣本集
returns:
歸一化後的樣本集
"""m, n =
x.shape
# 歸一化每乙個特徵
for j in
range
(n):
features =x[
:,j]
minval = features.
min(axis=0)
maxval = features.
max(axis=0)
diff = maxval - minval
if diff !=0:
x[:,j]
=(features-minval)
/diff
else:x
[:,j]=
0return
xmin-max標準化1、資料的量綱不同;數量級差別很大經過歸一化處理後,原始資料轉化為無量綱化指標測評值,各指標值處於同一數量級別,可進行綜合測評分析。
如果直接用原始指標值進行分析,就會突出數值較高的指標在綜合分析中的作用,相對削弱數值水平較低指標的作用。
2、避免數值問題
太大的數會引發數值問題。
3、平衡各特徵的貢獻
如果乙個特徵值域範圍非常大,那麼距離計算就主要取決於這個特徵,從而與實際情況相悖(比如這時實際情況是值域範圍小 的特徵更重要)
4、一些模型求解的需要:加快了梯度下降求最優解的速度
(1)使用max-min標準化後,其協方差產生了倍數值得縮放,因此這種方式無法消除量綱對方差、協方差的影響,對pca分析影響巨大;同時由於量綱的存在,使用不同的量綱,距離的計算結果會不同。
(2)在z-score標準化(0均值標準化)中,新的資料由於對方差進行了歸一化,這時候每個維度的量綱其實已經等價了,每個維度都服從均值為0,、方差為1的正態分佈,在計算距離的時候,每個維度都是去量綱化的,避免了不同量綱的選取對距離計算產生的巨大影響。
總的來說,在演算法後續計算中,涉及距離度量(聚類分析)或者協方差分析(pca、lda等)的,同時資料分布可以近似為狀態分布,應當使用0均值化的歸一方法。其它應用中,根據具體情況選用合適的歸一化方法。
資料歸一化處理 特徵歸一化
1 定義 資料的歸一化處理,即將資料統一對映到 0,1 區間上。2 方法 1 最大最小標準化 min max normalization 本歸一化方法又稱為離差標準化,使結果值對映到 0 1 之間,轉換函式如下 應用場景 在不涉及距離度量 協方差計算 資料不符合正太分布的時候,可以使用第一種方法或其...
什麼是歸一化處理 特徵歸一化
1 什麼是特徵歸一化?資料的標準化 normalization 是將資料按比例縮放,使之落入乙個小的特定區間。在某些比較和評價的指標處理中經常會用到,去除資料的單位限制,將其轉化為無量綱的純數值,便於不同單位或量級的指標能夠進行比較和加權 其中最典型的就是資料的歸一化處理,即將資料統一對映到 0,1...
python歸一化處理 python歸一化處理
一 定義 歸一化方法有兩種形式,一種是把數變為 0,1 之間的小數,一種是把有量綱表示式變為無量綱表示式。主要是為了資料處理方便提出來的,把資料對映到0 1範圍之內處理,更加便捷快速。二 目的 不同評價指標往往具有不同的量綱和量綱單位,這樣的情況會影響到資料分析的結果,為了消除指標之間的量綱影響,需...