類别特征在現實資料裡十分常見,處理類别特征對于機器學習裡的各種算法來說都是必不可少的過程。
本篇文章總結了幾種常見的處理類别特征的方法,這些方法不僅有傳統的one-hot編碼的形式,也有目前最先進的思路。
一、one-hot編碼
詳見這篇文章。
二、類别特征的最優切分。
該方法需要特定工具的支援,如LightGBM,詳見這篇文章。
三、轉成數值特征
3.1 利用embedding
利用神經網絡的embedding層能夠讓我們捕捉原來特征的内在屬性,使得一些原來意義上離得“近”的東西,在轉換後的向量中确實離得近(歐式空間)。詳見這篇文章。
3.2 統計每個類别對應的label(訓練目标)的均值
注:這裡的類别指的是類别特征裡的值,并非是訓練目标Y。
統計的時候有一些小技巧,比如不把自身的label算進去(leave-me-out, leave-one-out)統計, 防止資訊洩露。
舉例:
關于"leave-me-out"的統計方法。一個簡單的例子,比如樣本1,3,5屬于同個類别(在類别特征上的屬性一樣),對于樣本1,可以用3和5的label均值,樣本3用1和5的均值……,用這些均值來替換原來類别特征上的值。這樣可以防止每一個樣本直接把自身的label資訊放到特征裡面,減少統計特征的資訊洩露,防止過拟合。CatBoost用了類似的算法來處理類别特征。