[問題] 類別變數再神經網路或是其他 ML 方法處理

看板DataScience作者 (好吃burger)時間6年前 (2018/09/09 16:21), 6年前編輯推噓6(6026)
留言32則, 8人參與, 6年前最新討論串1/1
咪納桑大家好 我最近在處理一份資料,想要預測商品購買類別 資料有連續型變數跟類別變數,然後我想問的是 ---第一點--- 當類別有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://www.ptt.cc/bbs/DataScience/M.1536481302.A.1FB.html

09/09 16:39, 6年前 , 1F
那樣是one hot encoding沒錯,我個人比較prefer第一種 因
09/09 16:39, 1F

09/09 16:39, 6年前 , 2F
為我們在output 的時候喜歡用sigmoid 或softmax來把各類別
09/09 16:39, 2F

09/09 16:39, 6年前 , 3F
變成機率的樣子 所以一比較直觀~
09/09 16:39, 3F

09/09 16:41, 6年前 , 4F
另外不推薦1,2,3,4,5這樣 因為在做back propagation
09/09 16:41, 4F

09/09 16:41, 6年前 , 5F
的時候效果跟onehot encoding有差
09/09 16:41, 5F

09/09 16:42, 6年前 , 6F
如果你類別數沒特別多的話不用考慮稀疏矩陣
09/09 16:42, 6F
我這個類別變數的部分是 X 變數 不是 y 變數 這樣是符合您說嗎 ,謝謝回答,非常感激 ※ 編輯: zxc741qaz123 (140.119.143.27), 09/09/2018 17:03:00

09/09 17:02, 6年前 , 7F
不能用12345的理由是因為希望C到A跟C到B的距離要一樣,依
09/09 17:02, 7F

09/09 17:02, 6年前 , 8F
此類推…
09/09 17:02, 8F
它的 A B C 意思是 年齡 11~15 16~20 21~25 所以我想問是不是能轉成 1 2 3 感激回應 ※ 編輯: zxc741qaz123 (140.119.143.27), 09/09/2018 17:04:31

09/09 17:11, 6年前 , 9F
X變數y變數是啥意思你是不是把feature跟label搞混啦 我們
09/09 17:11, 9F

09/09 17:11, 6年前 , 10F
只會對label做one hot encoding
09/09 17:11, 10F
恩恩,我這篇問的是 feature , 所以如果 feature 是類別的話不會做 one hot encoding 嗎 如果不做的話通常會怎麼處理呢。 ※ 編輯: zxc741qaz123 (140.119.143.27), 09/09/2018 17:31:13

09/09 18:17, 6年前 , 11F
不好意思我理解可能有誤 剛剛查了下資料有看到對feature
09/09 18:17, 11F

09/09 18:17, 6年前 , 12F
做onehot的部分 但我不太熟悉就留給其他高手補充 至於若f
09/09 18:17, 12F

09/09 18:17, 6年前 , 13F
eature 有大小關係的話 應該是可以那樣表示的然後再normal
09/09 18:17, 13F

09/09 18:17, 6年前 , 14F
ize到0跟1之間這樣比較好train~有誤再指出感恩
09/09 18:17, 14F

09/10 03:53, 6年前 , 15F
神經網路的類別變數,我覺得還是用第一種方式就好,就
09/10 03:53, 15F

09/10 03:53, 6年前 , 16F
算其實有年齡這類的上下關係
09/10 03:53, 16F

09/10 03:55, 6年前 , 17F
另外就我的理解,轉one hot應該就不用標準化了,有錯
09/10 03:55, 17F

09/10 03:55, 6年前 , 18F
請指正謝謝
09/10 03:55, 18F

09/10 10:32, 6年前 , 19F
第一題 你學的統計是對的 一模一樣的東西 統計學過都能用
09/10 10:32, 19F

09/10 10:32, 6年前 , 20F
來ML不用怕
09/10 10:32, 20F

09/10 10:35, 6年前 , 21F
第二點要看變數跟 Y的關係
09/10 10:35, 21F

09/10 10:37, 6年前 , 22F
數據本來就0跟1也不用做標準化 如果覺得 one hot 維度過多
09/10 10:37, 22F

09/10 10:37, 6年前 , 23F
就 dimensionality reduction
09/10 10:37, 23F

09/10 18:47, 6年前 , 24F
feature可以one hot阿 像我最近寫fftnet 輸入就是qu
09/10 18:47, 24F

09/10 18:47, 6年前 , 25F
antized後的類別
09/10 18:47, 25F

09/10 21:27, 6年前 , 26F
現在除了做dummy variable外還流行做embedding了
09/10 21:27, 26F

09/11 16:50, 6年前 , 27F
one-hot我還是會做標準化 因為他不一定是zero mean unit
09/11 16:50, 27F

09/11 16:50, 6年前 , 28F
variance 這可能會有影響
09/11 16:50, 28F

09/11 16:51, 6年前 , 29F
但應該不會差太多就是了
09/11 16:51, 29F

09/22 03:03, 6年前 , 30F
2. 不好 這樣e會比較“特別” 除非你有需求/已知特性
09/22 03:03, 30F

09/22 03:03, 6年前 , 31F
3. 也不好 這樣a跟e的差距比其他任兩類都大
09/22 03:03, 31F

09/22 03:04, 6年前 , 32F
除非有已知的knowledge 否則會先“公平”看待每類
09/22 03:04, 32F
文章代碼(AID): #1RbDWM7x (DataScience)
文章代碼(AID): #1RbDWM7x (DataScience)