獨熱編碼One Hot Encoding問題
2019/05/11 下午 00:58
機器學習共學討論版
Richard
觀看數:6
回答數:2
收藏數:0
ml100-2
ml100-2-d22
看講義,有以下問題:
1.除非該特徵重要性⾼高,且可能值較少(獨熱編碼時負擔較低) 時,才應考慮使⽤用獨熱編碼
2.表格說明,請問獨熱編碼One Hot Encoding 是大小有意義,還是根本沒有大小的問題?
3.什麼是樹狀模型?
4.一般而言,不是只有類別型特徵才需要編碼嗎?若是int or float type,本身都是數字,為何還需要編碼呢?
回答列表
-
2019/05/11 下午 11:21張維元 (WeiYuan)贊同數:2不贊同數:0留言數:0
先說結論:
- 原始資料是有序離散值的話 => Label Encoding
- 原始資料是無序離散值的話 => One Hot Encoding (Dummies)
以下分為兩點說明:
為什麼要將離散轉數值?
=> 因為大部分的模型都是基於數學運算,所以字串資料是無法運算的
為什麼要將無序轉 One-Hot?
=> 所謂數學運算一般泛指用距離代表相似(幾何觀點),意思是會用轉換後的兩個值的差距作為其相似程度。
舉個例子:
* 如果將性別欄位的男/女轉換成 0, 1 ,二元的沒問題。
* 如果講水果這個無序欄位中的頻果、香蕉、西瓜,Label 成 0, 1, 2 會隱含著「香蕉跟蘋果」比「西瓜跟蘋果」還要相似的意義,但這樣是錯誤的。
* 如果是年齡這個有序欄位的老年、中年、少年,Label 成 0, 1, 2 就很恰當,到如果硬轉成 One-Hot 反而將這個差距關係給拿掉。
-
2019/05/11 下午 11:22張維元 (WeiYuan)贊同數:1不贊同數:0留言數:0
3.什麼是樹狀模型?
=> .Decision-Tree 相關的
4.一般而言,不是只有類別型特徵才需要編碼嗎?若是int or float type,本身都是數字,為何還需要編碼呢?
=> 正常來說編碼是為了計算,int 本身就具計算性,就不需亦特別編碼,除非是資料有特殊含義