作者HumuHumu (呼姆呼姆)
看板DataScience
標題[問題] 資料中包含類別+數值型態建議怎麼處理
時間Sat Mar 17 13:50:11 2018
想請問版上神人們,如果一個input data裡面有很多column
有些column屬於類別型(factor),有些column屬於數值型態
這種時候各位先進通常都會把類別資料怎麼處理呢?
有想過使用dummy variable和one hot encoding
可是使用dummy variable的話,一個column的類別(Level)愈多,會轉出太多的column,資料會變太龐大
如果用one hot encoding轉換,那麼這個類別型column的如果有N種類別,那麼這個column
的每一筆資料都會轉成一個N維的vector,那麼這個column的維度就會變得跟其他數值資料
型態的column不太一樣,這樣我就不知道要怎麼把這些column合在一起當作X變數了
想請問版上大大們都是怎麼處理這類的問題,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.53.208
※ 文章網址: https://webptt.com/m.aspx?n=bbs/DataScience/M.1521265814.A.043.html
1F:推 goldflower: 我現在都用entity embedding吧 03/17 14:56
2F:推 goldflower: 然後後面看不太懂 是說跟數值一起訓練感覺很怪嗎? 03/17 15:01
假如資料長這樣(假設都是X變數)
┌────────┐
│ Letter number│
│1 "A" 9 │
│2 "B" 4 │
│3 "C" 8 │
│4 "D" 7 │
└────────┘
那如果把Letter這個column做one hot encoding應該會變成這樣
┌──────────┐
│ Letter number │
│1 [1,0,0,0] 9 │
│2 [0,1,0,0] 4 │
│3 [0,0,1,0] 8 │
│4 [0,0,0,1] 7 │
└──────────┘
這種每個column維度不一樣的資料怎麼輸入到model裡呢? 第一個col會是array,第二個
依然是int或numeric
3F:推 goldflower: 這個情形你的letter就會拆成四個numerical惹 03/17 16:13
4F:→ goldflower: 所以以這個例子你現在變成有5個feature 03/17 16:14
那這樣不就跟轉dummy variable一樣了嗎
※ 編輯: HumuHumu (114.32.209.214), 03/17/2018 17:30:55
5F:推 goldflower: 其實這兩個還真的是一樣的 差一個維度而已 03/17 17:48
6F:→ goldflower: 之所以要差個維度是要避免什麼多重共線性的東西 03/17 17:50
7F:→ goldflower: 但這個在ML的世界不是什麼問題 所以都用one-hot 03/17 17:51