做用:將數據映射到到某個區域內,默認是0到1之間。數組
API: sklearn.preprocessing.MinMaxScalerspa
feature_range(0,1)表示將數據映射到0到1之間,也能夠指定映射到2到3或者其餘的區間。code
數學原理:orm
理論乏味,來個例子:blog
左邊的數組是咱們的數據,右邊的數組是計算的X′。第二步再乘以(1-0)+0便可。數據分析
結果:數學
上代碼:it
1 from sklearn.preprocessing import MinMaxScaler 2 3 def mm(): 4 ''' 5 g 6 歸一化處理 7 :return: 8 ''' 9 mm = MinMaxScaler() 10 data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) 11 print(data) 12 if __name__ == '__main__': 13 mm()
可是呢,歸一化有一個缺點:那就是特別受到異常值的影響,其魯棒性較差,由於從數學原理角度能夠看出其公式中只用到了最大值最小值。form
因此,這個時候就須要推出標準化。class
由於標準化中使用了平均值和標準差這兩個數學指標,而均值和標準差是不容易受到異常值影響的,所以標準化更加穩定。
API:sklearn.preprocessing.StandardScaler
數學原理:
上代碼:
1 from sklearn.preprocessing import StandardScaler 2 3 def Stand(): 4 ''' 5 標準化縮放 6 :return: 7 ''' 8 std = StandardScaler() 9 data = std.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) 10 print(data) 11 if __name__ == '__main__': 12 Stand()