標準化:在機器學習中,我們可能要處理不同種類的資料,例如,音訊和圖片上的像素值,這些資料可能是高緯度的,資料標準化后會使得每個特征中的數值平均變?yōu)?(將每個特征的值都減掉原始資料中該特征的平均),標準差變?yōu)?,這個方法被廣泛的使用在許多機器學習算法中(例如:支持向量機,邏輯回歸和類神經網絡)。
StandardScaler計算訓練集的平均值和標準差,以便測試數據及使用相同的變換。
變換后各維特征有0均值,單位方差,也叫z-score規(guī)范化(零均值規(guī)范化),計算方式是將特征值減去均值,除以標準差。
fit
用于計算訓練數據的均值和方差,后面就會用均值和方差來轉換訓練數據
fit_transform
不僅計算訓練數據的均值和方差,還會基于計算出來的均值和方差來轉換訓練數據,從而把數據轉化成標準的正態(tài)分布。
transform
很顯然,它只是進行轉換,只是把訓練數據轉換成標準的正態(tài)分布。(一般會把train和test集放在一起做標準化,或者在train集上做標準化后,用同樣的標準化器去標準化test集,此時可以使用scaler)。
data=[[0,0],[0,0],[1,1],[1,1]]
#1.基于mean和std的標準化
scaler=preprocessing.StandardScaler().fit(train_data)
scaler.transform(train_data)
scaler.transform(test_data)
一般來說先使用fit:
1scaler=preocessing.StandardScaler().fit(X)
這一步可以計算得到scaler,scaler里面存的有計算出來的均值和方差。
再使用transform
1scaler.transform(X)
這一步再用scaler中的均值和方差來轉換X,使X標準化。
最后,在預測的時候,也要對數據做同樣的標準化處理,即也要用上面的scaler中的均值和方差來對預測時候的特征進行標準化。
注意:測試數據和預測數據的標準化的方式要和訓練數據標準化的方式一樣,必須使用同一個scaler來進行transform
以上內容為大家介紹了python數據標準化,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。