Ⅰ 數據預處理的無量綱化
1.1數據無量綱化
將不同規格的數據轉化到同一規格或是將不同分布的數據轉換到某個特定分布的需求,這種需求統稱將數據「無量綱化」。在梯度和矩陣為核心的演算法中,無量綱化可以加快求解速度,而在距離類模型中,無量綱化可以幫助我們提升模型精度,避免某一個取值范圍特別大的特徵對距離計算造成影響。決策樹和樹的集成模型是一個特例,它們不需要無量綱化,它們可以把任何數據處理的很好。
數據的無量綱化可以是線性的也可以是非線性的,線性的無量綱化包括中心化處理和縮放處理。中心化的本質是將所有記錄減去一個固定值,就是使數據樣本平移到某個位置,縮放的本質就是通過除以一個固定值,將數據固定到某個范圍之中,取對數也算一種縮放。
1.2 preprocession.MinMaxScaler
當數據按照最小值中心化後,再按極差(最大值-最小值)縮放,數據移動到了最小值個單位,並且會收斂到[0,1]之間,這個過程稱為數據的歸一化(Normalization,又稱Min-Max-Scaler),Normalization是歸一化的意思不是正則化,正則化是regularization,不是數據預處理的手段。歸一化後數據服從正態分布。
sklearn中,使用preprocess.MinMaxScaler來實現數據歸一化,MinMaxScaler重要參數:feature_range,控制數據壓縮到的范圍,默認是[0,1]
1.3 preprocession.StandardScaler
當數據按均值中心化後,再按標准差縮放,數據會浮動均值為0,方差為1的正態分布(標準的正態分布),而這個過程稱為數據標准化(StandardScaler,又稱Z-score normalization)
對於StandardScaler和MinMaxScaler來說,空值NaN會被當成缺失值,在fit的時候忽視,在transform的時候保存缺失NaN的狀態顯示,無量綱化的過程不是具體的演算法,但是在fit介面中,依然只允許導入至少二維數組,如果導入一維的數組會報錯。
1.4 StandardScaler和MinMaxScaler選哪個?
大多數機器學習演算法中,都是用StandardScaler來進行特徵的縮放,因為MinMaxScaler對異常值非常敏感,在PCA,聚類,邏輯回歸,SVM,神經網路這些演算法中,StandardScaler會是比較好的選擇。
MinMaxScaler用在不涉及度量距離、梯度、協方差計算以及數據需要被壓縮到特定區間時使用,比如數字圖像處理中量化像素強度時,都會使用MinMaxScaler將數據壓縮到[0,1]區間之間。
可以先嘗試一下StandardScaler,效果不好再換MinMaxScaler。
Sklearn中其他縮放處理: