一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

常見的11個(gè)分類變量編碼方法

新機(jī)器視覺 ? 來源:Deephub IMBA ? 作者:Deephub IMBA ? 2022-11-28 15:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

機(jī)器學(xué)習(xí)算法只接受數(shù)值輸入,所以如果我們遇到分類特征的時(shí)候都會(huì)對(duì)分類特征進(jìn)行編碼,本文總結(jié)了常見的11個(gè)分類變量編碼方法。

1、ONE HOT ENCODING

最流行且常用的編碼方法是One Hot Enoding。一個(gè)具有n個(gè)觀測(cè)值和d個(gè)不同值的單一變量被轉(zhuǎn)換成具有n個(gè)觀測(cè)值的d個(gè)二元變量,每個(gè)二元變量使用一位(0,1)進(jìn)行標(biāo)識(shí)。

例如:

e6159f14-6d8f-11ed-8abf-dac502259ad0.png

編碼后:

最簡(jiǎn)單的實(shí)現(xiàn)是使用pandas的' get_dummies

new_df=pd.get_dummies(columns=[‘Sex’], data=df)

2、Label Encoding

為分類數(shù)據(jù)變量分配一個(gè)唯一標(biāo)識(shí)的整數(shù)。這種方法非常簡(jiǎn)單,但對(duì)于表示無序數(shù)據(jù)的分類變量是可能會(huì)產(chǎn)生問題。比如:具有高值的標(biāo)簽可以比具有低值的標(biāo)簽具有更高的優(yōu)先級(jí)。

例如上面的數(shù)據(jù),我們編碼后得到了下面的結(jié)果:

e623e682-6d8f-11ed-8abf-dac502259ad0.png

sklearn的LabelEncoder 可以直接進(jìn)行轉(zhuǎn)換:

from sklearn.preprocessing import LabelEncoder le=LabelEncoder() df[‘Sex’]=le.fit_transform(df[‘Sex’])

3、Label Binarizer

LabelBinarizer 是一個(gè)用來從多類別列表創(chuàng)建標(biāo)簽矩陣的工具類,它將把一個(gè)列表轉(zhuǎn)換成一個(gè)列數(shù)與輸入集合中惟一值的列數(shù)完全相同的矩陣。

例如這個(gè)數(shù)據(jù):

轉(zhuǎn)化后結(jié)果為:

from sklearn.preprocessing import LabelBinarizer lb = LabelBinarizer() new_df[‘Sex’]=lb.fit_transform(df[‘Sex’])

4、Leave one out Encoding

Leave One Out 編碼時(shí),目標(biāo)分類特征變量對(duì)具有相同值的所有記錄會(huì)被平均以確定目標(biāo)變量的平均值。在訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集之間,編碼算法略有不同。因?yàn)榭紤]到分類的特征記錄被排除在訓(xùn)練數(shù)據(jù)集外,因此被稱為“Leave One Out”。

對(duì)特定類別變量的特定值的編碼如下。

ci = (Σj != i tj / (n — 1 + R)) x (1 + εi) where ci = encoded value for ith record tj = target variable value for jth record n = number of records with the same categorical variable value R = regularization factor εi = zero mean random variable with normal distribution N(0, s)

例如下面的數(shù)據(jù):

e634c3bc-6d8f-11ed-8abf-dac502259ad0.png

編碼后:

為了演示這個(gè)編碼過程,我們創(chuàng)建數(shù)據(jù)集:

importpandasaspd; data = [[‘1’, 120], [‘2’, 120], [‘3’, 140], [‘2’, 100], [‘3’, 70], [‘1’, 100],[‘2’, 60], [‘3’, 110], [‘1’, 100],[‘3’, 70] ] df = pd.DataFrame(data, columns = [‘Dept’,’Yearly Salary’])

然后進(jìn)行編碼:

import category_encoders as ce tenc=ce.TargetEncoder() df_dep=tenc.fit_transform(df[‘Dept’],df[‘Yearly Salary’]) df_dep=df_dep.rename({‘Dept’:’Value’}, axis=1) df_new = df.join(df_dep)

這樣就得到了上面的結(jié)果。

5、Hashing

當(dāng)使用哈希函數(shù)時(shí),字符串將被轉(zhuǎn)換為一個(gè)惟一的哈希值。因?yàn)樗褂玫膬?nèi)存很少可以處理更多的分類數(shù)據(jù)。對(duì)于管理機(jī)器學(xué)習(xí)中的稀疏高維特征,特征哈希是一種有效的方法。它適用于在線學(xué)習(xí)場(chǎng)景,具有快速、簡(jiǎn)單、高效、快速的特點(diǎn)。

