在《定量變量和定性變量的轉換(Transform of Quantitative & Qualitative Variables)》一文中,我們可以看到虛擬變量(Dummy Variable)與獨熱編碼( One Hot Encoding)非常相似,其不同之處在於:在虛擬編碼方案中,當特征具有 m 個不同類別標簽時,我們將得到 m-1 個二進制特征,作為基准的特征被完全忽略;而在獨熱編碼方案中,我們將得到 m 個二進制特征。
可以看到,獨熱編碼( One Hot Encoding)比虛擬變量(Dummy Variable)多生成了一個變量,這對模型有什么影響呢?之前在《虛擬變量陷阱(Dummy Variable Trap)》一文中,我們闡述了使用獨熱編碼會導致共線性問題,也就是自變量之間存在高度相關關系,從而使模型參數估計不准確。(另外,獨熱編碼的截距表示均值,回歸系數是與均值之間的差距;而虛擬變量的截距是參照類的值,回歸系數表示與參照類的差距。)因此,如果線性模型有截距項,那么請使用虛擬變量;如果線性模型無截距項,那么使用獨熱編碼。此外,如果線性模型有截距項,但在加了正則化之后,也可以使用獨熱編碼,因為這相當於約束了 w 的解的空間。
(注:為了模型穩定性的緣故,線性模型通常都是要有截距項的。)
除此之外,虛擬變量(Dummy Variable)與獨熱編碼( One Hot Encoding)之間還有什么區別呢?1,如果有N個特征,已知前N-1個特征的特征值之后,第N個特征的特征值也就知道了,因此獨熱編碼有冗余,虛擬變量沒有冗余;2,獨熱編碼可以直接從激活狀態看出所對應的類別,而虛擬變量需要進行推論,因此獨熱編碼比較直觀,虛擬變量沒有那么直觀。
總結:如果使用正則化,那么推薦使用獨熱編碼,因為regularization能夠處理多余的自由度,使用正則化手段去約束參數,同時類別型變量的各個值的地位是對等的。如果不使用正則化,那么使用虛擬變量(這樣多余的自由度都被統攝到截距項intercept里去了)。
參考:https://www.cnblogs.com/lianyingteng/p/7792693.html