0
本文作者: AI研習(xí)社-譯站 | 2020-09-03 14:56 |
字幕組雙語(yǔ)原文:請(qǐng)停止對(duì)分類(lèi)變量進(jìn)行獨(dú)熱編碼!
英語(yǔ)原文:Stop One-Hot Encoding Your Categorical Variables.
獨(dú)熱編碼,又稱(chēng)虛擬變量,是一種將分類(lèi)變量轉(zhuǎn)換為若干二進(jìn)制列的方法,其中1表示存在屬于該類(lèi)別的那一行。
很顯然,從機(jī)器學(xué)習(xí)的角度來(lái)看,它并不是一個(gè)對(duì)分類(lèi)變量編碼的很好的選擇。
一般來(lái)說(shuō),維度的數(shù)量越低越好,而這種方法很明顯增加了大量的維度。例如,如果我們要有一列代表美國(guó)的州(比如加州、紐約州),獨(dú)熱編碼就會(huì)增加五十個(gè)維度。
它不僅給數(shù)據(jù)集增加了大量的維度,而且冗余信息太多——1偶爾點(diǎn)綴在零的海洋中。這個(gè)異常稀疏的矩陣,使得它很難處理優(yōu)化問(wèn)題。對(duì)于神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō)尤其如此,這幾十個(gè)空的維度使得神經(jīng)網(wǎng)絡(luò)的優(yōu)化器在錯(cuò)誤空間中尋找最優(yōu)解時(shí)就會(huì)遇到許多麻煩。
更糟糕的是,每一個(gè)信息稀疏的列之間都有線性關(guān)系。這意味著一個(gè)變量可以很容易地使用其他變量進(jìn)行預(yù)測(cè),高維度下這會(huì)造成的并行性和多線性問(wèn)題。
最優(yōu)的數(shù)據(jù)集由獨(dú)立且包含有價(jià)值信息的特征組成,而獨(dú)熱編碼張成的空間卻不是這樣的。
當(dāng)然,如果只有三個(gè)或四個(gè)類(lèi)別,獨(dú)熱編碼可能還不是那么糟糕,但根據(jù)數(shù)據(jù)集的相對(duì)大小,探索其他選擇也是值得。
目標(biāo)編碼是表示分類(lèi)列的一種非常有效的方法,只占用一個(gè)特征的空間。其又稱(chēng)均值編碼,列中的每個(gè)值都用該類(lèi)別的目標(biāo)均值代替。這樣可以更直接地表示分類(lèi)變量和目標(biāo)變量之間的關(guān)系,是一種非常流行的技術(shù)(尤其是在Kaggle比賽上)。
這種編碼方法有一些缺點(diǎn)。首先,它使模型更難學(xué)習(xí)均值編碼變量和另一變量之間的關(guān)系,它只根據(jù)一列變量與目標(biāo)變量的關(guān)系來(lái)得出相似性,這既可能是個(gè)優(yōu)點(diǎn)也可能是個(gè)缺點(diǎn)。
但主要的是,這種編碼方法會(huì)對(duì)變量y非常敏感,從而影響模型提取編碼信息的能力。
由于類(lèi)別的每一個(gè)值都被替換為相同的數(shù)值,模型可能會(huì)傾向于過(guò)擬合它所見(jiàn)的編碼值(比如將0.8與0.79聯(lián)系成完全不同的東西)。這就是將連續(xù)值視為大量重復(fù)類(lèi)的影響。
因此,需要仔細(xì)監(jiān)控y變量是否存在異常值。
要實(shí)現(xiàn)這一點(diǎn),可以使用category_encoders庫(kù)。由于目標(biāo)編碼器是一種監(jiān)督方法,所以它需要包含x和y兩個(gè)值才能訓(xùn)練。
留一法編碼試圖彌補(bǔ)這種對(duì)y變量的依賴(lài),并通過(guò)排除當(dāng)前行的數(shù)值來(lái)計(jì)算平均值作為編碼,使數(shù)值更加多樣化。這種方法可以消除離群值的影響,并生成了更多樣化的編碼值。
由于該方法顯示了每個(gè)編碼類(lèi)相同的數(shù)值和范圍,因此他可以學(xué)到更好的泛化能力。
與其他方法一樣,留一法編碼可以通過(guò)category_encoders庫(kù)中的LeaveOneOutEncoder來(lái)進(jìn)行實(shí)現(xiàn)。
另一種能實(shí)現(xiàn)類(lèi)似效果的方法是在編碼中加入正態(tài)分布的噪聲,其中正態(tài)分布的標(biāo)準(zhǔn)差是一個(gè)可調(diào)節(jié)的參數(shù)。
貝葉斯標(biāo)簽編碼是一種更偏向數(shù)學(xué)的方法,將標(biāo)簽作為一種編碼方法。只使用平均數(shù)作為度量可能存在一定的欺騙性,因此貝葉斯標(biāo)簽編碼尋求納入標(biāo)簽變量分布的其他統(tǒng)計(jì)量,例如它的方差或偏度--被稱(chēng)為 "高矩"。
然后通過(guò)貝葉斯模型將這些分布的屬性納入其中,從而能夠產(chǎn)生一個(gè)更了解類(lèi)別標(biāo)簽分布的編碼。但是,這種方法結(jié)果可解釋性較差。
證據(jù)權(quán)重是對(duì)分類(lèi)獨(dú)立變量和因變量之間的關(guān)系的另一種微妙的表現(xiàn)。WoE是從信用評(píng)分領(lǐng)域演變而來(lái)的。它用于衡量違約客戶和還款客戶之間的差異。證據(jù)權(quán)重的數(shù)學(xué)定義是幾率比的自然對(duì)數(shù):
ln (% of non events / % of events) |
WoE越高,表明事件發(fā)生的可能性越大。'非事件'是那些不在某個(gè)類(lèi)別中的事件發(fā)生的百分比。對(duì)于邏輯回歸來(lái)說(shuō),使用證據(jù)權(quán)重建立與因變量的單調(diào)關(guān)系(永遠(yuǎn)不會(huì)停止向一個(gè)方向發(fā)展),并確保邏輯尺度上的類(lèi)別,這是很自然的一件事。WoE還是另一個(gè)度量指標(biāo) "信息值 "的關(guān)鍵組成部分,它可以衡量一個(gè)特征能為預(yù)測(cè)提供的信息量大小。
這些方法都是有監(jiān)督的編碼器,或者說(shuō)是考慮目標(biāo)變量的編碼方法,因此他們?cè)陬A(yù)測(cè)任務(wù)中大都效果較好。然而當(dāng)需要進(jìn)行無(wú)監(jiān)督分析時(shí),他們就未必能取得類(lèi)似的結(jié)果。
非線性PCA是一種通過(guò)使用分類(lèi)量化來(lái)處理分類(lèi)變量的PCA方法。它可以為類(lèi)別找到最佳的數(shù)值,從而使常規(guī)PCA的性能(解釋方差)最大化。在下面閱讀更多信息:
超越普通PCA:非線性主成分分析
在這里的類(lèi)別編碼文檔中探索其他幾種編碼選項(xiàng)。
感謝您的閱讀!
雷鋒字幕組是一個(gè)由 AI 愛(ài)好者組成的翻譯團(tuán)隊(duì),匯聚五百多位志愿者的力量,分享最新的海外AI資訊,交流關(guān)于人工智能技術(shù)領(lǐng)域的行業(yè)變革與技術(shù)創(chuàng)新的見(jiàn)解。
團(tuán)隊(duì)成員有大數(shù)據(jù)專(zhuān)家、算法工程師、圖像處理工程師、產(chǎn)品經(jīng)理、產(chǎn)品運(yùn)營(yíng)、IT咨詢(xún)?nèi)?、在校師生;志愿者們?lái)自IBM、AVL、Adobe、阿里、百度等知名企業(yè),北大、清華、港大、中科院、南卡羅萊納大學(xué)、早稻田大學(xué)等海內(nèi)外高校研究所。
如果,你也是位熱愛(ài)分享的AI愛(ài)好者。歡迎與雷鋒字幕組一起,學(xué)習(xí)新知,分享成長(zhǎng)。
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。