機器學(xué)習(xí)筆記:

OneHotEncoder獨熱編碼和 LabelEncoder標(biāo)簽編碼

轉(zhuǎn)自https://www.cnblogs.com/king-lps/p/7846414.html
獨熱碼的例子:

enc = preprocessing.OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])    # fit來學(xué)習(xí)編碼
enc.transform([[0, 1, 3]]).toarray()    # 進行編碼
輸出:array([[ 1.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  1.]])

數(shù)據(jù)矩陣是4*3,即4個數(shù)據(jù),3個特征維度椎眯。

0 0 3   觀察左邊的數(shù)據(jù)矩陣,第一列為第一個特征維度忘渔,有兩種取值0\1. 所以對應(yīng)編碼方式為10 、01

1 1 0  同理弱恒,第二列為第二個特征維度辨萍,有三種取值0\1\2,所以對應(yīng)編碼方式為100、010锈玉、001

0 2 1   同理爪飘,第三列為第三個特征維度,有四中取值0\1\2\3拉背,所以對應(yīng)編碼方式為1000师崎、0100、0010椅棺、0001

1 0 2  再來看要進行編碼的參數(shù)[0 , 1,  3]犁罩, 0作為第一個特征編碼為10,  1作為第二個特征編碼為010, 3作為第三個特征編碼為0001.  故此編碼結(jié)果為 1 0 0 1 0 0 0 0 1

利用LabelEncoder() 將轉(zhuǎn)換成連續(xù)的數(shù)值型變量:

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
le.fit([1,5,67,100])
le.transform([1,1,100,67,5])
輸出: array([0,0,3,2,1])

為什么要獨熱編碼两疚?

  正如上文所言床估,獨熱編碼(啞變量 dummy variable)是因為大部分算法是基于向量空間中的度量來進行計算的,為了使非偏序關(guān)系的變量取值不具有偏序性诱渤,并且到圓點是等距的丐巫。使用one-hot編碼,將離散特征的取值擴展到了歐式空間勺美,離散特征的某個取值就對應(yīng)歐式空間的某個點递胧。將離散型特征使用one-hot編碼,會讓特征之間的距離計算更加合理赡茸。離散特征進行one-hot編碼后缎脾,編碼后的特征,其實每一維度的特征都可以看做是連續(xù)的特征占卧。就可以跟對連續(xù)型特征的歸一化方法一樣遗菠,對每一維特征進行歸一化。比如歸一化到[-1,1]或歸一化到均值為0,方差為1屉栓。       

    為什么特征向量要映射到歐式空間舷蒲?

    將離散特征通過one-hot編碼映射到歐式空間耸袜,是因為友多,在回歸,分類堤框,聚類等機器學(xué)習(xí)算法中域滥,特征之間距離的計算或相似度的計算是非常重要的,而我們常用的距離或相似度的計算都是在歐式空間的相似度計算蜈抓,計算余弦相似性启绰,基于的就是歐式空間。

三 .獨熱編碼優(yōu)缺點

優(yōu)點:獨熱編碼解決了分類器不好處理屬性數(shù)據(jù)的問題沟使,在一定程度上也起到了擴充特征的作用委可。它的值只有0和1,不同的類型存儲在垂直的空間。
缺點:當(dāng)類別的數(shù)量很多時着倾,特征空間會變得非常大拾酝。在這種情況下,一般可以用PCA來減少維度卡者。而且one hot encoding+PCA這種組合在實際中也非常有用蒿囤。

四. 什么情況下(不)用獨熱編碼?

用:獨熱編碼用來解決類別型數(shù)據(jù)的離散值問題崇决,
不用:將離散型特征進行one-hot編碼的作用材诽,是為了讓距離計算更合理,但如果特征是離散的恒傻,并且不用one-hot編碼就可以很合理的計算出距離脸侥,那么就沒必要進行one-hot編碼。 有些基于樹的算法在處理變量時盈厘,并不是基于向量空間度量湿痢,數(shù)值只是個類別符號,即沒有偏序關(guān)系扑庞,所以不用進行獨熱編碼譬重。 Tree Model不太需要one-hot編碼: 對于決策樹來說,one-hot的本質(zhì)是增加樹的深度罐氨。
總的來說臀规,要是one hot encoding的類別數(shù)目不太多,建議優(yōu)先考慮栅隐。
五. 什么情況下(不)需要歸一化塔嬉?

需要: 基于參數(shù)的模型或基于距離的模型,都是要進行特征的歸一化租悄。
不需要:基于樹的方法是不需要進行特征的歸一化谨究,例如隨機森林,bagging 和 boosting等泣棋。

標(biāo)準(zhǔn)化

from sklearn.preprocessing import StandardScaler
 #標(biāo)準(zhǔn)化胶哲,返回值為標(biāo)準(zhǔn)化后的數(shù)據(jù)
StandardScaler().fit_transform(iris.data)

區(qū)間縮放法

from sklearn.preprocessing import MinMaxScaler

#區(qū)間縮放,返回值為縮放到[0, 1]區(qū)間的數(shù)據(jù)
MinMaxScaler().fit_transform(iris.data)

歸一化

from sklearn.preprocessing import MinMaxScaler

#區(qū)間縮放潭辈,返回值為縮放到[0, 1]區(qū)間的數(shù)據(jù)
MinMaxScaler().fit_transform(iris.data)

歸一化
簡單來說鸯屿,標(biāo)準(zhǔn)化是依照特征矩陣的列處理數(shù)據(jù),其通過求z-score的方法把敢,將樣本的特征值轉(zhuǎn)換到同一量綱下寄摆。歸一化是依照特征矩陣的行處理數(shù)據(jù),其目的在于樣本向量在點乘運算或其他核函數(shù)計算相似性時修赞,擁有統(tǒng)一的標(biāo)準(zhǔn)婶恼,也就是說都轉(zhuǎn)化為“單位向量”。規(guī)則為l2的歸一化公式如下:

二值化

from sklearn.preprocessing import Binarizer

#二值化,閾值設(shè)置為3勾邦,返回值為二值化后的數(shù)據(jù)
Binarizer(threshold=3).fit_transform(iris.data)

數(shù)據(jù)變換及其意義

pandas的切片操作

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末联逻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子检痰,更是在濱河造成了極大的恐慌包归,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铅歼,死亡現(xiàn)場離奇詭異公壤,居然都是意外死亡,警方通過查閱死者的電腦和手機椎椰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門厦幅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人慨飘,你說我怎么就攤上這事确憨。” “怎么了瓤的?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵休弃,是天一觀的道長。 經(jīng)常有香客問我圈膏,道長塔猾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任稽坤,我火速辦了婚禮丈甸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尿褪。我一直安慰自己睦擂,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布杖玲。 她就那樣靜靜地躺著顿仇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪天揖。 梳的紋絲不亂的頭發(fā)上夺欲,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天跪帝,我揣著相機與錄音今膊,去河邊找鬼。 笑死伞剑,一個胖子當(dāng)著我的面吹牛斑唬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼恕刘,長吁一口氣:“原來是場噩夢啊……” “哼缤谎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起褐着,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤坷澡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后含蓉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體频敛,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年馅扣,在試婚紗的時候發(fā)現(xiàn)自己被綠了斟赚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡差油,死狀恐怖拗军,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蓄喇,我是刑警寧澤发侵,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站妆偏,受9級特大地震影響器紧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜楼眷,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一铲汪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罐柳,春花似錦掌腰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至肮蛹,卻和暖如春勺择,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背伦忠。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工省核, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人昆码。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓气忠,卻偏偏與公主長得像邻储,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子旧噪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容