作者zxc741qaz123 (好吃burger)
看板DataScience
标题[问题] 类别变数再神经网路或是其他 ML 方法处理
时间Sun Sep 9 16:21:39 2018
咪纳桑大家好
我最近在处理一份资料,想要预测商品购买类别
资料有连续型变数跟类别变数,然後我想问的是
---第一点---
当类别有5个的时候,例如
A B C D E
我想把他转成虚拟变数(这可以叫做 one-hot 吗)
[1,0,0,0,0]
[0,1,0,0,0]
[0,0,1,0,0]
[0,0,0,1,0]
[0,0,0,0,1]
但以前学统计的时候,都会希望虚拟变数会是类别数 - 1
所以应该是转成
[1,0,0,0]
[0,1,0,0]
[0,0,1,0]
[0,0,0,1]
[0,0,0,0]
所以我想问,这两种转换方式在神经网路跟其他机器学习的方法会有差吗
---第二点---
当类别变数有顺序并且等距的时候,还需要转成 one-hot 吗
例如 A B C D E 是否可以转成 1 2 3 4 5 ,会不会比用第一点的方式好 ?
---第三点---
在做神经网路处理的时候,每个变数都需要做标准化,
那转成 one-hot 的资料还需要做标准化吗
另外像是这种大部分都是零的矩阵,在神经网路似乎要用不同的方法去做
好像是甚麽稀疏矩阵特别处理的,这我还没研究,可以的话希望也可以提点一下
不好意思,我英文不太好,爬文速度很慢,但是我还是会办法从其他地方找答案
但能提点小弟的部分就麻烦大家了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.119.143.27
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1536481302.A.1FB.html
1F:推 b05703: 那样是one hot encoding没错,我个人比较prefer第一种 因 09/09 16:39
2F:→ b05703: 为我们在output 的时候喜欢用sigmoid 或softmax来把各类别 09/09 16:39
3F:→ b05703: 变成机率的样子 所以一比较直观~ 09/09 16:39
4F:→ b05703: 另外不推荐1,2,3,4,5这样 因为在做back propagation 09/09 16:41
5F:→ b05703: 的时候效果跟onehot encoding有差 09/09 16:41
6F:→ b05703: 如果你类别数没特别多的话不用考虑稀疏矩阵 09/09 16:42
我这个类别变数的部分是 X 变数 不是 y 变数
这样是符合您说吗 ,谢谢回答,非常感激
※ 编辑: zxc741qaz123 (140.119.143.27), 09/09/2018 17:03:00
7F:→ Mchord: 不能用12345的理由是因为希望C到A跟C到B的距离要一样,依 09/09 17:02
8F:→ Mchord: 此类推… 09/09 17:02
它的 A B C 意思是 年龄 11~15 16~20 21~25 所以我想问是不是能转成 1 2 3
感激回应
※ 编辑: zxc741qaz123 (140.119.143.27), 09/09/2018 17:04:31
9F:推 b05703: X变数y变数是啥意思你是不是把feature跟label搞混啦 我们 09/09 17:11
10F:→ b05703: 只会对label做one hot encoding 09/09 17:11
恩恩,我这篇问的是 feature ,
所以如果 feature 是类别的话不会做 one hot encoding 吗
如果不做的话通常会怎麽处理呢。
※ 编辑: zxc741qaz123 (140.119.143.27), 09/09/2018 17:31:13
11F:→ b05703: 不好意思我理解可能有误 刚刚查了下资料有看到对feature 09/09 18:17
12F:→ b05703: 做onehot的部分 但我不太熟悉就留给其他高手补充 至於若f 09/09 18:17
13F:→ b05703: eature 有大小关系的话 应该是可以那样表示的然後再normal 09/09 18:17
14F:→ b05703: ize到0跟1之间这样比较好train~有误再指出感恩 09/09 18:17
15F:→ jackwang01: 神经网路的类别变数,我觉得还是用第一种方式就好,就 09/10 03:53
16F:→ jackwang01: 算其实有年龄这类的上下关系 09/10 03:53
17F:→ jackwang01: 另外就我的理解,转one hot应该就不用标准化了,有错 09/10 03:55
18F:→ jackwang01: 请指正谢谢 09/10 03:55
19F:推 EGsux: 第一题 你学的统计是对的 一模一样的东西 统计学过都能用 09/10 10:32
20F:→ EGsux: 来ML不用怕 09/10 10:32
21F:推 EGsux: 第二点要看变数跟 Y的关系 09/10 10:35
22F:→ EGsux: 数据本来就0跟1也不用做标准化 如果觉得 one hot 维度过多 09/10 10:37
23F:→ EGsux: 就 dimensionality reduction 09/10 10:37
24F:推 yoyololicon: feature可以one hot阿 像我最近写fftnet 输入就是qu 09/10 18:47
25F:→ yoyololicon: antized後的类别 09/10 18:47
26F:→ Wush978: 现在除了做dummy variable外还流行做embedding了 09/10 21:27
27F:→ tsoahans: one-hot我还是会做标准化 因为他不一定是zero mean unit 09/11 16:50
28F:→ tsoahans: variance 这可能会有影响 09/11 16:50
29F:→ tsoahans: 但应该不会差太多就是了 09/11 16:51
30F:推 zianz113: 2. 不好 这样e会比较“特别” 除非你有需求/已知特性 09/22 03:03
31F:→ zianz113: 3. 也不好 这样a跟e的差距比其他任两类都大 09/22 03:03
32F:→ zianz113: 除非有已知的knowledge 否则会先“公平”看待每类 09/22 03:04