引導序數編碼技術


在資料科學領域進行建模之前,資料準備是必要的步驟。在資料準備過程中,我們必須執行許多活動。其中一項重要的任務是對分類資料進行編碼。眾所周知,現實世界中的大多數資料都具有分類字串值,而大多數機器學習模型僅使用整數值進行操作。但是,某些模型可以使用其他更復雜但仍然可以被模型理解的值。從本質上講,所有模型都執行可以使用各種工具和方法完成的數學運算。但可怕的事實是,數學完全依賴於數字。總之,大多數模型需要數字而不是單詞或其他型別的輸入,這些數字可能是浮點數或整數。在本文中,我們將討論編碼和序數編碼方法。

什麼是編碼?

編碼是將分類資料轉換為整數格式的過程,以便模型可以使用轉換後的分類值來生成和改進預測。

實現序數編碼

當資料中的變數為序數時,使用序數編碼,它將每個標籤轉換為一個整數值,並在編碼資料中描繪標籤的順序。

示例

以下是如何在 Python 中執行此操作的示例。

#Installation !pip install sklearn import pandas as pd import sklearn !pip install category_encoders import category_encoders as ce df=pd.DataFrame({'height':['tall','medium','short','tall','medium',' short','tall','medium','short',]}) # create object of Ordinalencoding encoder= ce.OrdinalEncoder(cols=['height'],return_df=True, mapping=[{'col':'height', 'mapping':{'None':0,'tall':1,'medium':2,'short':3}}]) #Original data print(df) df['transformed'] = encoder.fit_transform(df) print(df)

輸出

height
0    tall
1  medium
2   short
3    tall
4  medium
5   short
6    tall
7  medium
8   short
  height  transformed
0    tall            1
1  medium            2
2   short            3
3    tall            1
4  medium            2
5   short            3
6    tall            1
7  medium            2
8   short            3

獨熱編碼

在獨熱編碼中,每個分類變數的每個類別都會收到一個新的變數。每個類別都使用二進位制整數(0 或 1)進行對映。當資料為名義資料時,使用這種型別的編碼。虛擬變數可以被認為是新生成的二進位制特徵。熱編碼後使用的虛擬變數的數量取決於資料中包含多少個類別。以下是如何在 Python 中執行此操作的示例。

示例

!pip install sklearn import pandas as pd import sklearn !pip install category_encoders import category_encoders as ce df=pd.DataFrame({'name':[ 'rahul','jay','aman','devesh','ashok','shubham','amit' ]}) encoder=ce.OneHotEncoder(cols='name',handle_unknown='return_nan',ret urn_df=True,use_cat_names=True) #Original Data print(df) #Fit and transform Data df_encoded = encoder.fit_transform(df) print(df_encoded)

輸出

     name
0    rahul
1      jay
2     aman
3   devesh
4    ashok
5  shubham
6     amit
name_rahul  name_jay  name_aman  name_devesh  name_ashok  name_shubham  \
0         1.0       0.0        0.0          0.0         0.0           0.0   
1         0.0       1.0        0.0          0.0         0.0           0.0   
2         0.0       0.0        1.0          0.0         0.0           0.0   
3         0.0       0.0        0.0          1.0         0.0           0.0   
4         0.0       0.0        0.0          0.0         1.0           0.0   
5         0.0       0.0        0.0          0.0         0.0           1.0   
6         0.0       0.0        0.0          0.0         0.0           0.0   

   name_amit  
0        0.0  
1        0.0  
2        0.0  
3        0.0  
4        0.0  
5        0.0  
6        1.0  

結論

總之,我們可以說編碼在機器學習中起著重要作用。大多數情況下,現實世界的挑戰要求我們僅選擇一種編碼技術,以便模型能夠正常工作。使用各種編碼器可以改變模型的輸出。在這篇文章中,我們已經看到了各種編碼技術以及如何使用 category encoders 包和 Python 來應用它們。

更新於:2022年12月1日

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告