數據標準化

一 、Z-Score 標準化

公式:$ \frac{x - x.mean}{x.std}$

即:將數據按其屬性(列)減去對應屬性的均值,再除以方差

【得到的結果對于每個屬性(列)來說所有數據都聚集在 $ \color{red}{0} $ 附近,方差為 $ \color{red}{1} $ 】

  • 使用sklearn.preprocessing()
from sklearn import preprocessing
scaled = preprocessing.scale(data)
  • 使用sklearn.preprocessing.StandardScaler類

使用該類可以保存訓練集中的參數(均值,方差),可以直接使用其對象轉換測試集數據

from sklearn.preprocessing import StandardScaler
scaler = StandradScaler().fit(train_data)
# 查看數據的均值
# scaler.mean_
# 查看數據的方差
# scaler.std_
# 直接對測試集進行轉換
scaler.transform(test_data)

二 、0-1 標準化

也叫離差標準化,是對原始數據進行線性變換,使其結果落在[0,1]區間內

公式:$ \tilde{a} = \frac{x-x.min}{x.max-x.min} $

  • 可以通過sklearn.preprocessing.MinMaxScaler類實現
from sklearn.preprocessing import MinMaxScaler
min_max_scaler = MinMaxScaler()
train_scaled = min_max_scaler.fit_transform(train_data)
# 同樣的縮放應用到測試集數據中
test_scaled = min_max_scaler.transform(test_data)
# 查看縮放因子
# min_max_scaler.scale_

三 、正態分布化(Normalization)

Normalization用來將各個樣本歸一化為norm為1的正態分布。

  • 該方法是 $ \color{red}{文本分類} $ 和 $ \color{red}{聚類分析} $ 中經常使用的向量空間模型(SVM)的基礎
  • Normalization 主要思想是對每個樣本計算其p-范數,然后對該樣本中每個元素除以該范數,這樣處理的結果是使得每個處理后的樣本的p-范數等于1
  • sklearn.preprocessing.normalize()
from sklearn.preprocessing import normalize
data_normalized = normalize(data,norm = 'l2')
# data_normalized = normalize(data,norm = 'l1')
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容