原文地址:?https://www.cnblogs.com/zongfa/p/9305657.html
1. 為什么要獨(dú)熱編碼沃疮?
正如上文所言钦扭,獨(dú)熱編碼(啞變量 dummy variable)是因?yàn)榇蟛糠炙惴ㄊ?b>基于向量空間中的度量來進(jìn)行計(jì)算的,為了使非偏序關(guān)系的變量取值不具有偏序性斑粱,并且到圓點(diǎn)是等距的氧吐。使用one-hot編碼褪秀,將離散特征的取值擴(kuò)展到了歐式空間空猜,離散特征的某個(gè)取值就對應(yīng)歐式空間的某個(gè)點(diǎn)绽慈。將離散型特征使用one-hot編碼,會讓特征之間的距離計(jì)算更加合理辈毯。離散特征進(jìn)行one-hot編碼后,編碼后的特征钝凶,其實(shí)每一維度的特征都可以看做是連續(xù)的特征唁影。就可以跟對連續(xù)型特征的歸一化方法一樣,對每一維特征進(jìn)行歸一化啃炸。比如歸一化到[-1,1]或歸一化到均值為0,方差為1卓舵。
? ? ? ? 為什么特征向量要映射到歐式空間掏湾?
? ? ? ? 將離散特征通過one-hot編碼映射到歐式空間肿嘲,是因?yàn)轹撸诨貧w匣屡,分類拇涤,聚類等機(jī)器學(xué)習(xí)算法中鹅士,特征之間距離的計(jì)算或相似度的計(jì)算是非常重要的,而我們常用的距離或相似度的計(jì)算都是在歐式空間的相似度計(jì)算掉盅,計(jì)算余弦相似性,基于的就是歐式空間慢哈。
2 .獨(dú)熱編碼優(yōu)缺點(diǎn)
優(yōu)點(diǎn):獨(dú)熱編碼解決了分類器不好處理屬性數(shù)據(jù)的問題永票,在一定程度上也起到了擴(kuò)充特征的作用。它的值只有0和1瓦侮,不同的類型存儲在垂直的空間。
缺點(diǎn):當(dāng)類別的數(shù)量很多時(shí)方妖,特征空間會變得非常大罚攀。在這種情況下,一般可以用PCA來減少維度杯瞻。而且one hot encoding+PCA這種組合在實(shí)際中也非常有用炫掐。
3. 什么情況下(不)用獨(dú)熱編碼募胃?
用:獨(dú)熱編碼用來解決類別型數(shù)據(jù)的離散值問題痹束,
不用:將離散型特征進(jìn)行one-hot編碼的作用,是為了讓距離計(jì)算更合理屎媳,但如果特征是離散的烛谊,并且不用one-hot編碼就可以很合理的計(jì)算出距離,那么就沒必要進(jìn)行one-hot編碼钞诡。 有些基于樹的算法在處理變量時(shí)湃崩,并不是基于向量空間度量,數(shù)值只是個(gè)類別符號攒读,即沒有偏序關(guān)系朵诫,所以不用進(jìn)行獨(dú)熱編碼薄扁。??Tree Model不太需要one-hot編碼: 對于決策樹來說剪返,one-hot的本質(zhì)是增加樹的深度邓梅。
總的來說脱盲,要是one hot encoding的類別數(shù)目不太多,建議優(yōu)先考慮钱反。?
4.? 什么情況下(不)需要?dú)w一化?
需要:?基于參數(shù)的模型或基于距離的模型匣距,都是要進(jìn)行特征的歸一化面哥。
不需要:基于樹的方法是不需要進(jìn)行特征的歸一化,例如隨機(jī)森林毅待,bagging 和 boosting等尚卫。
5尸红、one-hot編碼為什么可以解決類別型數(shù)據(jù)的離散值問題?
首先,one-hot編碼是N位狀態(tài)寄存器為N個(gè)狀態(tài)進(jìn)行編碼的方式?
eg:高邑飒、中级乐、低不可分撒轮,→ 用0 0 0 三位編碼之后變得可分了,并且成為互相獨(dú)立的事件?
? ? ? ?類似 SVM中贼穆,原本線性不可分的特征故痊,經(jīng)過project之后到高維之后變得可分了?
GBDT處理高維稀疏矩陣的時(shí)候效果并不好,即使是低維的稀疏矩陣也未必比SVM好
6愕秫、Tree Model不太需要one-hot編碼
對于決策樹來說慨菱,one-hot的本質(zhì)是增加樹的深度?
tree-model是在動態(tài)的過程中生成類似 One-Hot + Feature Crossing 的機(jī)制?
1. 一個(gè)特征或者多個(gè)特征最終轉(zhuǎn)換成一個(gè)葉子節(jié)點(diǎn)作為編碼 ,one-hot可以理解成三個(gè)獨(dú)立事件?
2. 決策樹是沒有特征大小的概念的戴甩,只有特征處于他分布的哪一部分的概念?
one-hot可以解決線性可分問題 但是比不上label econding?
one-hot降維后的缺點(diǎn):?
降維前可以交叉的降維后可能變得不能交叉