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