作者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/cn.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