成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

機(jī)器學(xué)習(xí)數(shù)據(jù)處理One-Hot編碼詳解

89542767 / 1163人閱讀


  大家都知道,最近人工智能是比較火熱的,那么,人工智能主要應(yīng)用的就是機(jī)器學(xué)習(xí),但是機(jī)器學(xué)習(xí)對(duì)其要求還是比較高的。在使用機(jī)器學(xué)習(xí)處理數(shù)據(jù)的時(shí)候,會(huì)經(jīng)常性的用到One-Hot代碼,下面小編就具體給大家介紹下這種編碼的實(shí)現(xiàn)方式。


  1.為什么使用one-hot編碼?


  在人工智能算法中,大家難免會(huì)遇到歸類基本特征,比如說:人的性別有男人女人,國(guó)家有日本,韓國(guó),朝鮮等。這類特征值并不是連續(xù)不斷的,反而是分離的,混亂的。


  目的:


  如果要作為機(jī)器學(xué)習(xí)算法的輸入,通常我們需要對(duì)其進(jìn)行特征數(shù)字化。什么是特征數(shù)字化呢?例如:


  性別特征:["男","女"]


  祖國(guó)特征:["日本","韓國(guó),"朝鮮"]


  運(yùn)動(dòng)特征:["網(wǎng)球","游泳","田徑","排球"]


  瓶頸:


  假如某個(gè)樣本(某個(gè)人),他的特征是["男","中國(guó)","乒乓球"],我們可以用[0,0,4]來表示,但是這樣的特征處理并不能直接放入機(jī)器學(xué)習(xí)算法中。因?yàn)轭悇e之間是無序的。


  2.什么是one-hot編碼?


  定義:


  獨(dú)熱編碼即One-Hot編寫代碼,又被稱為一個(gè)有效的編寫代碼。其方法采用N位狀態(tài)寄存器的方式對(duì)N個(gè)工作狀態(tài)開展編寫代碼,每一個(gè)工作狀態(tài)都有其自主的存儲(chǔ)器位,而且在隨意情況下,在其中僅有一個(gè)有效的。


  理解:


  One-Hot編碼是分類變量作為二進(jìn)制向量的表示。


  (1)將分類值映射到整數(shù)值。


  (2)然后,每個(gè)整數(shù)值被表示為二進(jìn)制向量,除了整數(shù)的索引之外,它都是零值,它被標(biāo)記為1。


  舉例1:


  舉個(gè)例子,假設(shè)我們有四個(gè)樣本(行),每個(gè)樣本有三個(gè)特征(列),如圖:


  上述feature_1有兩種可能的取值,比如是男/女,這里男用1表示,女用2表示。feature_2和feature_3各有4種取值(狀態(tài))。


  one-hot編碼就是保證每個(gè)樣本中的單個(gè)特征只有1位處于狀態(tài)1,其他的都是0。


  上述狀態(tài)用one-hot編碼如下圖所示:

0.png

  舉例2:


  按照N位狀態(tài)寄存器來對(duì)N個(gè)狀態(tài)進(jìn)行編碼的原理,處理后應(yīng)該是這樣的


  性別特征:["男","女"](這里只有兩個(gè)特征,所以N=2):


  男=>10


  女=>01


  祖國(guó)特征:["中國(guó)","美國(guó),"法國(guó)"](N=3):


  中國(guó)=>100


  美國(guó)=>010


  法國(guó)=>001


  運(yùn)動(dòng)特征:["足球","籃球","羽毛球","乒乓球"](N=4):


  足球=>1000


  籃球=>0100


  羽毛球=>0010


  乒乓球=>0001


  所以,當(dāng)一個(gè)樣本為["男","中國(guó)","乒乓球"]的時(shí)候,完整的特征數(shù)字化的結(jié)果為:


  [1,0,1,0,0,0,0,0,1]


  下圖可能會(huì)更好理解:

2.png

  python代碼示例:


 fromsklearnimportpreprocessing
  enc=preprocessing.OneHotEncoder()
  enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]])#訓(xùn)練。這里共有4個(gè)數(shù)據(jù),3種特征
  array=enc.transform([[0,1,3]]).toarray()#測(cè)試。這里使用1個(gè)新數(shù)據(jù)來測(cè)試
  printarray#[[100100001]]#獨(dú)熱編碼結(jié)果


  以上對(duì)應(yīng)關(guān)系可以解釋為下圖:

