預(yù)處理模塊

規(guī)范化、標(biāo)準(zhǔn)化逻住、歸一化迎献、正則化,網(wǎng)上搜了一下扒秸,這幾種概念在不同的地方叫法各有不同。因此写烤,現(xiàn)做一個(gè)初步整理拾徙,便于后期進(jìn)一步理解。
比較好的參考1
比較好的參考2
比較好的參考3
比較好的參考4
為解釋清晰暂衡,下文統(tǒng)一為:規(guī)范化包含標(biāo)準(zhǔn)化崖瞭、歸一化和正則化

一读恃、規(guī)范化的目的

通常情況下是為了消除量綱的影響。譬如一個(gè)百分制的變量與一個(gè)5分值的變量在一起怎么比較疹吃?只有通過數(shù)據(jù)標(biāo)準(zhǔn)化西雀,都把它們標(biāo)準(zhǔn)到同一個(gè)標(biāo)準(zhǔn)時(shí)才具有可比性,將數(shù)據(jù)標(biāo)準(zhǔn)化為沒有單位的純數(shù)量腔呜。

二再悼、使用情況(引用)

  • 看模型是否具有伸縮不變性。
  • 不是所有的模型都一定需要標(biāo)準(zhǔn)化谤草,有些模型對(duì)量綱不同的數(shù)據(jù)比較敏感,譬如SVM等莺奸。當(dāng)各個(gè)維度進(jìn)行不均勻伸縮后灭贷,最優(yōu)解與原來不等價(jià),這樣的模型仗岖,除非原始數(shù)據(jù)的分布范圍本來就不叫接近,否則必須進(jìn)行標(biāo)準(zhǔn)化真友,以免模型參數(shù)被分布范圍較大或較小的數(shù)據(jù)主導(dǎo)紧帕。
  • 但是如果模型在各個(gè)維度進(jìn)行不均勻伸縮后桅打,最優(yōu)解與原來等價(jià)挺尾,例如logistic regression等,對(duì)于這樣的模型遭铺,是否標(biāo)準(zhǔn)化理論上不會(huì)改變最優(yōu)解魂挂。但是,由于實(shí)際求解往往使用迭代算法坠非,如果目標(biāo)函數(shù)的形狀太“扁”果正,迭代算法可能收斂得很慢甚至不收斂。所以對(duì)于具有伸縮不變性的模型潦闲,最好也進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化歉闰。

三舍杜、規(guī)范化的三種不同方法

  • 標(biāo)準(zhǔn)化:如zero-mean normalization,經(jīng)過處理的數(shù)據(jù)符合標(biāo)準(zhǔn)正態(tài)分布
  • 歸一化:如區(qū)間縮放法(Min-max normalization),將數(shù)據(jù)特征縮放至某一范圍概龄,通常是0-1
  • 正則化:通常是指除以向量的范數(shù)饲握。例如:將一個(gè)向量的歐氏長(zhǎng)度等價(jià)于1 蚕键。在神經(jīng)網(wǎng)絡(luò)中锣光,“正則化”通常是指將向量的范圍重縮放至最小化或者一定范圍铝耻,使所有的元素都在[0,1]范圍內(nèi)。通常用于文本分類或者文本聚類中频丘。

3.1 z-score標(biāo)準(zhǔn)化

  • 公式:(X-X_mean)/X_std #計(jì)算時(shí)對(duì)每個(gè)屬性/每列分別進(jìn)行泡态。
  • 目的:將數(shù)據(jù)按其屬性(按列進(jìn)行)減去其均值某弦,然后除以其方差。又叫標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化怔毛,經(jīng)過處理的數(shù)據(jù)符合標(biāo)準(zhǔn)正態(tài)分布亮钦,即均值為0馆截,標(biāo)準(zhǔn)差為1。

方法一:使用preprocessing.scale()函數(shù)對(duì)指定數(shù)據(jù)進(jìn)行轉(zhuǎn)換

sklearn.preprocessing.scale(X,axis=0,with_mean=True,with_std=True,copy=True)
X:數(shù)組或者矩陣
axis:int類型蜂莉,初始值為0蜡娶,如果是0,則單獨(dú)的標(biāo)準(zhǔn)化每個(gè)特征(列)映穗;如果是1窖张,則標(biāo)準(zhǔn)化每個(gè)觀測(cè)樣本(行)。
with_mean:boolean類型蚁滋,默認(rèn)為true宿接,表示將數(shù)據(jù)均值規(guī)范到0
with_std:boolean類型,默認(rèn)為true,表示將數(shù)據(jù)方差規(guī)范到1

代碼舉例

from sklearn import preprocessing
import numpy as np
X=np.array([[1,-1,2],[2,0,0],[0,1,-1]])
#calculate mean
X_mean=X.mean(axis=0)
X_std=X.std(axis=0)
print('raw data mean:',X_mean)
print('raw data variance:',X_std)
#standardize X
X1=(X-X_mean)/X_std
print('standardize result1:',X1)
#use function preprocessing.scale to standardize X
X_scale=preprocessing.scale(X)
print('standardize result2-sklearn:',X_scale)
print(X_scale.mean(axis=0))
print(X_scale.std(axis=0))
#最后X_scale與X1的值相同

方法二:使用preprocessing.StandardScaler類實(shí)現(xiàn)對(duì)訓(xùn)練集和測(cè)試集的擬合和轉(zhuǎn)換
代碼舉例

