<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在機器學習演演算法中,我們經常會遇到分類特徵,例如:人的性別有男女,祖國有中國,美國,法國等。 這些特徵值並不是連續的,而是離散的,無序的。
如果要作為機器學習演演算法的輸入,通常我們需要對其進行特徵數位化。什麼是特徵數位化呢?例如:
性別特徵:["男","女"]
祖國特徵:["中國","美國,"法國"]
運動特徵:["足球","籃球","羽毛球","乒乓球"]
假如某個樣本(某個人),他的特徵是["男","中國","乒乓球"] ,我們可以用 [0,0,4] 來表示,但是這樣的特徵處理並不能直接放入機器學習演演算法中。因為類別之間是無序的。
獨熱編碼即 One-Hot 編碼,又稱一位有效編碼。其方法是使用 N位 狀態暫存器來對 N個狀態 進行編碼,每個狀態都有它獨立的暫存器位,並且在任意時候,其中只有一位有效。
One-Hot 編碼是分類變數作為二進位制向量的表示。
(1) 將分類值對映到整數值。
(2) 然後,每個整數值被表示為二進位制向量,除了整數的索引之外,它都是零值,它被標記為1。
舉個例子,假設我們有四個樣本(行),每個樣本有三個特徵(列),如圖:
上述feature_1有兩種可能的取值,比如是男/女,這裡男用1表示,女用2表示。feature_2 和 feature_3 各有4種取值(狀態)。
one-hot 編碼就是保證每個樣本中的單個特徵只有1位處於狀態1,其他的都是0。
上述狀態用 one-hot 編碼如下圖所示:
按照 N位狀態暫存器 來 對N個狀態 進行編碼的原理,處理後應該是這樣的
性別特徵:["男","女"] (這裡只有兩個特徵,所以 N=2):
男 => 10
女 => 01
祖國特徵:["中國","美國,"法國"](N=3):
中國 => 100
美國 => 010
法國 => 001
運動特徵:["足球","籃球","羽毛球","乒乓球"](N=4):
足球 => 1000
籃球 => 0100
羽毛球 => 0010
乒乓球 => 0001
所以,當一個樣本為 ["男","中國","乒乓球"] 的時候,完整的特徵數位化的結果為:
[1,0,1,0,0,0,0,0,1]
下圖可能會更好理解:
python 程式碼範例:
from sklearn import preprocessing enc = preprocessing.OneHotEncoder() enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]]) # 訓練。這裡共有4個資料,3種特徵 array = enc.transform([[0,1,3]]).toarray() # 測試。這裡使用1個新資料來測試 print array # [[ 1 0 0 1 0 0 0 0 1]] # 獨熱編碼結果
以上對應關係可以解釋為下圖:
(1) 解決了 分類器不好處理離散資料 的問題。
a. 歐式空間。在迴歸,分類,聚類等機器學習演演算法中,特徵之間距離計算 或 相似度計算是非常重要的,而我們常用的距離或相似度的計算都是在歐式空間的相似度計算,計算餘弦相似性,基於的就是歐式空間。
b. one-hot 編碼。使用 one-hot 編碼,將離散特徵的取值擴充套件到了歐式空間,離散特徵的某個取值 就 對應歐式空間的某個點。將離散型特徵使用 one-hot 編碼,確實會讓特徵之間的距離計算更加合理。
(2) 在一定程度上也起到了 擴充特徵 的作用。
在文字特徵表示上有些缺點就非常突出了。
(1) 它是一個詞袋模型,不考慮詞與詞之間的順序(文字中詞的順序資訊也是很重要的);
(2) 它假設詞與詞相互獨立(在大多數情況下,詞與詞是相互影響的);
(3) 它得到的特徵是離散稀疏的 (這個問題最嚴重)。
上述第3點展開:
(1) 為什麼得到的特徵是離散稀疏的?
例如,如果將世界所有城市名稱作為語料庫的話,那這個向量會過於稀疏,並且會造成維度災難。如下:
杭州 [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]
在語料庫中,杭州、上海、寧波、北京各對應一個向量,向量中只有一個值為1,其餘都為0。
(2)能不能把詞向量的維度變小呢?
a) Dristributed representation:
可以解決 One hot representation 的問題,它的思路是:
1. 通過訓練,將每個詞都對映到一個較短的詞向量上來。
2. 所有的這些 詞向量 就構成了 向量空間,
3. 進而可以用 普通的統計學的方法 來研究詞與詞之間的關係。
這個較短的詞向量維度是多大呢?這個一般需要我們在訓練時自己來指定。
b) 舉例:
1. 比如將詞彙表裡的詞用 "Royalty", "Masculinity", "Femininity" 和 "Age" 4個維度來表示,King 這個詞對應的詞向量可能是 (0.99,0.99,0.05,0.7)。
2. 在實際情況中,並不能對詞向量的每個維度做一個很好的解釋。
3.將king這個詞從一個可能非常稀疏的向量坐在的空間,對映到現在這個 四維向量 所在的空間,必須滿足以下性質:
(1)這個對映是單射;
(2)對映之後的向量 不會丟失之前的 那種向量 所含的資訊 。
4.這個過程稱為word embedding(詞嵌入),即將高維詞向量嵌入到一個低維空間。如圖:
5.經過我們一系列的降維神操作,有了用 representation 表示的較短的詞向量,我們就可以較容易的分析詞之間的關係了,比如我們將詞的維度降維到 2維,有一個有趣的研究表明,用下圖的詞向量表示我們的詞時,我們可以發現:
6. 出現這種現象的原因是,我們得到最後的詞向量的訓練過程中引入了詞的上下文。舉例:
想到得到 "learning" 的詞向量,但訓練過程中,你同時考慮了它左右的上下文,那麼就可以使 "learning" 帶有語意資訊了。通過這種操作,我們可以得到近義詞,甚至 cat 和它的複數 cats 的向量極其相近。
--------------------------------------------------------------------
參考部落格:
到此這篇關於機器學習資料預處理之獨熱One-Hot編碼及其程式碼詳解的文章就介紹到這了,更多相關one-hot 編碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45