3.png

  3.one-hot編碼優(yōu)缺點(diǎn)?


  優(yōu)點(diǎn):


  (1)化解了訓(xùn)練樣本不太好解決離散數(shù)據(jù)的情況。


  a.歐幾里得空間。在重歸,歸類,層次聚類等人工智能算法中,基本特征之間距離計(jì)算或相似度計(jì)算是很重要的,也許我們常見的相距或相似性的計(jì)算方法都會(huì)在歐幾里得空間的相似度計(jì)算,計(jì)算余弦相似性,基于的就是歐幾里得空間。


  b.one-hot編寫代碼。使用one-hot編寫代碼,將離散特征的選值擴(kuò)大到了歐幾里得空間,離散特征跟某個(gè)選值就相匹配歐幾里得空間跟某個(gè)點(diǎn)。將離散型基本特征使用one-hot編寫代碼,確實(shí)會(huì)讓基本特征之間的距離計(jì)算更加合理。


  (2)在很大程度上起到了很好的擴(kuò)大特點(diǎn)的功效。


  缺點(diǎn):


  在文本特征表示上有些缺點(diǎn)就非常突出了。


  (1)它是一個(gè)詞袋模型,不考慮詞與詞之間的順序(文本中詞的順序信息也是很重要的);


  (2)它假設(shè)詞與詞相互獨(dú)立(在大多數(shù)情況下,詞與詞是相互影響的);


  (3)它得到的特征是離散稀疏的(這個(gè)問題最嚴(yán)重)。


  上述第3點(diǎn)展開:


  (1)為什么得到的特征是離散稀疏的?


  例如,如果將世界所有城市名稱作為語料庫的話,那這個(gè)向量會(huì)過于稀疏,并且會(huì)造成維度災(zāi)難。如下:


  杭州[0,0,0,0,0,0,0,1,0,……,0,0,0,0,0,0,0]


  上海[0,0,0,0,1,0,0,0,0,……,0,0,0,0,0,0,0]


  寧波[0,0,0,1,0,0,0,0,0,……,0,0,0,0,0,0,0]


  北京[0,0,0,0,0,0,0,0,0,……,1,0,0,0,0,0,0]


  在語料庫中,杭州、上海、寧波、北京各對(duì)應(yīng)一個(gè)向量,向量中只有一個(gè)值為1,其余都為0。


  (2)能不能把詞向量的維度變小呢?


  a)Dristributedrepresentation:


  可以解決Onehotrepresentation的問題,它的思路是:


  1.通過訓(xùn)練,將每個(gè)詞都映射到一個(gè)較短的詞向量上來。


  2.所有的這些詞向量就構(gòu)成了向量空間,


  3.進(jìn)而可以用普通的統(tǒng)計(jì)學(xué)的方法來研究詞與詞之間的關(guān)系。


  這個(gè)較短的詞向量維度是多大呢?這個(gè)一般需要我們?cè)谟?xùn)練時(shí)自己來指定。


  b)舉例:


  1.比如將詞匯表里的詞用"Royalty","Masculinity","Femininity"和"Age"4個(gè)維度來表示,King這個(gè)詞對(duì)應(yīng)的詞向量可能是(0.99,0.99,0.05,0.7)。