例如下面的數(shù)據(jù):

e64761ca-6d8f-11ed-8abf-dac502259ad0.png

編碼后:

e653dbc6-6d8f-11ed-8abf-dac502259ad0.png

代碼如下:

from sklearn.feature_extraction import FeatureHasher # n_features contains the number of bits you want in your hash value. h = FeatureHasher(n_features = 3, input_type =’string’) # transforming the column after fitting hashed_Feature = h.fit_transform(df[‘nom_0’]) hashed_Feature = hashed_Feature.toarray() df = pd.concat([df, pd.DataFrame(hashed_Feature)], axis = 1) df.head(10)

6、Weight of Evidence Encoding

(WoE) 開發(fā)的主要目標(biāo)是創(chuàng)建一個(gè)預(yù)測(cè)模型,用于評(píng)估信貸和金融行業(yè)的貸款違約風(fēng)險(xiǎn)。證據(jù)支持或駁斥理論的程度取決于其證據(jù)權(quán)重或 WOE。

如果P(Goods) / P(Bads) = 1,則WoE為0。如果這個(gè)組的結(jié)果是隨機(jī)的,那么P(Bads) > P(Goods),比值比為1,證據(jù)的權(quán)重(WoE)為0。如果一組中P(Goods) > P(bad),則WoE大于0。

因?yàn)長ogit轉(zhuǎn)換只是概率的對(duì)數(shù),或ln(P(Goods)/P(bad)),所以WoE非常適合于邏輯回歸。當(dāng)在邏輯回歸中使用wo編碼的預(yù)測(cè)因子時(shí),預(yù)測(cè)因子被處理成與編碼到相同的尺度,這樣可以直接比較線性邏輯回歸方程中的變量。

例如下面的數(shù)據(jù):

會(huì)被編碼為:

e69af4fc-6d8f-11ed-8abf-dac502259ad0.png

代碼如下:

from category_encoders import WOEEncoder df = pd.DataFrame({‘cat’: [‘a(chǎn)’, ‘b’, ‘a(chǎn)’, ‘b’, ‘a(chǎn)’, ‘a(chǎn)’, ‘b’, ‘c’, ‘c’], ‘target’: [1, 0, 0, 1, 0, 0, 1, 1, 0]}) woe = WOEEncoder(cols=[‘cat’], random_state=42) X = df[‘cat’] y = df.target encoded_df = woe.fit_transform(X, y)

7、Helmert Encoding

Helmert Encoding將一個(gè)級(jí)別的因變量的平均值與該編碼中所有先前水平的因變量的平均值進(jìn)行比較。

反向 Helmert 編碼是類別編碼器中變體的另一個(gè)名稱。它將因變量的特定水平平均值與其所有先前水平的水平的平均值進(jìn)行比較。

e6adb0ba-6d8f-11ed-8abf-dac502259ad0.png

會(huì)被編碼為:

代碼如下:

import category_encoders as ce encoder=ce.HelmertEncoder(cols=’Dept’) new_df=encoder.fit_transform(df[‘Dept’]) new_hdf=pd.concat([df,new_df], axis=1) new_hdf

8、Cat Boost Encoding

是CatBoost編碼器試圖解決的是目標(biāo)泄漏問題,除了目標(biāo)編碼外,還使用了一個(gè)排序概念。它的工作原理與時(shí)間序列數(shù)據(jù)驗(yàn)證類似。當(dāng)前特征的目標(biāo)概率僅從它之前的行(觀測(cè)值)計(jì)算,這意味著目標(biāo)統(tǒng)計(jì)值依賴于觀測(cè)歷史。

TargetCount:某個(gè)類別特性的目標(biāo)值的總和(到當(dāng)前為止)。

Prior:它的值是恒定的,用(數(shù)據(jù)集中的觀察總數(shù)(即行))/(整個(gè)數(shù)據(jù)集中的目標(biāo)值之和)表示。

featucalculate:到目前為止已經(jīng)看到的、具有與此相同值的分類特征的總數(shù)。

編碼后的結(jié)果如下:

代碼:

import category_encoders category_encoders.cat_boost.CatBoostEncoder(verbose=0, cols=None, drop_invariant=False, return_df=True, handle_unknown=’value’, handle_missing=’value’, random_state=None, sigma=None, a=1) target = df[[‘target’]] train = df.drop(‘target’, axis = 1) # Define catboost encoder cbe_encoder = ce.cat_boost.CatBoostEncoder() # Fit encoder and transform the features cbe_encoder.fit(train, target) train_cbe = cbe_encoder.transform(train)