from sklearn import preprocessing
import numpy as np
X=np.array([[1,-1,2],[2,0,0],[0,1,-1]])
scaler=preprocessing.StandardScaler()
X_scaled=scaler.fit_transform(X)
print('standardize result3-sklearn:',X_scaled)
print(X_scaled.mean(axis=0))
print(X_scaled.std(axis=0))
#scale與standardscaler結(jié)果相同
#scale與standardscaler的區(qū)別在于standardscaler可以直接使用訓(xùn)練集對(duì)測(cè)試集數(shù)據(jù)進(jìn)行轉(zhuǎn)換
print(scaler.transform([-1,1,0]))

3.2 區(qū)間縮放歸一化——將屬性縮放到一個(gè)指定的Max和Min

  • 公式:(X-Min)/(Max-Min) #計(jì)算時(shí)對(duì)每個(gè)屬性/每列分別進(jìn)行睦霎。
  • 目的:
    1、對(duì)于方差非常小的屬性可以增強(qiáng)其穩(wěn)定性走诞;
    2副女、維持稀疏矩陣中為0的條目。

方法:使用preprocessing的MinMaxScaler函數(shù)

from sklearn import preprocessing
import numpy as np
X=np.array([[1,-1,2],[2,0,0],[0,1,-1]])
X_minmax=(X-X.min(axis=0))/(X.max(axis=0)-X.min(axis=0))
print('scaling result1:',X_std)
min_max_scaler = preprocessing.MinMaxScaler()
X_minMax = min_max_scaler.fit_transform(X)
print('scaling result2-sklearn:',X_minMax)
#公式計(jì)算與函數(shù)計(jì)算結(jié)果相同
#測(cè)試用例
X_test = np.array([[ -3., -1.,  4.]])
X_test_minmax = min_max_scaler.transform(X_test)
print(X_test_minmax)

3.3 正則化

  • 公式:正則化其實(shí)和“帶約束的目標(biāo)函數(shù)”是等價(jià)的蚣旱,二者可以互相轉(zhuǎn)換碑幅。
    數(shù)學(xué)模型如下:

    通過熟悉的拉格朗日乘子法(注意這個(gè)方法的名字)戴陡,可以變?yōu)槿缦滦问剑?br>

    正則化因子,也就是里面的那個(gè)lamda沟涨,如果它變大了恤批,說明目標(biāo)函數(shù)的作用變小了,正則化項(xiàng)的作用變大了裹赴,對(duì)參數(shù)的限制能力加強(qiáng)了喜庞,這會(huì)使得參數(shù)的變化不那么劇烈(僅對(duì)如上數(shù)學(xué)模型),直接的好處就是避免模型過擬合篮昧。赋荆。
  • 目的:約束要優(yōu)化的參數(shù)笋妥,防止過擬合

方法一:使用preprocessing的normalize()函數(shù)對(duì)指定數(shù)據(jù)進(jìn)行轉(zhuǎn)換

X=np.array([[1,-1,2],[2,0,0],[0,1,-1]])
X_normalized=preprocessing.normalize(X,norm='l2')
print('normalize result1:',X_normalized)

方法二:使用preprocessing的Normalizer()類實(shí)現(xiàn)對(duì)訓(xùn)練集和測(cè)試集的擬合和轉(zhuǎn)換

normalizer=preprocessing.Normalizer().fit(X)
normalizer.transform(X)
normalizer.transform([[-1,1,0]])

以上是為規(guī)范化(標(biāo)準(zhǔn)化懊昨、歸一化、正則化)春宣,后期還有二值化酵颁、稀疏矩陣這些概念≡碌郏總體感受躏惋,還是需要通過具體事例進(jìn)一步理解和運(yùn)用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嚷辅,一起剝皮案震驚了整個(gè)濱河市簿姨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌簸搞,老刑警劉巖扁位,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異趁俊,居然都是意外死亡域仇,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門寺擂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暇务,“玉大人,你說我怎么就攤上這事怔软】严福” “怎么了?”我有些...
    開封第一講書人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵挡逼,是天一觀的道長(zhǎng)括改。 經(jīng)常有香客問我,道長(zhǎng)挚瘟,這世上最難降的妖魔是什么叹谁? 我笑而不...
    開封第一講書人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任饲梭,我火速辦了婚禮,結(jié)果婚禮上焰檩,老公的妹妹穿的比我還像新娘憔涉。我一直安慰自己,他們只是感情好析苫,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開白布兜叨。 她就那樣靜靜地躺著,像睡著了一般衩侥。 火紅的嫁衣襯著肌膚如雪国旷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評(píng)論 1 312
  • 那天茫死,我揣著相機(jī)與錄音跪但,去河邊找鬼。 笑死峦萎,一個(gè)胖子當(dāng)著我的面吹牛屡久,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播爱榔,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼被环,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了详幽?” 一聲冷哼從身側(cè)響起筛欢,我...
    開封第一講書人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎唇聘,沒想到半個(gè)月后版姑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雳灾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年漠酿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谎亩。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡炒嘲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匈庭,到底是詐尸還是另有隱情夫凸,我是刑警寧澤,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布阱持,位于F島的核電站夭拌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸽扁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一蒜绽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧桶现,春花似錦躲雅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至慰于,卻和暖如春钮科,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背婆赠。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工绵脯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人页藻。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓桨嫁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親份帐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

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