1. 程式人生 > >類別特徵的處理方法大全

類別特徵的處理方法大全

類別特徵在現實資料裡十分常見,處理類別特徵對於機器學習裡的各種演算法來說都是必不可少的過程。

本篇文章總結了幾種常見的處理類別特徵的方法,這些方法不僅有傳統的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用了類似的演算法來處理類別特徵。