9、James Stein Encoding

James-Stein 為特征值提供以下加權(quán)平均值:

觀察到的特征值的平均目標(biāo)值。

平均期望值(與特征值無關(guān))。

James-Stein 編碼器將平均值縮小到全局的平均值。該編碼器是基于目標(biāo)的。但是James-Stein 估計(jì)器有缺點(diǎn):它只支持正態(tài)分布。

它只能在給定正態(tài)分布的情況下定義(實(shí)時(shí)情況并非如此)。為了防止這種情況,我們可以使用 beta 分布或使用對(duì)數(shù)-比值比轉(zhuǎn)換二元目標(biāo),就像在 WOE 編碼器中所做的那樣(默認(rèn)使用它,因?yàn)樗芎?jiǎn)單)。

10、M Estimator Encoding:

Target Encoder的一個(gè)更直接的變體是M Estimator Encoding。它只包含一個(gè)超參數(shù)m,它代表正則化冪。m值越大收縮越強(qiáng)。建議m的取值范圍為1 ~ 100。

11、 Sum Encoder

Sum Encoder將類別列的特定級(jí)別的因變量(目標(biāo))的平均值與目標(biāo)的總體平均值進(jìn)行比較。在線性回歸(LR)的模型中,Sum Encoder和ONE HOT ENCODING都是常用的方法。兩種模型對(duì)LR系數(shù)的解釋是不同的,Sum Encoder模型的截距代表了總體平均值(在所有條件下),而系數(shù)很容易被理解為主要效應(yīng)。在OHE模型中,截距代表基線條件的平均值,系數(shù)代表簡(jiǎn)單效應(yīng)(一個(gè)特定條件與基線之間的差)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    969

    瀏覽量

    55797
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    614

    瀏覽量

    28976

