常見數據歸一化的幾種方法

常見的數據歸一化方法

min-max標準化(Min-max normalization)/0-1標準化(0-1 normalization)

也叫離差標準化,是對原始數據的線性變換,使結果落到[0,1]區間,轉換函數如下:

其中max爲樣本數據的最大值,min爲樣本數據的最小值。

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

如果想要將數據映射到[-1,1],則將公式換成:

x∗=x−xmean/xmax−xmin

x_mean表示數據的均值。

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

這種方法有一個缺陷就是當有新數據加入時,可能導致max和min的變化,需要重新定義。

log函數轉換

通過以10爲底的log函數轉換的方法同樣可以實現歸一下,具體方法如下:

看了下網上很多介紹都是x*=log10(x),其實是有問題的,這個結果並非一定落到[0,1]區間上,應該還要除以log10(max),max爲樣本數據最大值,並且所有的數據都要大於等於1。

發佈了553 篇原創文章 · 獲贊 178 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章