一 客年、Z-Score 標(biāo)準(zhǔn)化
公式:$ \frac{x - x.mean}{x.std}$
即:將數(shù)據(jù)按其屬性(列)減去對應(yīng)屬性的均值,再除以方差
【得到的結(jié)果對于每個屬性(列)來說所有數(shù)據(jù)都聚集在 $ \color{red}{0} $ 附近娩脾,方差為 $ \color{red}{1} $ 】
- 使用sklearn.preprocessing()
from sklearn import preprocessing
scaled = preprocessing.scale(data)
- 使用sklearn.preprocessing.StandardScaler類
使用該類可以保存訓(xùn)練集中的參數(shù)(均值赵誓,方差),可以直接使用其對象轉(zhuǎn)換測試集數(shù)據(jù)
from sklearn.preprocessing import StandardScaler
scaler = StandradScaler().fit(train_data)
# 查看數(shù)據(jù)的均值
# scaler.mean_
# 查看數(shù)據(jù)的方差
# scaler.std_
# 直接對測試集進(jìn)行轉(zhuǎn)換
scaler.transform(test_data)
二 柿赊、0-1 標(biāo)準(zhǔn)化
也叫離差標(biāo)準(zhǔn)化俩功,是對原始數(shù)據(jù)進(jìn)行線性變換,使其結(jié)果落在[0,1]區(qū)間內(nèi)
公式:$ \tilde{a} = \frac{x-x.min}{x.max-x.min} $
- 可以通過sklearn.preprocessing.MinMaxScaler類實(shí)現(xiàn)
from sklearn.preprocessing import MinMaxScaler
min_max_scaler = MinMaxScaler()
train_scaled = min_max_scaler.fit_transform(train_data)
# 同樣的縮放應(yīng)用到測試集數(shù)據(jù)中
test_scaled = min_max_scaler.transform(test_data)
# 查看縮放因子
# min_max_scaler.scale_
三 碰声、正態(tài)分布化(Normalization)
Normalization用來將各個樣本歸一化為norm為1的正態(tài)分布诡蜓。
- 該方法是 $ \color{red}{文本分類} $ 和 $ \color{red}{聚類分析} $ 中經(jīng)常使用的向量空間模型(SVM)的基礎(chǔ)
- Normalization 主要思想是對每個樣本計算其p-范數(shù),然后對該樣本中每個元素除以該范數(shù)胰挑,這樣處理的結(jié)果是使得每個處理后的樣本的p-范數(shù)等于1
- sklearn.preprocessing.normalize()
from sklearn.preprocessing import normalize
data_normalized = normalize(data,norm = 'l2')
# data_normalized = normalize(data,norm = 'l1')