【Python】特征工程:數(shù)值特征的縮放與編碼
數(shù)值特征是結(jié)構(gòu)化競賽中重要的特征,也是需要處理的特征。一般而言數(shù)值特征的操作,包括如下幾個方面:
離群點處理 缺失值填充 縮放處理 編碼處理
缺失值填充
如果使用非樹模型,則需要考慮對數(shù)值特征進行填充。缺失值填充的基礎(chǔ)方法包括:
使用統(tǒng)計值填充(均值/中位數(shù)/常數(shù)) 最近鄰樣本填充(行維度) 基于模型的填充
縮放處理
數(shù)值特征在歸一化后直接加到深度模型中,直接對原始特征做歸一化,或者通過BN層來做歸一化。
RankGuass
將數(shù)值進行排序,然后將轉(zhuǎn)換到[-1, 1]范圍內(nèi),然后使用逆誤差函數(shù)進行轉(zhuǎn)換。
詳細案例見:https://zhuanlan.zhihu.com/p/330333894
標(biāo)準(zhǔn)化
最大最小縮放
最大絕對值縮放
魯邦縮放
計算數(shù)值具體的分位點Q1和Q3,
對數(shù)轉(zhuǎn)換
分位點轉(zhuǎn)換
計算數(shù)值分布的分位點,將分布轉(zhuǎn)為均勻分布或正態(tài)分布。
冪變換
將數(shù)值轉(zhuǎn)換為更加偏向正態(tài)分布的形態(tài)
Box-Cox 變換 Yeo-Johnson 變換
編碼處理
原始特征
用原始的數(shù)值作為特征,或者在數(shù)值上面做一些計算。
二值化/分箱處理
對數(shù)值按照大小進行劃分,可以直接使用pd.cut實現(xiàn)。
Rank值
統(tǒng)計數(shù)值具體大小次序。
離散嵌入
利用分點可以將數(shù)值進行離散化,然后作為ID類特征加到模型中,正常參與模型訓(xùn)練。離散化有兩個好處:一是引入非線性,二是可以過濾一些異常值。
域嵌入
將一個域內(nèi)的數(shù)值型特征共享一個field embedding,可以理解為使用一個向量來轉(zhuǎn)換。
樹編碼
通過樹模型節(jié)點的劃分對不同特征值劃分到不同的節(jié)點,從而對其進行離散化。
往期精彩回顧 本站qq群851320808,加入微信群請掃碼:
評論
圖片
表情
