摘要:介紹其實編碼方式并不難理解,位狀態(tài)寄存器來對個狀態(tài)進行編碼就是將所有狀態(tài)排列,具有哪些狀態(tài)就將狀態(tài)進行標記。缺點當類別的數量很多時,特征空間會變得非常大。在這種情況下,一般可以用主成分分析來減少維度。而且這種組合在實際中也非常有用。
在數據預處理中,為了方便模型的輸入,常常會把非數值類型量化成數值類型。
其中比較簡單的一種處理離散型數值編碼方式叫one-hot coding(獨熱編碼)
獨熱編碼即 One-Hot 編碼,又稱一位有效編碼,其方法是使用N位狀態(tài)寄存器來對N個狀態(tài)進行編碼,每個狀態(tài)都有它獨立的寄存器位,并且在任意時候,其中只有一位有效。
2、介紹其實編碼方式并不難理解,N位狀態(tài)寄存器來對N個狀態(tài)進行編碼就是將所有狀態(tài)排列,具有哪些狀態(tài)就將狀態(tài)進行標記。用來解決類別型數據的離散值問題
比如:
對0,1進行編碼
首先只有兩個狀態(tài)就是需要兩個狀態(tài)寄存器
編碼為:00,01
再比如,有3個特征值;
face = ["handsome","ugly"]
stature = ["tall","middle","short"]
country = ["Chinese","American,"Japan","korea"]
一共9種狀態(tài),用9位數字表示
["handsome","tall","Japan"] 表示為 1010000103、簡單實現
["ugly","short","Japan"] 表示為 010010010
在python的第三方庫pandas中實現非常簡單,就是使用 get_dummies() 方法
def one_hot_encoder(df, nan_as_category = True): original_columns = list(df.columns) # 屬性 categorical_columns = [col for col in df.columns if df[col].dtype == "object"] df = pd.get_dummies(df, columns= categorical_columns, dummy_na= nan_as_category) # new_columns = [c for c in df.columns if c not in original_columns] return df, new_columns # 測試 data = [["handsome", "tall", "Japan"], ["ugly", "short", "Japan"], ["handsome", "middle", "Chinese"]] df = pd.DataFrame(data,columns=["face", "stature "," country "]) df,df_cat = one_hot_encoder(df) print(df)
結果如下:
優(yōu)點:獨熱編碼的值只有0和1,不同的類型存儲在垂直的空間,解決了分類器不好處理屬性數據的問題,在一定程度上也起到了擴充特征的作用,特征的增加也防止了模型的過擬合。
缺點:當類別的數量很多時,特征空間會變得非常大。在這種情況下,一般可以用主成分分析(PCA)來減少維度。而且one-hot encoding+PCA這種組合在實際中也非常有用。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42645.html
摘要:特征編碼類型本篇,我們主要說一下分類型特征的編碼方式。下面,我們要對這個變量進行編碼,在中有現成的獨熱編碼方法,代碼如下原來的變量被拆分為兩個單獨的變量,這兩個變量就是原來的分類特征值有電梯和無電梯。 作者:xiaoyu 微信公眾號:Python數據科學 知乎:python數據分析師 showImg(https://segmentfault.com/img/remote/146000...
摘要:特征編碼類型本篇,我們主要說一下分類型特征的編碼方式。下面,我們要對這個變量進行編碼,在中有現成的獨熱編碼方法,代碼如下原來的變量被拆分為兩個單獨的變量,這兩個變量就是原來的分類特征值有電梯和無電梯。 作者:xiaoyu 微信公眾號:Python數據科學 知乎:python數據分析師 showImg(https://segmentfault.com/img/remote/146000...
大家都知道,最近人工智能是比較火熱的,那么,人工智能主要應用的就是機器學習,但是機器學習對其要求還是比較高的。在使用機器學習處理數據的時候,會經常性的用到One-Hot代碼,下面小編就具體給大家介紹下這種編碼的實現方式。 1.為什么使用one-hot編碼? 在人工智能算法中,大家難免會遇到歸類基本特征,比如說:人的性別有男人女人,國家有日本,韓國,朝鮮等。這類特征值并不是連續(xù)不斷的,反而是...
閱讀 1251·2021-11-08 13:25
閱讀 1445·2021-10-13 09:40
閱讀 2778·2021-09-28 09:35
閱讀 742·2021-09-23 11:54
閱讀 1133·2021-09-02 15:11
閱讀 2438·2019-08-30 13:18
閱讀 1672·2019-08-30 12:51
閱讀 2690·2019-08-29 18:39