機器學習之歸一化和標準化

由於歸一化和標準化在數據分析和處理中都屬於數據與預處理。所以,其API都在 sklearn.preprocessing中

一、歸一化

做用:將數據映射到到某個區域內,默認是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()

相關文章
相關標籤/搜索