原文標(biāo)題:11 個(gè)常見的分類特征的編碼技術(shù)

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    編碼常見的故障詳細(xì)說明

    運(yùn)行和加工精度。本文將詳細(xì)說明編碼常見的故障及其排除方法,以幫助用戶更好地維護(hù)和使用編碼器。 一、信號(hào)輸出故障 1. 無信號(hào)輸出:編碼器無
    的頭像 發(fā)表于 04-16 18:28 ?1216次閱讀

    各類電機(jī)有沒有編碼器?如何分類?

    工業(yè)電機(jī)中,有些電機(jī)自帶編碼器,而有些則不帶。編碼器通常用于提供電機(jī)的位置、速度或方向等反饋信息,以實(shí)現(xiàn)更精確的控制。以下是對(duì)電機(jī)及其編碼器的分類和特點(diǎn)的詳細(xì)分析: ? 一、電機(jī)
    的頭像 發(fā)表于 03-16 11:09 ?775次閱讀

    編碼常見的故障問題及案例分析

    編碼器作為自動(dòng)化控制系統(tǒng)中的重要組件,負(fù)責(zé)將機(jī)械位移轉(zhuǎn)換為電信號(hào),以供上位機(jī)、PLC或驅(qū)動(dòng)器等設(shè)備讀取和處理。然而,在使用過程中,編碼器可能會(huì)遇到多種故障。以下是對(duì)編碼常見故障及案例
    的頭像 發(fā)表于 03-07 11:05 ?1652次閱讀

    半導(dǎo)體激光器的常見分類

    半導(dǎo)體激光器的用途非常廣泛,按照不同的類型,有不同的分類方式。松盛光電來介紹半導(dǎo)體激光器的常見分類情況,來了解一下吧。
    的頭像 發(fā)表于 03-05 11:47 ?747次閱讀
    半導(dǎo)體激光器的<b class='flag-5'>常見分類</b>

    常見xgboost錯(cuò)誤及解決方案

    XGBoost(eXtreme Gradient Boosting)是一種流行的機(jī)器學(xué)習(xí)算法,用于解決分類和回歸問題。盡管它非常強(qiáng)大和靈活,但在使用過程中可能會(huì)遇到一些常見的錯(cuò)誤。以下是一些常見
    的頭像 發(fā)表于 01-19 11:22 ?2538次閱讀

    bcd編碼的優(yōu)缺點(diǎn) bcd編碼常見錯(cuò)誤

    。以下是BCD編碼的一些優(yōu)缺點(diǎn)以及常見的錯(cuò)誤: BCD編碼的優(yōu)點(diǎn): 直觀易懂 :BCD編碼直接將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制,對(duì)于人類來說非常直觀,易于理解和檢查。 減少錯(cuò)誤 :由于BCD
    的頭像 發(fā)表于 12-20 17:17 ?1695次閱讀

    編碼常見故障及解決方法

    ,磁編碼器也不例外。以下是一些磁編碼器的常見故障及其解決方法: 1. 信號(hào)輸出異常 故障現(xiàn)象: 編碼器輸出信號(hào)不穩(wěn)定或無輸出。 信號(hào)輸出與實(shí)
    的頭像 發(fā)表于 11-23 09:11 ?1955次閱讀

    如何優(yōu)化base64編碼的性能

    Base64編碼是一種廣泛使用的編碼方法,用于將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為ASCII字符串。它在許多場(chǎng)景中非常有用,例如在電子郵件、網(wǎng)頁和存儲(chǔ)系統(tǒng)中傳輸二進(jìn)制數(shù)據(jù)。然而,Base64編碼和解碼可能會(huì)對(duì)性能
    的頭像 發(fā)表于 11-10 14:17 ?2165次閱讀

    base64與URL編碼的區(qū)別和聯(lián)系

    景和特點(diǎn)。 Base64編碼 Base64是一種基于64個(gè)可打印字符來表示二進(jìn)制數(shù)據(jù)的編碼方法。它最初被設(shè)計(jì)用于在電子郵件中傳輸二進(jìn)制數(shù)據(jù),但后來也被廣泛應(yīng)用于其他領(lǐng)域,如網(wǎng)絡(luò)通信、數(shù)據(jù)存儲(chǔ)等。 特點(diǎn) 兼容性 :Base64
    的頭像 發(fā)表于 11-10 11:11 ?1499次閱讀

    base64編碼和解碼的使用方法

    Base64編碼是一種基于64個(gè)可打印字符來表示二進(jìn)制數(shù)據(jù)的編碼方法。它將每3個(gè)字節(jié)的二進(jìn)制數(shù)據(jù)編碼為4
    的頭像 發(fā)表于 11-10 10:48 ?4368次閱讀

    編碼常見的類型有哪些?

    不同的分類標(biāo)準(zhǔn),可以有以下幾種主要類型: 一、按工作原理分類 增量式編碼器 : 將位移轉(zhuǎn)換成周期性的電信號(hào),再把這個(gè)電信號(hào)轉(zhuǎn)變成計(jì)數(shù)脈沖,用脈沖的個(gè)數(shù)表示位移的大小。 增量式編碼器在旋
    的頭像 發(fā)表于 10-25 09:30 ?2646次閱讀

    Linux環(huán)境變量配置方法

    Linux上環(huán)境變量配置分為設(shè)置永久變量和臨時(shí)變量兩種。環(huán)境變量設(shè)置方法同時(shí)要考慮環(huán)境Shell類型,不同類型的SHELL設(shè)置臨時(shí)
    的頭像 發(fā)表于 10-23 13:39 ?719次閱讀

    雷達(dá)的基本分類方法

    電子發(fā)燒友網(wǎng)站提供《雷達(dá)的基本分類方法.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 09:09 ?6次下載

    通信電纜常見障礙分類介紹

    分類及其成因,對(duì)于及時(shí)診斷和解決通信電纜故障具有重要意義。以下是對(duì)通信電纜常見障礙分類的詳細(xì)分析。 (1)混線 混線是指同一電纜線對(duì)中的芯線由于絕緣層損壞而相互接觸,或者相鄰線對(duì)的芯線間由于絕緣層損壞而相碰的情
    的頭像 發(fā)表于 08-27 15:23 ?821次閱讀

    伺服控制系統(tǒng)的分類方式和常見伺服控制系統(tǒng)介紹

    伺服控制系統(tǒng)是一種能對(duì)試驗(yàn)裝置的機(jī)械運(yùn)動(dòng)按預(yù)定要求進(jìn)行自動(dòng)控制的操作系統(tǒng)。伺服系統(tǒng)的分類方法很多,常見分類方法有以下三種:1、按被控量參數(shù)
    的頭像 發(fā)表于 08-26 17:46 ?1407次閱讀
    伺服控制系統(tǒng)的<b class='flag-5'>分類</b>方式和<b class='flag-5'>常見</b>伺服控制系統(tǒng)介紹