一、概述
數據在使用中常常需要進行歸一化處理,以消除不同特徵數據之間的量綱不同、取值範圍差異帶來的影響,同時便於不同算法之間的比較。本文將從多個方面對數據歸一化方法進行詳細闡述。
二、最大最小值歸一化
最大最小值歸一化是將特徵值縮放到[0,1]區間內。具體實現如下:
def max_min_normalization(data): max_value = np.max(data) min_value = np.min(data) if max_value == min_value: return np.zeros(data.shape) else: return (data - min_value) / (max_value - min_value)
最大最小值歸一化的優點在於簡單易懂、操作方便,在一定程度上有利於提高算法的精度,但是缺點也顯而易見,因為採用了極值,對極端數據很敏感。
三、Z-score歸一化
Z-score歸一化是指將特徵值處理為均值為0,標準差為1的分布,可描述為N(0,1)。Z-score歸一化的實現方法如下:
def z_score_normalization(data): mean = np.mean(data) std = np.std(data) if std == 0: return np.zeros(data.shape) else: return (data - mean) / std
Z-score歸一化的優點是不受極端數據的影響,處理後數據具有二階矩的定常性,適用於分布未知的數據。但是,需要計算均值和方差,對於數據量較大的場景,計算代價較高。
四、小數定標歸一化
小數定標歸一化是指通過移動數據的小數位數,使其值在[-1,1]之間。實現方法如下:
def decimal_scaling(data): temp_data = data j = 0 while np.max(np.abs(temp_data)) >= 1: j += 1 temp_data = temp_data / 10 return temp_data, j
小數定標歸一化的優點在於實現簡單、不受極端值的影響,在保持真實數據分布的前提下,可以很好地消除量綱不同的影響。缺點是會改變數據的原來分布。
五、正規分布歸一化
正規分布歸一化是利用正態分布的統計性質,將原始數據轉換為服從標準正態分布的數據,常稱為高斯分布歸一化。實現方法如下:
def normal_distribution_normalization(data): from scipy.stats import norm p = norm.cdf(data) p_ = norm.ppf(p) return p_
正規分布歸一化的優點在於對於任何類型的數據都適用,不改變實際數據分布。但是,需要依賴於同時符合一定假設條件的樣本分布。另外,該方法不適合離群點較多的數據。
六、總結
以上便是常用的幾種數據歸一化方法。在具體使用時,我們需要結合實際場景和數據特點進行選擇,合理分析和挑選適合自己的歸一化方法,以提高算法的可靠性和精度。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/157500.html