1. 程式人生 > >資料標準化的方法

資料標準化的方法

機器學習中,最重要的就是資料預處理了。而當不同特徵之間的值差距較大,分佈很離散,那麼可能就需要統一這些資料的量綱,以便後期的處理。所以,今天帶來的是一些資料標準化處理的方法。

主要的標準化方法先列出如下:

  • StandardScaler
  • MinMaxScaler
  • MaxAbsScaler
  • RobustScaler
  • Normalizer

StandardScaler

sklearn.preprocessing.StandardScaler(copy = True,with_mean = True,with_std = True )

通過刪除均值和縮放到單位方差來標準化特徵。

樣本x的標準分數計算如下:                             z =(x - u)/ s

其中u是訓練樣本的平均值,如果with_mean = False,則為零,s為訓練樣本的標準偏差,如果 with_std = False,則為1。

引數 含義
copy 預設為True,在原資料上進行縮放。
with_mean 預設為True,在縮放之前對資料分佈居中處理。
with_std 預設為True,將資料縮放為單位標準差。

 

MinMaxScaler

sklearn.preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True)

公式計算如下:

X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))

X_scaled = X_std * (max - min) + min   (

其中min,max = feature_range。)

通過將每個要素縮放到給定範圍來轉換要素。該估計器單獨地縮放和翻譯每個特徵,使得它在訓練集上的給定範圍內,例如在0和1之間,此變換通常用作零均值,單位方差縮放的替代方案。

引數 含義
feature_range 預設為(0,1),期望的傳喚資料範圍
copy 預設為True,在原資料上縮放

MaxAbsScaler

sklearn.preprocessing.MaxAbsScaler(copy=True)

按每個特徵的最大絕對值縮放。該估計器單獨地縮放和轉換每個特徵,使得訓練集中的每個特徵的最大絕對值將為1.0。它不會移動/居中資料,因此不會破壞任何稀疏性。

 

RobustScaler

sklearn.preprocessing.RobustScaler(with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True)

使用對異常值具有魯棒性的統計資訊來擴充套件要素。此Scaler根據分位數範圍(預設為IQR:Interquartile Range)刪除中位數並縮放資料。IQR是第1四分位數(第25個分位數)和第3個四分位數(第75個分位數)之間的範圍。

通過去除均值和縮放到單位方差來完成。但是,異常值通常會以負面方式影響樣本均值/方差。在這種情況下,中位數和四分位數範圍通常會產生更好的結果。

引數 含義
with_centering 預設為True,在縮放之前將資料劇中。
with_scaling 預設為True,將資料縮放到四分位數範圍。
quantie_range 預設值:(25.0,75.0)=(第1個分位數,第3個分位數)= IQR用於計算的分位數範圍

 

 Normalizer

sklearn.preprocessing.Normalizer(norm ='l2',copy = True )

將樣本單獨歸一化為單位範數。具有至少一個非零分量的每個樣本(即,資料矩陣的每一行)獨立於其他樣本被重新縮放,使得其範數(l1或l2)等於1。

將輸入縮放到單位規範是例如文字分類或聚類的常見操作。例如,兩個l2標準化TF-IDF向量的點積是向量的餘弦相似度,並且是資訊檢索社群常用的向量空間模型的基本相似性度量。

引數 含義
norm

可選有'l1' , 'l2' , 'max' , 預設為 'l2' 。用於標準化每個非零樣本的標準。

最後總結如下:

StandardScaler 在異常值存在的情況下無法保證平衡的特徵尺度,並且StandardScalerMinMaxScaler對異常值的存在非常敏感。MaxAbsScaler絕對值對映在[0,1]範圍內,在僅有正資料時,MaxAbsScalerMinMaxScaler類似。RobustScaler縮放器的居中和縮放統計資料基於百分位數,因此不受少量非常大的邊際異常值的影響,變換後的特徵值的結果範圍大於之前的縮放器。Normalizer將樣本單獨歸一化為單位範數,與樣本的分佈無關。具體方法需通過衡量資料樣本分佈、及業務需求,最終採取一個合適的縮放器。