4.png

  2.在實(shí)際情況中,并不能對(duì)詞向量的每個(gè)維度做一個(gè)很好的解釋。


  3.將king這個(gè)詞從一個(gè)可能非常稀疏的向量坐在的空間,映射到現(xiàn)在這個(gè)四維向量所在的空間,必須滿足以下性質(zhì):


 ?。?)這個(gè)映射是單射;


 ?。?)映射之后的向量不會(huì)丟失之前的那種向量所含的信息。


  4.這個(gè)過程稱為wordembedding(詞嵌入),即將高維詞向量嵌入到一個(gè)低維空間。如圖:

6.png

  5.經(jīng)過我們一系列的降維神操作,有了用representation表示的較短的詞向量,我們就可以較容易的分析詞之間的關(guān)系了,比如我們將詞的維度降維到2維,有一個(gè)有趣的研究表明,用下圖的詞向量表示我們的詞時(shí),我們可以發(fā)現(xiàn):


  6.出現(xiàn)這種現(xiàn)象的原因是,我們得到最后的詞向量的訓(xùn)練過程中引入了詞的上下文。舉例:

7.png

  想到得到"learning"的詞向量,但訓(xùn)練過程中,你同時(shí)考慮了它左右的上下文,那么就可以使"learning"帶有語義信息了。通過這種操作,我們可以得到近義詞,甚至cat和它的復(fù)數(shù)cats的向量極其相近。


  以上為止,小編就給大家介紹到這里了,希望可以能給各位讀者帶來幫助。


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/127829.html

相關(guān)文章

  • 機(jī)器學(xué)習(xí)“特征編碼”的經(jīng)驗(yàn)分享:魚還是熊掌?

    摘要:特征編碼類型本篇,我們主要說一下分類型特征的編碼方式。下面,我們要對(duì)這個(gè)變量進(jìn)行編碼,在中有現(xiàn)成的獨(dú)熱編碼方法,代碼如下原來的變量被拆分為兩個(gè)單獨(dú)的變量,這兩個(gè)變量就是原來的分類特征值有電梯和無電梯。 作者:xiaoyu 微信公眾號(hào):Python數(shù)據(jù)科學(xué) 知乎:python數(shù)據(jù)分析師 showImg(https://segmentfault.com/img/remote/146000...

    trilever 評(píng)論0 收藏0
  • 機(jī)器學(xué)習(xí)“特征編碼”的經(jīng)驗(yàn)分享:魚還是熊掌?

    摘要:特征編碼類型本篇,我們主要說一下分類型特征的編碼方式。下面,我們要對(duì)這個(gè)變量進(jìn)行編碼,在中有現(xiàn)成的獨(dú)熱編碼方法,代碼如下原來的變量被拆分為兩個(gè)單獨(dú)的變量,這兩個(gè)變量就是原來的分類特征值有電梯和無電梯。 作者:xiaoyu 微信公眾號(hào):Python數(shù)據(jù)科學(xué) 知乎:python數(shù)據(jù)分析師 showImg(https://segmentfault.com/img/remote/146000...

    JinB 評(píng)論0 收藏0
  • 機(jī)器學(xué)習(xí)入門實(shí)戰(zhàn)---預(yù)測(cè)泰坦尼克號(hào)上的生存者并熟悉機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí)

    摘要:背景知識(shí)泰坦尼克號(hào)年月從英國(guó)南安普頓出發(fā),途徑法國(guó),愛爾蘭在美國(guó)大西洋碰觸冰山沉沒,一部分人幸免于難,一部分人沒有生存,這個(gè)案例中就是要通過機(jī)器學(xué)習(xí)的算法來預(yù)測(cè)一下中人的生存狀況。 背景知識(shí): 泰坦尼克號(hào)1912年4月從英國(guó)南安普頓出發(fā),途徑法國(guó),愛爾蘭在美國(guó)大西洋碰觸冰山沉沒,一部分人幸免于難,一部分人沒有生存,這個(gè)案例中就是要通過機(jī)器學(xué)習(xí)的算法來預(yù)測(cè)一下test.csv中418人的...

    鄒立鵬 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<