作者chienjens (青茶无糖去冰)
看板DataScience
标题[问题] dummy variable
时间Fri May 18 08:50:53 2018
问题类别:
Dummy variable vs numeric
使用工具:
python
问题内容:
板上各位好!
小弟有个小问题想请教,
在Sklearn中,如果遇到类别型变数都须透过转dummy的形式来fit model,
那转成0/1之後程式如何知道这是dummy variable呢?
怎麽不会跟其他numeric变数混为计算呢?
以naive bayes为例,x本就能是类别也能是数值,
那sklearn中的naive_bayes仍须先将类别转成dummy,
这样python不会将dummy视为一般数值处理吗?
这个问题小弟困惑了一下,目前没看到相关的说明,於是上来请教各位大大!
还希望各位大大解惑!
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.72.235.158
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1526604656.A.8AB.html
1F:→ yoyololicon: 有点看不懂你的问题...转成0/1就是要让程式对所有的05/18 09:05
2F:→ yoyololicon: 变数一视同仁05/18 09:05
因为我看naive bayes对於类别型跟数值型变数计算机率的方式不一样,然而数值型计算
需要用到平均数跟标准差,这样如果把类别转成0/1不就会以数值型方式计算机率,而非
类别吗?
不好意思!这问题好像好难解释QQ
※ 编辑: chienjens (42.72.235.158), 05/18/2018 09:10:42
3F:→ yoyololicon: 我是看不出有甚麽问题 冏05/18 09:35
4F:→ yoyololicon: 我不知道sklearn是怎麽做的 不过通常类别转成0/1後还05/18 09:35
5F:→ yoyololicon: 还要做smoothing 不然直接算机率好像会有问题05/18 09:35
先感谢y大回答!
因为转成dummy後,从dataframe看是数值,如果y大说还要做smoothing,那我的问题应该
就是sklearn怎麽判断这个column是dummy转的0/1,进而做smoothing呢?
对於程式来说,0/1与其他数值变数不都是数值型吗@@
※ 编辑: chienjens (42.72.235.158), 05/18/2018 10:28:17
6F:→ yoyololicon: 类别的型别通常是int吧 觉得判断这个没什麽难05/18 10:44
7F:→ yoyololicon: 你不用先转成dummy sklearn都会自动帮你处理惹05/18 10:53
因为类别型的资料(string) fit model就会出现错误,所以我是透过pd.get_dummies的方
式转,转过後是int没错,所以sklearn「有可能」是用int跟float判断的罗?
※ 编辑: chienjens (42.72.235.158), 05/18/2018 11:16:35
8F:→ yoyololicon: 其实你可以用labelencoder就不用转one hot了 05/18 13:36