MinMaxScalar
將數據歸一化到[0,1],計算公式如下:
其中min,max = feature_range,爲歸一化後數據的區間,默認是[0,1]。
MinMaxScalar歸一化得到的數據會完全落入[0,1]區間內(z-score沒有類似區間),而且能使數據歸一化落到一定的區間內,同時保留原始數據的結構。
MaxAbsScalar
將數據歸一化到[-1,1],計算公式如下:
同MinMaxScalar相同,MaxAbsScalar得到的數據會完全落入[-1, 1]區間內(z-score沒有類似區間),而且能使數據歸一化落到一定的區間內,同時保留原始數據的結構。
MinMaxScalar和MaxAbsScalar的優點:
- 對於方差非常小的屬性可以增強其穩定性;
- 維持稀疏矩陣中爲0的條目
StandardScaler
將數據縮放到均值爲0,方差爲1,計算公式如下:
StandardScaler適合大多數的數據類型的數據,得到的數據是以0爲均值,1爲方差的正態分佈,但這種方法改變了原始數據的結構,因此不適宜用於對稀疏矩陣做數據預處理。
StandardScaler也能夠接受 scipy.sparse 作爲輸入,只要參數 with_mean=False 被準確傳入它的構造器。否則會出現 ValueError 的錯誤,因爲默認的中心化會破壞稀疏性,並且經常會因爲分配過多的內存而使執行崩潰。
RobustScaler
計算公式如下:
如果數據包含許多異常值,可以使用RobustScaler或robust_scaler。
RobustScaler將中位數當做數據的中心,移除中位數,然後根據分位數範圍(默認爲IQR,0.75分位數和0.25分位數間距)
QuantileTransformer
此變換是非線性的。通過累積密度函數投影原始值。可以通過設置參數將數據轉化爲均勻分佈或是高斯分佈。