引導序數編碼技術
在資料科學領域進行建模之前,資料準備是必要的步驟。在資料準備過程中,我們必須執行許多活動。其中一項重要的任務是對分類資料進行編碼。眾所周知,現實世界中的大多數資料都具有分類字串值,而大多數機器學習模型僅使用整數值進行操作。但是,某些模型可以使用其他更復雜但仍然可以被模型理解的值。從本質上講,所有模型都執行可以使用各種工具和方法完成的數學運算。但可怕的事實是,數學完全依賴於數字。總之,大多數模型需要數字而不是單詞或其他型別的輸入,這些數字可能是浮點數或整數。在本文中,我們將討論編碼和序數編碼方法。
什麼是編碼?
編碼是將分類資料轉換為整數格式的過程,以便模型可以使用轉換後的分類值來生成和改進預測。
實現序數編碼
當資料中的變數為序數時,使用序數編碼,它將每個標籤轉換為一個整數值,並在編碼資料中描繪標籤的順序。
示例
以下是如何在 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 來應用它們。
廣告