超越one-hot:對類別變量的探索

原文地址:http://www.kdnuggets.com/2015/12/beyond-one-hot-exploration-categorical-variables.html

通過給機(jī)器學(xué)習(xí)算法的每一個類別分配一個整數(shù)豌汇,將類別變量編碼為數(shù)值變量悴了。在這里馁龟,我們探索轉(zhuǎn)換類別變量的不同方式及其對多維數(shù)據(jù)的影響。

在機(jī)器學(xué)習(xí)中怠蹂,數(shù)據(jù)是國王。用來預(yù)測數(shù)據(jù)對算法和模型很重要,也很有趣侠鳄,但是機(jī)器學(xué)習(xí)仍然秉承著“garbage-in-garbage-out”乎莉∷徒玻考慮到這一點,讓我們看一小部分輸入數(shù)據(jù):類別變量惋啃。

類別變量是表示固定數(shù)量的可能性的變量哼鬓,而不是連續(xù)數(shù)字的變量。每個值代表那些有限組或類別的一個衡量標(biāo)準(zhǔn)边灭。它們不同于有序變量的地方在于不論類別有多少异希,從一個類別到另一個類別的距離始終是相等的,而有序變量則存在某種排序規(guī)則绒瘦。例如:

1. 有序變量:低称簿,中,高

2.類別變量:喬治亞惰帽,南卡羅來納憨降,……,紐約

我們后續(xù)使用的機(jī)器學(xué)習(xí)算法往往更傾向于使用數(shù)字作輸入该酗,而非字符串授药,因此我們需要編寫一些方法進(jìn)行轉(zhuǎn)換。

快速感知:本文反復(fù)出現(xiàn)的一個概念就是維度的概念垂涯。簡單來說烁焙,就是數(shù)據(jù)表中的列數(shù),但是它在最終模型中具有顯著的下游效應(yīng)耕赘。在極端情況下骄蝇,“維度的詛咒(curse of dimensionality)”概念認(rèn)為在高緯空間內(nèi)事物會停止正常工作。即使在相對低緯的問題中操骡,具有更多維度的數(shù)據(jù)集需要更多的參數(shù)供模型理解九火,這意味著需要更多數(shù)據(jù)才能學(xué)好這些參數(shù)。如果數(shù)據(jù)量固定册招,則只添加額外的維度而不增加數(shù)據(jù)量會對最終模型的精度造成不利影響岔激。

回到手頭的問題:我們想將類別別量編碼成數(shù)字變量,但是我們關(guān)心維度的問題是掰。最容易想到的答案就是給每個類別分配一個整數(shù)(假設(shè)我們知道所有可能的類別)虑鼎。這稱為順序編碼。它不會為問題增加維度,但是無形中增加了變量可能原本不存在的順序炫彩。

方法

為了進(jìn)行好壞評估匾七,我寫了一個用不同方法測試同一數(shù)據(jù)集的python腳本。首先概述整個過程:

(1)先收集一個有類別變量的分類問題的數(shù)據(jù)集

(2)使用一些編碼方法將X數(shù)據(jù)集轉(zhuǎn)換為數(shù)值

(3)用scikit-learn的交叉驗證分?jǐn)?shù)和BernouliNB()分類器生成數(shù)據(jù)集的分?jǐn)?shù)(譯者注:一種評估方式)江兢。每個數(shù)據(jù)集重復(fù)10x次昨忆,并使用所有分?jǐn)?shù)的平均集

(4)存儲數(shù)據(jù)集的維度,平均分?jǐn)?shù)和編碼時間杉允,然后生成分?jǐn)?shù)

對UCI數(shù)據(jù)庫的一些數(shù)據(jù)集邑贴,都重復(fù)以上過程。使用的數(shù)據(jù)集如下:

(1)Car Evaluation

(2)Mushrooms

(3)Splice Junctions

我嘗試了七種不同的編碼方式(4-7的描述來自statsmodel的文檔):

(1)Ordinal(序列化):如上所述叔磷。

(2)One-Hot:每個類別有一列拢驾,根據(jù)某條數(shù)據(jù)時候包含這一類別用1或0填充。

(3)Binary(二進(jìn)制):首先需要序列化類別世澜,然后將整數(shù)轉(zhuǎn)化為二進(jìn)制編碼独旷,再將二進(jìn)制字符串的數(shù)字拆分成單獨的列。這較one-hot而言使用更小的維度進(jìn)行編碼寥裂,但是有一些距離失真。

(4)Sum:比較給定級別的相關(guān)變量的平均值與所有級別上的相關(guān)變量的總平均值案疲。也就是說封恰,從第一個k-1級別比到k級別,在本例中褐啡,級別1與所有其他級別比較诺舔,級別2與所有其他級別比較,級別3與所有其他級別比較备畦。

(5)Polynomial:在類別變量中低飒,k=4級別多項式的系數(shù)的趨勢是線性、二次或三次的懂盐。這里的類別變量假設(shè)由基本的等間距的數(shù)字變量表示褥赊。因此,這種類型的編碼僅用于等間距的有序分類變量莉恼。

(6)Backward Difference:將一個級別變量的平均數(shù)與上一個級別相比較拌喉。這種類型的編碼適用于標(biāo)稱型變量或有序變量。

(7)Helmert:將一個級別變量的平均數(shù)與前面所有級別的平均數(shù)相比較俐银。因此尿背,“reverse”這一名稱用于對forward Helmert編碼加以區(qū)分。

結(jié)果


結(jié)論

這不是一個詳盡的研究捶惜,但是似乎二進(jìn)制編碼執(zhí)行更好些田藐,沒有明顯的維度增加。如預(yù)期的一樣,有序化執(zhí)行不理想汽久。

如想查看源代碼鹤竭,添加或建議新數(shù)據(jù)集或編碼方式,請見github回窘,歡迎貢獻(xiàn)诺擅、評論與建議。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啡直,一起剝皮案震驚了整個濱河市烁涌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酒觅,老刑警劉巖撮执,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異舷丹,居然都是意外死亡抒钱,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進(jìn)店門颜凯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谋币,“玉大人,你說我怎么就攤上這事症概±俣睿” “怎么了?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵彼城,是天一觀的道長诅蝶。 經(jīng)常有香客問我,道長募壕,這世上最難降的妖魔是什么调炬? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮舱馅,結(jié)果婚禮上缰泡,老公的妹妹穿的比我還像新娘。我一直安慰自己习柠,他們只是感情好匀谣,可當(dāng)我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著资溃,像睡著了一般武翎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上溶锭,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天宝恶,我揣著相機(jī)與錄音,去河邊找鬼。 笑死垫毙,一個胖子當(dāng)著我的面吹牛霹疫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播综芥,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼丽蝎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了膀藐?” 一聲冷哼從身側(cè)響起屠阻,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎额各,沒想到半個月后国觉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡虾啦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年麻诀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片傲醉。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡蝇闭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出硬毕,到底是詐尸還是另有隱情丁眼,我是刑警寧澤,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布昭殉,位于F島的核電站,受9級特大地震影響藐守,放射性物質(zhì)發(fā)生泄漏挪丢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一卢厂、第九天 我趴在偏房一處隱蔽的房頂上張望乾蓬。 院中可真熱鬧,春花似錦慎恒、人聲如沸任内。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽死嗦。三九已至,卻和暖如春粒氧,著一層夾襖步出監(jiān)牢的瞬間越除,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留摘盆,地道東北人翼雀。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像孩擂,于是被迫代替她去往敵國和親狼渊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內(nèi)容