歸一化是數據預處理中的一種重要方法,其作用是將所有的數據均縮放到一個特定的范圍內,通常是[0,1]或者[-1,1]之間。Python作為一種廣泛使用的編程語言,有許多方法可以實現歸一化。以下是5種常用的Python歸一化方法。
#1. Min-Max歸一化 from sklearn.preprocessing import MinMaxScaler data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] scaler = MinMaxScaler() result = scaler.fit_transform(data) print(result)
Min-Max歸一化是一種最常用的歸一化方法,它通過將數據縮放到[0,1]范圍內,使所有的數據在一個統一的尺度內,同時保持數據的相對關系不變。
#2. Z-Score歸一化 from sklearn.preprocessing import StandardScaler data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] scaler = StandardScaler() result = scaler.fit_transform(data) print(result)
Z-Score歸一化也叫標準化,它將數據轉換為標準正態分布,即均值為0,方差為1的分布。通過這種方式,我們可以更好地控制數據的離群值。
#3. L1歸一化 from sklearn.preprocessing import normalize data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] result = normalize(data, norm='l1') print(result)
L1歸一化將每個樣本縮放到它的L1范數,即樣本所有特征值的絕對值之和為1。這種歸一化方式在文本分類等問題中非常有用。
#4. L2歸一化 from sklearn.preprocessing import normalize data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] result = normalize(data, norm='l2') print(result)
L2歸一化將每個樣本縮放到它的L2范數,即樣本所有特征值的平方和開根號為1。與L1歸一化相比,L2歸一化更加注重數據的量級。
#5. RobustScaler歸一化 from sklearn.preprocessing import RobustScaler data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] scaler = RobustScaler() result = scaler.fit_transform(data) print(result)
RobustScaler歸一化與Min-Max歸一化和Z-Score歸一化相比,對離群值更加魯棒,通常用于處理含有離群值的數據集。