轉載自:http://2hwp.com/2016/02/03/data-preprocessing/
常見的資料預處理方法,以下通過sklearn的preprocessing子產品來介紹;
1. 标準化(Standardization or Mean Removal and Variance Scaling)
變換後各維特征有0均值,機關方差。也叫z-score規範化(零均值規範化)。計算方式是将特征值減去均值,除以标準差。
一般會把train和test集放在一起做标準化,或者在train集上做标準化後,用同樣的标準化器去标準化test集,此時可以用scaler
| |
實際應用中,需要做特征标準化的常見情景:SVM
2. 最小-最大規範化
最小-最大規範化對原始資料進行線性變換,變換到[0,1]區間(也可以是其他固定最小最大值的區間)
| |
3.規範化(Normalization)
規範化是将不同變化範圍的值映射到相同的固定範圍,常見的是[0,1],此時也稱為歸一化。《機器學習》周志華
将每個樣本變換成unit norm。
| |
得到:
可以發現對于每一個樣本都有,0.4^2+0.4^2+0.81^2=1,這就是L2 norm,變換後每個樣本的各維特征的平方和為1。類似地,L1 norm則是變換後每個樣本的各維特征的絕對值和為1。還有max norm,則是将每個樣本的各維特征除以該樣本各維特征的最大值。
在度量樣本之間相似性時,如果使用的是二次型kernel,需要做Normalization
4. 特征二值化(Binarization)
給定門檻值,将特征轉換為0/1
| |
5. 标簽二值化(Label binarization)
6. 類别特征編碼
有時候特征是類别型的,而一些算法的輸入必須是數值型,此時需要對其編碼。
| |
上面這個例子,第一維特征有兩種值0和1,用兩位去編碼。第二維用三位,第三維用四位。
另一種編碼方式
newdf=pd.get_dummies(df,columns=["gender","title"],dummy_na=True)
7.标簽編碼(Label encoding)
| |
8.特征中含異常值時
9.生成多項式特征
這個其實涉及到特征工程了,多項式特征/交叉特征。
| |
原始特征:
轉化後: