一、最大-最小規範化
最大-最小規範化也被稱為離差標準化。這種方法是通過將原始數據按比例進行縮放,使其固定在一定的範圍內。具體來說,就是將原始數據$x$進行歸一化得到新的數值$y$,公式如下:
y = (x-min)/(max-min)
其中,$min$和$max$分別是數據集中最小值和最大值。
最大-最小規範化可以保留原始數據的分布情況,而且其歸一化結果的數值範圍固定在[0,1]之間,方便比較不同特徵的大小。
二、z-score標準化
z-score標準化也被稱為標準差標準化。這種方法旨在通過將原始數據按照標準差的大小進行縮放,使其能夠符合正態分布的特徵。具體來說,就是將原始數據$x$進行歸一化得到新的數值$y$,公式如下:
y = (x-mean)/std
其中,$mean$是數據集的均值,$std$是數據集的標準差。
z-score標準化可以將原始數據轉換為具有相同單位的分數,並保留了原始數據的大小關係。此外,其歸一化結果符合標準正態分布,便於計算。
三、小數定標標準化
小數定標標準化是一種通過移動小數點的位置來縮放數據的方法。具體來說,就是將原始數據$x$除以一個固定的基數$10^j$,得到新的數值$y$,公式如下:
y = x/10^j
其中,$j$是一個常數,是使得歸一化後的數據的絕對值最大值小於1的最小整數。
小數定標標準化方法能夠處理數據的動態範圍差異,減小不同數值之間的量綱影響,縮小了數據的差異性,方便進行比較和處理。
四、其他歸一化方法
除了上述三種常見的數據歸一化方法外,還有一些其他的歸一化方法。
1.範數歸一化
範數歸一化利用矩陣或向量的範數進行縮放,使得矩陣或向量的範數等於1。具體來說,就是將向量$x$進行歸一化得到新的數值$y$,公式如下:
y = x/||x||
其中,$||x||$表示向量$x$的範數。
2.秩標準化
秩標準化是一種通過給數據進行排序來進行歸一化的方法。具體來說,就是將原始數據$x$按其大小進行排名得到新的數據$y$,公式如下:
y = rank(x)/(N+1)
其中,$N$為數據集大小,$rank(x)$表示$x$在數據集中的排名。
五、代碼示例
1.最大-最小規範化
def min_max_normalization(x): """進行最大-最小規範化""" x_min = min(x) x_max = max(x) return [(i-x_min)/(x_max-x_min) for i in x]
2.z-score標準化
def z_score_normalization(x): """進行z-score標準化""" mean_x = sum(x)/len(x) std_x = math.sqrt(sum([(i-mean_x)**2 for i in x])/len(x)) return [(i-mean_x)/std_x for i in x]
3.小數定標標準化
def decimal_scaling_normalization(x): """進行小數定標標準化""" j = math.ceil(max([abs(i) for i in x])) return [i/(10**j) for i in x]
原創文章,作者:HHKMY,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/361529.html