one-hot encoding
????????one-hot的基本思想:將離散型特征的每一種取值都看成一種狀態(tài),若你的這一特征中有N個(gè)不相同的取值丸相,那么我們就可以將該特征抽象成N種不同的狀態(tài)更扁,one-hot編碼保證了每一個(gè)取值只會(huì)使得一種狀態(tài)處于“激活態(tài)”前塔,也就是說這N種狀態(tài)中只有一個(gè)狀態(tài)位值為1挪蹭,其他狀態(tài)位都是0鲸湃。舉個(gè)例子赠涮,假設(shè)我們以學(xué)歷為例,我們想要研究的類別為小學(xué)暗挑、中學(xué)笋除、大學(xué)、碩士炸裆、博士五種類別垃它,我們使用one-hot對(duì)其編碼就會(huì)得到:
dummy encoding
啞變量編碼直觀的解釋就是任意的將一個(gè)狀態(tài)位去除。還是拿上面的例子來說烹看,我們用4個(gè)狀態(tài)位就足夠反應(yīng)上述5個(gè)類別的信息国拇,也就是我們僅僅使用前四個(gè)狀態(tài)位 [0,0,0,0] 就可以表達(dá)博士了。只是因?yàn)閷?duì)于一個(gè)我們研究的樣本惯殊,他已不是小學(xué)生酱吝、也不是中學(xué)生、也不是大學(xué)生土思、又不是研究生务热,那么我們就可以默認(rèn)他是博士,是不是己儒。所以崎岂,我們用啞變量編碼可以將上述5類表示成:
以上轉(zhuǎn)載自:離散型特征編碼方式:one-hot與啞變量* - ML小菜鳥 - 博客園
pandas提供對(duì)one-hot編碼的函數(shù)是:pd.get_dummies(),官網(wǎng)API
對(duì)官網(wǎng)提供的example進(jìn)行測(cè)試闪湾,發(fā)現(xiàn)有以下幾點(diǎn)需要注意的地方:
1冲甘、Series里的整數(shù)會(huì)按照one-hot進(jìn)行編碼,但是在DataFrame里面不會(huì)
2响谓、特征的維度數(shù)量會(huì)有所增加