機器學習 資料歸一化方法

2021-07-26 17:30:19 字數 2463 閱讀 1822

原文:

本文主要介紹兩種基本的資料歸一化方法。

歸一化方法有兩種形式,一種是把數變為(0,1)之間的小數,一種是把有量綱表示式變為無量綱表示式。

資料標準化(歸一化)處理是資料探勘的一項基礎工作,不同評價指標往往具有不同的量綱和量綱單位,這樣的情況會影響到資料分析的結果,為了消除指標之間的量綱影響,需要進行資料標準化處理,以解決資料指標之間的可比性。原始資料經過資料標準化處理後,各指標處於同一數量級,適合進行綜合對比評價。

下面是歸一化和沒有歸一化的比較:

沒有經過歸一化,尋找最優解過程如下:

經過歸一化,把各個特徵的尺度控制在相同的範圍內:

從經驗上說,歸一化是讓不同維度之間的特徵在數值上有一定比較性,可以大大提高分類器的準確性。

以下是兩種常用的歸一化方法:

也稱為離差標準化,是對原始資料的線性變換,使結果值對映到[0 - 1]之間。轉換函式如下:

$$x^=\frac}-x_}$$

x_min表示樣本資料的最小值,x_max表示樣本資料的最大值。

python**實現:

def

normalization

(x):

return [(float(i)-min(x))/float(max(x)-min(x)) for i in x]

測試:

x=[1,2,1,4,3,2,5,6,2,7]

b=normalization(x)

output:

[0.0, 0.166666666

66666666, 0.0, 0.5, 0.33333333

33333333, 0.166666666

66666666, 0.66666666

66666666, 0.83333333

33333334, 0.166666666

66666666, 1.0]

如果想要將資料對映到[-1,1],則將公式換成:

$$x^=\frac}-x_}$$

x_mean表示資料的均值

python**實現:

import numpy as np

def normalization2(x):

return [(float(i)-np.mean(x))/(max(x)-min(x)) for i in x]

測試:

x=[1,2,1,4,3,2,5,6,2,7]

b=normalization2(x)

output:

[-

0.38333333

33333333, -

0.216666666

66666665, -

0.38333333

33333333, 0.116666666

6666667, -

0.04999999

9999999968, -

0.216666666

66666665, 0.28333333

333333338, 0.45000000

000000001, -

0.216666666

66666665, 0.61666666

66666667]

注意:上面的normalization是處理單個列表的。

這種方法給予原始資料的均值(mean)和標準差(standard deviation)進行資料的標準化。經過處理的資料符合標準正態分佈,即均值為0,標準差為1,轉化函式為:

$$x^=\frac$$

其中,μ表示所有樣本資料的均值,σ表示所有樣本的標準差。

python**實現:

import numpy as np

def z_score(x):

x_mean=np.mean(x)

s2=sum([(i-np.mean(x))*(i-np.mean(x)) for i in x])/len(x)

return [(i-x_mean)/s2 for i in x]

測試:

x=[1,2,1,4,3,2,5,6,2,7]

print z_score(x)

output:

[-

0.57356608

478802995, -

0.324189526

18453861, -

0.57356608

478802995, 0.174563591

02244395, -

0.

機器學習 資料歸一化方法

本文主要介紹兩種基本的資料歸一化方法。歸一化方法有兩種形式,一種是把數變為 0,1 之間的小數,一種是把有量綱表示式變為無量綱表示式。資料標準化 歸一化 處理是資料探勘的一項基礎工作,不同評價指標往往具有不同的量綱和量綱單位,這樣的情況會影響到資料分析的結果,為了消除指標之間的量綱影響,需要進行資料...

機器學習的資料歸一化方法

作用 對於不同的特徵向量,比如年齡 購買量 購買額,在數值的量綱上相差十倍或者百千倍。如果不歸一化處理,就不容易進行比較 求距離,模型引數和正確度精確度就會受影響,甚至得不出正確的結果。舉個例子 用梯度下降法求解最優解時,下圖展示沒有歸一化和歸一化處理兩種情況下的求解過程。左圖表示沒有歸一化的求解過...

機器學習 資料歸一化

機器學習中,在資料預處理過程中,通過將資料歸一化可以加快梯度下降求最優解的速度,也有可能提高模型計算的精度。常用的歸一化方法主要有兩種 最值歸一化。比如把最大值歸一化成1,最小值歸一化成 1 或把最大值歸一化成1,最小值歸一化成0。適用於本來就分布在有限範圍內的資料。其中常用的方法有 線性比例變換法...