在哪裡可以找到編碼分類特徵的指南?
我正面臨一個包含各種分類變量的 ML 任務。一些示例包括以下內容:
- 二進制變量 (0,1)。
- 可排序的多級因子(低、中、高)。
- 無法排序的多級因子(紅色、藍色、綠色)。
我將使用深度神經網絡來執行我的分類任務:但是,我想找到一個可能全面的指南,根據最常用的方法和當前的最佳實踐對分類特徵進行編碼。有參考文字嗎?
我問這個是因為我通常需要做類似的編碼任務,而且我通常會應用一些粗略的修復,這可能不是最佳的,但或多或少都很好。但是,在某些情況下,這種方法不是一種選擇,我想改進我處理此類編碼任務的方式。
二進制變量
不需要編碼:按原樣使用它們。
標稱數據
當您有一個變量可以取有限數量的值時,這稱為分類變量。當值無法排序時(例如,紅色、藍色、綠色),這稱為名義變量。名義變量是一種分類變量。
對於名義變量,編碼它們的常用方法是使用 one-hot 編碼。如果有變量的可能值,您將每個值映射到-vector 有一個在對應於該值的位置和別處。
例如:紅色, 藍色, 綠色.
序數數據
當您有一個分類變量可以對值進行排序(排序),但排序並不意味著它們有多少不同時,這稱為**序數變量(請參閱序數數據)。
例如,假設您有一個排名:John 排名第 3,Jane 排名第 6。你知道約翰在簡之前完成了,但這並不一定意味著約翰是是簡的幾倍。
您可以使用溫度計技巧對序數數據進行編碼。如果有變量的可能值,然後將每個值映射到-vector,你把一個在與變量值和所有後續位置匹配的位置。
例如:第一名, 第二個地方, 第三名.
您也可以應用分箱,如果太大,但通常最好不要這樣做。
數值變量
最後,您可能會遇到直接測量數字的變量,它們不僅可以排序,還可以減去或除法。然後,通常最好直接使用數字,或者可能使用數字的對數。(如果數字代表一個比率,或者值的範圍很廣,您可以取對數。)
有用的背景
要理解這些術語,了解“測量級別”會很有幫助:https ://en.wikipedia.org/wiki/Level_of_measurement 。
縮放
最後,當您使用神經網絡或“深度學習”時,通常需要在應用深度學習之前標準化/重新調整所有數值屬性。我建議您將其視為與上述特徵映射不同的過程,在應用特徵映射後執行。