亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2021-10-14 02:33:44劉輝玲
        關(guān)鍵詞:模型

        劉輝玲 陶 潔 邱 磊

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

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

        1 One-hot編碼

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

        表1 One-hot編碼示例

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

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

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

        在常見(jiàn)邏輯回歸模型[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,使得類(lèi)別值的管理更加精細(xì),可有效地加速權(quán)值參數(shù)迭代和更新,可有效地降低類(lèi)別值對(duì)模型的穩(wěn)定性的影響,從而可有效地拓展邏輯回歸模型的非線性能力。

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

        scikit-learn是用Python實(shí)現(xiàn)的機(jī)器學(xué)習(xí)算法庫(kù),簡(jiǎn)記為sklearn,對(duì)One-hot編碼的實(shí)現(xiàn)提供了支持。實(shí)現(xiàn)One-hot編碼的過(guò)程可分為以下三個(gè)步驟。首先,One-hot編碼屬于變量預(yù)處理,在實(shí)現(xiàn)時(shí)需要import sklearn.preprocessing包。另外,還需導(dǎo)入numpy包完成一些相關(guān)處理。其次,對(duì)類(lèi)別值進(jìn)行編號(hào)。該過(guò)程可使用LabelEncoder類(lèi)的fit_transform()實(shí)現(xiàn),該方法的作用將離散型的數(shù)據(jù)轉(zhuǎn)換成0到n-1之間的數(shù),這里n是類(lèi)別的所有不同取值的個(gè)數(shù)。最后,使用OneHotEncoder類(lèi)提供的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ì)于來(lái)自多個(gè)類(lèi)別集的多類(lèi)別值的組合,例如["中國(guó)","兵乓球","女"]中的類(lèi)別值分別來(lái)自{"中國(guó)","美國(guó)","巴西","加拿大"}、{"兵乓球","籃球","足球","冰球"}和{"男","女"}等三個(gè)類(lèi)別集,其實(shí)現(xiàn)過(guò)程可分為以下四步。首先,依次采用LabelEncoder類(lèi)的fit_transform()對(duì)每一類(lèi)別值進(jìn)行編號(hào)。其次,類(lèi)別值組合轉(zhuǎn)換為相應(yīng)的標(biāo)簽編碼的組合。第三、創(chuàng)建并初始化preprocessing.OneHotEncoder類(lèi)的實(shí)例。在初始化時(shí),可指定每一個(gè)類(lèi)別集中的類(lèi)別總個(gè)數(shù)。最后,使用OneHotEncoder類(lèi)提供的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ì)于多類(lèi)別值組合的One-hot編碼,其結(jié)果是由若干單個(gè)類(lèi)別值的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ì)類(lèi)別的取值予以區(qū)分,區(qū)分該類(lèi)別是屬于定序類(lèi)型(ordinal feature)還是定類(lèi)類(lèi)型(categorical feature)。定類(lèi)類(lèi)型的取值沒(méi)有先后邏輯關(guān)系。諸如男,女等形式的取值,適合采用One-hot編碼。而對(duì)于定序類(lèi)型的取值,諸如小學(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ù)值大小不敏感的模型,如樹(shù)模型,不適合采用One-hot編碼。

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

        3 結(jié) 語(yǔ)

        猜你喜歡
        模型
        一半模型
        一種去中心化的域名服務(wù)本地化模型
        適用于BDS-3 PPP的隨機(jī)模型
        提煉模型 突破難點(diǎn)
        函數(shù)模型及應(yīng)用
        p150Glued在帕金森病模型中的表達(dá)及分布
        函數(shù)模型及應(yīng)用
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        3D打印中的模型分割與打包
        国产小视频一区二区三区| 精品人妻av一区二区三区 | 91国在线啪精品一区| 日韩无码尤物视频| 亚洲成人激情在线影院| 少妇我被躁爽到高潮在线影片| 日本女优中文字幕在线播放| 无套内内射视频网站| 国产网红主播无码精品| 国产suv精品一区二人妻| 国产精品成年片在线观看| 国产成人精品日本亚洲专区6| AV中文码一区二区三区| 草逼视频污的网站免费| 又色又爽又黄高潮的免费视频| 无遮高潮国产免费观看| 国产免费一级高清淫日本片| 免费一区二区三区av| 国产精品久久婷婷免费观看| 日韩av午夜在线观看| 国产精品ⅴ无码大片在线看| 九九精品无码专区免费| 日韩精品成人一区二区三区| 精品国产品香蕉在线| 国产性生交xxxxx无码| 亚洲狠狠婷婷综合久久| 亚洲精品一二区| 日本一区二区在线播放| 亚洲av熟女一区二区三区站| 国产亚洲精品成人aa片新蒲金| 亚洲av成人无码网站大全| 亚洲美腿丝袜综合一区| mm在线精品视频| 国产精品亚洲综合久久系列| 精品国产性色无码av网站| 最好看的最新高清中文视频| 91热视频在线观看| 亚洲国产女性内射第一区二区| 日日婷婷夜日日天干| 亚洲日产无码中文字幕| 特级国产一区二区三区|