1.什么是One_Hot?
對(duì)于這個(gè)問題睬隶,之前谷歌了一下愉烙,還涉及寄存器了(one-hot編碼是N位狀態(tài)寄存器為N個(gè)狀態(tài)進(jìn)行編碼的方式)。是嗜。真的無語愈案。這里不說那些很底層的,我們只需要了解one-hot編碼是將類別變量轉(zhuǎn)換為機(jī)器學(xué)習(xí)算法中容易處理的一種形式鹅搪!
概念太抽象了站绪,對(duì)太抽了,那么從實(shí)際例子來說明丽柿。
如下我們有兩個(gè)特征:我們看到有兩個(gè)特證名為:animal與food恢准,解釋一下兩列值意思,第一列代表的是動(dòng)物的名字甫题,第二列是食物的個(gè)數(shù)馁筐,比如第一行cat 2 描述為貓吃了兩個(gè)食物,這里是測試數(shù)據(jù)幔睬,主要是想通過眯漩,這些數(shù)據(jù)給予直觀的認(rèn)識(shí)及實(shí)際操作。
而對(duì)上述數(shù)據(jù)做one-hot編碼后得結(jié)果為:animal列數(shù)據(jù)類型是字符串麻顶,而第二列是數(shù)值型,如果我們能將這些特征值用0/1表示舱卡,是不是在機(jī)器學(xué)習(xí)中辅肾,對(duì)這些非連續(xù)值非常有幫助。
綜上轮锥,我們推論出矫钓,如果你在處理的數(shù)據(jù)中,通過特征工程這一步操作舍杜,能夠?qū)⑻卣鞯念愋团袆e出來新娜,哪些是連續(xù)的,哪些是非連續(xù)的既绩,那么我們就可以對(duì)它進(jìn)行特殊處理概龄,比如此處的one-hot編碼!
2.One_Hot編碼處理離散特征
在使用one-hot編碼中饲握,我們可以將離散特征的取值擴(kuò)展到歐式空間私杜,在機(jī)器學(xué)習(xí)中蚕键,我們的研究范圍就是在歐式空間中,首先這一步衰粹,保證了能夠適用于機(jī)器學(xué)習(xí)中锣光;而;另外了對(duì)于one-hot處理的離散的特征的某個(gè)取值也就對(duì)應(yīng)了歐式空間的某個(gè)點(diǎn)铝耻!
那么對(duì)于上面這句話誊爹,你會(huì)有很多疑問,比如:為何one-hot編碼能將離散特征映射到歐式空間瓢捉?
原因是频丘,在統(tǒng)計(jì)機(jī)器學(xué)習(xí)算法中的回歸,分類這些問題中泊柬,特征之間距離的計(jì)算或相似度計(jì)算非常重要椎镣,比如大家常用的k-means,而我們常用的這些計(jì)算都在歐式空間中進(jìn)行相似度計(jì)算兽赁。換句話說状答,就是我上面說的研究范圍在歐式空間,保證了one-hot編碼的成立刀崖!
原文地址:https://zhuanlan.zhihu.com/p/47072174