• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Python的One-hot編碼的實(shí)現(xiàn)

      2021-10-14 02:33:44劉輝玲
      關(guān)鍵詞:權(quán)值類別分量

      劉輝玲 陶 潔 邱 磊

      (武漢船舶職業(yè)技術(shù)學(xué)院,湖北武漢 430050)

      在數(shù)據(jù)處理過程中,諸多的類別型數(shù)據(jù)常采用文本數(shù)據(jù)的形式,除了決策樹等少量模型之外,其他模型如邏輯回歸、支持向量機(jī)等一般都無法直接使用,其處理方式是將文本數(shù)據(jù)轉(zhuǎn)換成數(shù)值數(shù)據(jù)。形如{"男","女"}、{"計(jì)算機(jī)系","數(shù)學(xué)系","物理系"……,"經(jīng)濟(jì)系","管理系"}等集合形式的類別值,在表征為數(shù)值數(shù)據(jù)時(shí),其常用方式采用標(biāo)簽編碼(Label encoding)方式,是按類別值在集合中的位置順序賦予相應(yīng)的值,一個(gè)含N個(gè)類別的集合,采用[0, N-1]區(qū)間內(nèi)連續(xù)整數(shù)予以編號(hào)。如0表示計(jì)算機(jī)系,1表示數(shù)學(xué)系,2表示物理系,依次類推。類別值數(shù)據(jù)經(jīng)過序號(hào)編碼之后,其本質(zhì)依然是非連續(xù)數(shù)據(jù)。若直接使用,較容易被當(dāng)作為連續(xù)數(shù)值型數(shù)據(jù)進(jìn)行處理,除非編碼得到的數(shù)據(jù)連續(xù)性有實(shí)際意義。 One-hot編碼是解決這個(gè)問題的有效方式之一, 對(duì)于類別值數(shù)據(jù)采用One-hot編碼作數(shù)據(jù)預(yù)處理之后,其在相似度或距離計(jì)算之間更為合理,對(duì)相關(guān)的機(jī)器模型適用性更好,可用度增強(qiáng)[1-2]。

      1 One-hot編碼

      對(duì)于有N種類別值的集合,One-hot編碼(獨(dú)熱編碼)采用長(zhǎng)度為N位的狀態(tài)寄存器來對(duì)每一個(gè)類別值進(jìn)行編碼,每個(gè)類別值對(duì)應(yīng)一個(gè)獨(dú)立的寄存器位,在任意時(shí)刻只有一個(gè)寄存器位為1,其余為0[3-4]。故One-hot編碼又稱一位有效編碼。以{"中","俄","美","英","法"}為例,其編碼如表1所示。

      表1 One-hot編碼示例

      這5種類別值的編碼分別是[1,0,0,0,0], [0,1,0,0,0], [0,0,0,1,0], [0,0,0,0,1], [0,0,1,0,0]。若類別值集合長(zhǎng)度為N,則每種類別值的One-hot編碼是一個(gè)長(zhǎng)度為N的向量。在任何情況下,每個(gè)向量中只有1個(gè)分量為1,其他分量為0,從而保證了唯一性。

      對(duì)于{"中","俄","美","英","法"}的各類別值,若采用表2所示的標(biāo)簽編碼方式,在計(jì)算兩者之間的距離時(shí),其結(jié)果為 ("中","俄")=1, ("中","美")=2,("中","英")=3,("中","法")=4。上述結(jié)果表明,中和俄兩國(guó)之間的相似度是1,而中法兩國(guó)之間的相似度為4,而事實(shí)上作為類別取值的這些國(guó)家之間的相似度都同。故采用標(biāo)簽編碼來計(jì)算這兩者之間距離不大合理。

      表2 標(biāo)簽編碼示例

      在常見邏輯回歸模型[5]中,對(duì)于連續(xù)變量的而言,其可表示為式(1)。

      (1)

      其中,w為連續(xù)變量x的權(quán)值。

      而采用One-hot編碼后,其邏輯回歸模型可以表示為式(2)。

      (2)

      其中,x1,x2,…,xn是使用One-hot編碼后的分量,w1,w2, …,wn是對(duì)應(yīng)分量的權(quán)值。

      式(1)采用1個(gè)權(quán)值管理連續(xù)變量x,而式(2)采用了n個(gè)權(quán)值管理x采用One-hot編碼后的n個(gè)分量x1,x2,…,xn,使得類別值的管理更加精細(xì),可有效地加速權(quán)值參數(shù)迭代和更新,可有效地降低類別值對(duì)模型的穩(wěn)定性的影響,從而可有效地拓展邏輯回歸模型的非線性能力。

      2 One-hot編碼的實(shí)現(xiàn)

      scikit-learn是用Python實(shí)現(xiàn)的機(jī)器學(xué)習(xí)算法庫,簡(jiǎn)記為sklearn,對(duì)One-hot編碼的實(shí)現(xiàn)提供了支持。實(shí)現(xiàn)One-hot編碼的過程可分為以下三個(gè)步驟。首先,One-hot編碼屬于變量預(yù)處理,在實(shí)現(xiàn)時(shí)需要import sklearn.preprocessing包。另外,還需導(dǎo)入numpy包完成一些相關(guān)處理。其次,對(duì)類別值進(jìn)行編號(hào)。該過程可使用LabelEncoder類的fit_transform()實(shí)現(xiàn),該方法的作用將離散型的數(shù)據(jù)轉(zhuǎn)換成0到n-1之間的數(shù),這里n是類別的所有不同取值的個(gè)數(shù)。最后,使用OneHotEncoder類提供的fit_transform()實(shí)現(xiàn)One-hot編碼。其將前一步轉(zhuǎn)換得到的每個(gè)整數(shù)值被表示為一個(gè)長(zhǎng)度為n的二進(jìn)制向量。這些二進(jìn)制向量互不相同,每個(gè)向量中只有1個(gè)分量為1,其它分量為0,這些分量互斥,每次只有一個(gè)激活。其代碼如圖1所示:

      圖1 One-hot編碼的實(shí)現(xiàn)

      從上例的結(jié)果中可以看出,'中'、'俄'、'美'、'英'和'法'對(duì)應(yīng)的標(biāo)簽編碼分別是0,1,3,4,2,其One-hot編碼向量為[1,0,0,0,0,],[0,1,0,0,0,],[0,0,0,1,0,],[0,0,0,0,1,]和[0,0,1,0,0,]。

      對(duì)于來自多個(gè)類別集的多類別值的組合,例如["中國(guó)","兵乓球","女"]中的類別值分別來自{"中國(guó)","美國(guó)","巴西","加拿大"}、{"兵乓球","籃球","足球","冰球"}和{"男","女"}等三個(gè)類別集,其實(shí)現(xiàn)過程可分為以下四步。首先,依次采用LabelEncoder類的fit_transform()對(duì)每一類別值進(jìn)行編號(hào)。其次,類別值組合轉(zhuǎn)換為相應(yīng)的標(biāo)簽編碼的組合。第三、創(chuàng)建并初始化preprocessing.OneHotEncoder類的實(shí)例。在初始化時(shí),可指定每一個(gè)類別集中的類別總個(gè)數(shù)。最后,使用OneHotEncoder類提供的fit_transform()實(shí)現(xiàn)One-hot編碼。其實(shí)現(xiàn)代碼如圖2所示。

      圖2 多值組合的One-hot編碼的實(shí)現(xiàn)

      [0,0,0,1]對(duì)應(yīng)第一個(gè)分量的標(biāo)簽編碼3,緊跟的[0,0,1,0]對(duì)應(yīng)的第二個(gè)分量的標(biāo)簽編碼2,最后的兩個(gè)數(shù)[0,1,]對(duì)應(yīng)最后一個(gè)分量的標(biāo)簽編碼1。從上例的結(jié)果中可以看出,對(duì)于多類別值組合的One-hot編碼,其結(jié)果是由若干單個(gè)類別值的One-hot編碼組合而成。

      在圖1所示的集合{"中","俄","美","英","法"}中的每個(gè)國(guó)家的One-hot編碼是一個(gè)5維向量,當(dāng)集合包含全球所有的N個(gè)國(guó)家時(shí),其One-hot編碼的維度也為N。其編碼結(jié)果異常稀疏,少量有用的1零散地分布在大量的0之中。從表1中可以看出,每一行的各分量之和為1,即"中","俄","美","英"和"法"之和為1,每個(gè)分量都可用其它分量進(jìn)行表示和預(yù)測(cè),產(chǎn)生了虛擬變量陷阱,此時(shí)可采用啞變量編碼或使用L2正則化手段予以約束。

      在實(shí)際應(yīng)用中,需對(duì)類別的取值予以區(qū)分,區(qū)分該類別是屬于定序類型(ordinal feature)還是定類類型(categorical feature)。定類類型的取值沒有先后邏輯關(guān)系。諸如男,女等形式的取值,適合采用One-hot編碼。而對(duì)于定序類型的取值,諸如小學(xué)、初中和高中等形式的取值,在邏輯上存在一定的排序關(guān)系,適合采用標(biāo)簽編碼,標(biāo)簽編碼中的數(shù)字順序不破壞原有的邏輯關(guān)系。數(shù)據(jù)應(yīng)用所采用的模型也是數(shù)據(jù)編碼的依據(jù)。對(duì)數(shù)值大小敏感的模型,適合采用One-hot編碼。如邏輯回歸模型和支持向量機(jī)模型的損失函數(shù)對(duì)數(shù)值大小敏感,并且變量間的數(shù)值大小是有比較意義的。對(duì)數(shù)值大小不敏感的模型,如樹模型,不適合采用One-hot編碼。

      One-hot編碼會(huì)增加數(shù)據(jù)的維度,尤其是當(dāng)類別取值很多時(shí),將大幅增加維度。此時(shí)可采用按類別特征的意義合并或類別的頻次合并,特征哈希、主成分分析(PCA)降維、低維嵌入等手段進(jìn)行預(yù)處理,從而增強(qiáng)One-hot編碼的應(yīng)用。

      3 結(jié) 語

      猜你喜歡
      權(quán)值類別分量
      一種融合時(shí)間權(quán)值和用戶行為序列的電影推薦模型
      帽子的分量
      CONTENTS
      CONTENTS
      一物千斤
      智族GQ(2019年9期)2019-10-28 08:16:21
      論《哈姆雷特》中良心的分量
      分量
      基于權(quán)值動(dòng)量的RBM加速學(xué)習(xí)算法研究
      服務(wù)類別
      論類別股東會(huì)
      商事法論集(2014年1期)2014-06-27 01:20:42
      吉首市| 伊金霍洛旗| 尼勒克县| 松溪县| 黄平县| 于都县| 壤塘县| 长治县| 禹州市| 香港 | 通许县| 江永县| 建昌县| 义乌市| 郧西县| 苗栗县| 南宫市| 乌拉特后旗| 扶余县| 五原县| 五华县| 平定县| 高清| 湘西| 阿拉尔市| 怀柔区| 综艺| 策勒县| 伊宁市| 云南省| 台湾省| 安塞县| 喀喇| 射洪县| 丰都县| 平武县| 大姚县| 东兰县| 徐闻县| 长沙市| 新野县|