05_数据的特征处理,归一化,标准化、缺失值处理,以及案例,使用场景,处理办法等
1.數(shù)據(jù)的特征處理
1.1.特征處理是什么
通過(guò)特定的統(tǒng)計(jì)方法(數(shù)學(xué)方法)將數(shù)據(jù)轉(zhuǎn)換成算法要求的數(shù)據(jù)
1.1.1.特征處理的方法
1.1.1.1特征處理方法
特征處理主要有以下幾種方法:
數(shù)值型數(shù)據(jù):標(biāo)準(zhǔn)縮放
1、歸一化
2、標(biāo)準(zhǔn)化
3、缺失值
類(lèi)別型數(shù)據(jù):one-hot編碼
時(shí)間類(lèi)型:時(shí)間的切分
1.1.1.2 數(shù)值型數(shù)據(jù)—?dú)w一化
1.1.1.2.1 歸一化特點(diǎn)、公式等
數(shù)據(jù)歸一化問(wèn)題是數(shù)據(jù)挖掘中特征向量表達(dá)時(shí)的重要問(wèn)題,當(dāng)不同的特征成列在一起的時(shí)候,由于特征本身表達(dá)方式的原因而導(dǎo)致在絕對(duì)數(shù)值上的小數(shù)據(jù)被大數(shù)據(jù)“吃掉”的情況,這個(gè)時(shí)候我們需要做的就是對(duì)抽取出來(lái)的features vector進(jìn)行歸一化處理,以保證每個(gè)特征被分類(lèi)器平等對(duì)待。
特點(diǎn): 通過(guò)對(duì)原始數(shù)據(jù)進(jìn)行變換把數(shù)據(jù)映射到某個(gè)區(qū)間之間(默認(rèn)為[0,1])
注: 作用于每一列,max為一列的最大值,min為一列的最小值,那么X’’為最終結(jié)果,mx,mi分別為指定區(qū)間值默認(rèn)mx為1,mi為0
例如:
1.1.1.2.2 歸一化的目標(biāo)
1、把數(shù)變?yōu)?#xff08;0,1)之間的小數(shù)
主要是為了數(shù)據(jù)處理方便提出來(lái)的,把數(shù)據(jù)映射到0~1范圍之內(nèi)處理,更加便捷快速,應(yīng)該歸到數(shù)字信號(hào)處理范疇之內(nèi)。
2、把有量綱表達(dá)式變?yōu)闊o(wú)量綱表達(dá)式
歸一化是一種簡(jiǎn)化計(jì)算的方式,即將有量綱的表達(dá)式,經(jīng)過(guò)變換,化為無(wú)量綱的表達(dá)式,成為純量。 比如,復(fù)數(shù)阻抗可以歸一化書(shū)寫(xiě):Z = R + jωL = R(1 + jωL/R) ,復(fù)數(shù)部分變成了純數(shù)量了,沒(méi)有量綱。
另外,微波之中也就是電路分析、信號(hào)系統(tǒng)、電磁波傳輸?shù)?#xff0c;有很多運(yùn)算都可以如此處理,既保證了運(yùn)算的便捷,又能凸現(xiàn)出物理量的本質(zhì)含義。
1.1.1.2.3 歸一化后有兩個(gè)好處
1、提升模型的手?jǐn)克俣?br /> 如下圖,x1的取值為0-2000,而x2的取值為1-5,假如只有這兩個(gè)特征,對(duì)其進(jìn)行優(yōu)化時(shí),會(huì)得到一個(gè)窄長(zhǎng)的橢圓形,導(dǎo)致在梯度下降時(shí),梯度的方向?yàn)榇怪钡雀呔€的方向而走之字形路線,這樣會(huì)使迭代很慢,相比之下,右圖的迭代就會(huì)很快(理解:也就是步長(zhǎng)走多走少方向總是對(duì)的,不會(huì)走偏)
2.提升模型的精度
歸一化的另一好處是提高精度,這在涉及到一些距離計(jì)算的算法時(shí)效果顯著,比如算法要計(jì)算歐氏距離,上圖中x2的取值范圍比較小,涉及到距離計(jì)算時(shí)其對(duì)結(jié)果的影響遠(yuǎn)比x1帶來(lái)的小,所以這就會(huì)造成精度的損失。所以歸一化很有必要,他可以讓各個(gè)特征對(duì)結(jié)果做出的貢獻(xiàn)相同。
在多指標(biāo)評(píng)價(jià)體系中,由于各評(píng)價(jià)指標(biāo)的性質(zhì)不同,通常具有不同的量綱和數(shù)量級(jí)。當(dāng)各指標(biāo)間的水平相差很大時(shí),如果直接用原始指標(biāo)值進(jìn)行分析,就會(huì)突出數(shù)值較高的指標(biāo)在綜合分析中的作用,相對(duì)削弱數(shù)值水平較低指標(biāo)的作用。因此,為了保證結(jié)果的可靠性,需要對(duì)原始指標(biāo)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。
在數(shù)據(jù)分析之前,我們通常需要先將數(shù)據(jù)標(biāo)準(zhǔn)化(normalization),利用標(biāo)準(zhǔn)化后的數(shù)據(jù)進(jìn)行數(shù)據(jù)分析。數(shù)據(jù)標(biāo)準(zhǔn)化也就是統(tǒng)計(jì)數(shù)據(jù)的指數(shù)化。數(shù)據(jù)標(biāo)準(zhǔn)化處理主要包括數(shù)據(jù)同趨化處理和無(wú)量綱化處理兩個(gè)方面。數(shù)據(jù)同趨化處理主要解決不同性質(zhì)數(shù)據(jù)問(wèn)題,對(duì)不同性質(zhì)指標(biāo)直接加總不能正確反映不同作用力的綜合結(jié)果,須先考慮改變逆指標(biāo)數(shù)據(jù)性質(zhì),使所有指標(biāo)對(duì)測(cè)評(píng)方案的作用力同趨化,再加總才能得出正確結(jié)果。數(shù)據(jù)無(wú)量綱化處理主要解決數(shù)據(jù)的可比性。經(jīng)過(guò)上述標(biāo)準(zhǔn)化處理,原始數(shù)據(jù)均轉(zhuǎn)換為無(wú)量綱化指標(biāo)測(cè)評(píng)值,即各指標(biāo)值都處于同一個(gè)數(shù)量級(jí)別上,可以進(jìn)行綜合測(cè)評(píng)分析。
從經(jīng)驗(yàn)上說(shuō),歸一化是讓不同維度之間的特征在數(shù)值上有一定比較性,可以大大提高分類(lèi)器的準(zhǔn)確性。
3.深度學(xué)習(xí)中數(shù)據(jù)歸一化可以防止模型梯度爆炸
1.1.1.2.4 數(shù)據(jù)需要?dú)w一化的機(jī)器學(xué)習(xí)算法
需要?dú)w一化的模型:
有些模型在各個(gè)維度進(jìn)行不均勻伸縮后,最優(yōu)解與原來(lái)不等價(jià),例如SVM(距離分界面遠(yuǎn)的也拉近了,支持向量變多?)。對(duì)于這樣的模型,除非本來(lái)各維數(shù)據(jù)的分布范圍就比較接近,否則必須進(jìn)行標(biāo)準(zhǔn)化,以免模型參數(shù)被分布范圍較大或較小的數(shù)據(jù)dominate。
有些模型在各個(gè)維度進(jìn)行不均勻伸縮后,最優(yōu)解與原來(lái)等價(jià),例如logistic regression(因?yàn)棣鹊拇笮”緛?lái)就自學(xué)習(xí)出不同的feature的重要性吧?)。對(duì)于這樣的模型,是否標(biāo)準(zhǔn)化理論上不會(huì)改變最優(yōu)解。但是,由于實(shí)際求解往往使用迭代算法,如果目標(biāo)函數(shù)的形狀太“扁”,迭代算法可能收斂得很慢甚至不收斂(模型結(jié)果不精確)。所以對(duì)于具有伸縮不變性的模型,最好也進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化。
有些模型/優(yōu)化方法的效果會(huì)強(qiáng)烈地依賴(lài)于特征是否歸一化,如LogisticReg,SVM,NeuralNetwork,SGD,PCA降維[PCA將原來(lái)高維的數(shù)據(jù)投影到某個(gè)低維的空間上并使得其方差盡量大。如果數(shù)據(jù)其中某一特征數(shù)值特別大,那么它在整個(gè)誤差計(jì)算的比重上就很大,那么可以想象在投影到低維空間之后,為了使低秩分解逼近原數(shù)據(jù),整個(gè)投影會(huì)去努力逼近最大的那一個(gè)特征,而忽略數(shù)值比較小的特征,這很可能導(dǎo)致了大量的信息缺失。此外,從計(jì)算的角度講,因?yàn)镻CA通常是數(shù)值近似分解,而非求特征值、奇異值得到解析解,所以當(dāng)我們使用梯度下降等算法進(jìn)行PCA的時(shí)候,歸一化有利于梯度下降收斂]等。
不需要?dú)w一化的模型:
(0/1取值的特征通常不需要?dú)w一化,歸一化會(huì)破壞它的稀疏性。)
有些模型則不受歸一化影響,如DecisionTree。
ICA好像不需要?dú)w一化(因?yàn)楠?dú)立成分如果歸一化了就不獨(dú)立了?)。
基于平方損失的最小二乘法OLS不需要?dú)w一化。
1.1.1.2.2 sklearn歸一化API
sklearn歸一化API:sklearn.preprocessing.MinMaxScaler
MinMaxScalar(feature_range=(0,1)...)- 每個(gè)特征縮放到給定范圍(默認(rèn)[0,1])MinMaxScalar.fit_transform(X)X:numpy array格式的數(shù)據(jù)[n_samples,n_features]返回值:轉(zhuǎn)換后的形狀相同的array1.1.1.2.3 歸一化步驟:
1、實(shí)例化MinMaxScalar
2、通過(guò)fit_transform轉(zhuǎn)換
比如,將:
[[90,2,10,40], [60,4,15,45], [75,3,13,46]]所有列的中的值都轉(zhuǎn)換到(2,3)之間1.1.1.2.4 實(shí)現(xiàn)案例
from sklearn.preprocessing import MinMaxScalerdef mm():"""歸一化處理,將最終每列的值都限定在(2,3)之間:return:"""mm = MinMaxScaler(feature_range=(2,3))data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])print(data)return Noneif __name__ == "__main__":mm()輸出結(jié)果為:
[[3. 2. 2. 2. ][2. 3. 3. 2.83333333][2.5 2.5 2.6 3. ]]1.1.1.2.5 歸一化案例:約會(huì)對(duì)象數(shù)據(jù)
相親約會(huì)對(duì)象數(shù)據(jù),這個(gè)樣本時(shí)男士的數(shù)據(jù),三個(gè)特征,玩游戲所消耗時(shí)間的百分比、每年獲得的飛行常客里程數(shù)、每周消費(fèi)的冰淇淋公升數(shù)。然后有一個(gè) 所屬類(lèi)別,被女士評(píng)價(jià)的三個(gè)類(lèi)別,不喜歡didnt、魅力一般small、極具魅力large也許也就是說(shuō)飛行里程數(shù)對(duì)于結(jié)算結(jié)果或者說(shuō)相親結(jié)果影響較大,**但是統(tǒng)計(jì)的人覺(jué)得這三個(gè)特征同等重要。
1.1.1.2.6 歸一化總結(jié)
注意在特定場(chǎng)景下最大值最小值是變化的,另外,最大值與最小值非常容易受異常點(diǎn)影響,所以這種方法魯棒性較差,只適合傳統(tǒng)精確小數(shù)據(jù)場(chǎng)景。
1.1.1.3 數(shù)值型數(shù)據(jù)—標(biāo)準(zhǔn)化
1.1.1.3.1 特點(diǎn)和公式
這種方法給予原始數(shù)據(jù)的均值(mean)和標(biāo)準(zhǔn)差(standard deviation)進(jìn)行數(shù)據(jù)的標(biāo)準(zhǔn)化。經(jīng)過(guò)處理的數(shù)據(jù)符合標(biāo)準(zhǔn)正態(tài)分布,即均值為0,標(biāo)準(zhǔn)差為1
1、特點(diǎn):通過(guò)對(duì)原始數(shù)據(jù)進(jìn)行變換把數(shù)據(jù)變換到均值為0,方差為1范圍內(nèi)
2、公式:
1.1.1.3.2 結(jié)合歸一化來(lái)談標(biāo)準(zhǔn)化
對(duì)于歸一化來(lái)說(shuō): 如果出現(xiàn)異常點(diǎn),影響了最大值和最小值,那么結(jié)果顯然會(huì)發(fā)生改變。
對(duì)于標(biāo)準(zhǔn)化來(lái)說(shuō): 如果出現(xiàn)異常點(diǎn),由于有一定數(shù)據(jù)量,少量的異常點(diǎn)對(duì)于平均值的影響并不大,從而方差改變較小。
1.1.1.3.3 sklearn特征化API
sklearn特征化API: scikit-learn.preprocessing.StandardScaler
StandardScaler(…)
處理之后每列來(lái)說(shuō)所有數(shù)據(jù)都聚集在均值0附近方差為1
1.1.1.3.4 標(biāo)準(zhǔn)化步驟
1、實(shí)例化StandardScaler
2、通過(guò)fit_transform轉(zhuǎn)換
例如,要轉(zhuǎn)化以下的矩陣:
案例:
from sklearn.preprocessing import StandardScalerdef stand():"""標(biāo)準(zhǔn)化縮放:return:"""std = StandardScaler()data = std.fit_transform([[ 1., -1., 3.],[ 2., 4., 2.],[ 4., 6., -1.]])print(data)return Noneif __name__ == "__main__":stand()輸出結(jié)果為:
[[-1.06904497 -1.35873244 0.98058068][-0.26726124 0.33968311 0.39223227][ 1.33630621 1.01904933 -1.37281295]]1.1.1.4 缺失值
1.1.1.4.1 機(jī)器學(xué)習(xí)缺失值處理方法匯總
原文鏈接:https://blog.csdn.net/w352986331qq/article/details/78639233
缺失值是指粗糙數(shù)據(jù)中由于缺少信息而造成的數(shù)據(jù)的聚類(lèi)、分組、刪失或截?cái)唷K傅氖乾F(xiàn)有數(shù)據(jù)集中某個(gè)或某些屬性的值是不完全的。缺失值的產(chǎn)生的原因多種多樣,主要分為機(jī)械原因和人為原因。
機(jī)械原因是由于機(jī)械原因?qū)е碌臄?shù)據(jù)收集或保存的失敗造成的數(shù)據(jù)缺失,比如數(shù)據(jù)存儲(chǔ)的失敗,存儲(chǔ)器損壞,機(jī)械故障導(dǎo)致某段時(shí)間數(shù)據(jù)未能收集(對(duì)于定時(shí)數(shù)據(jù)采集而言)。
人為原因是由于人的主觀失誤、歷史局限或有意隱瞞造成的數(shù)據(jù)缺失,比如,在市場(chǎng)調(diào)查中被訪人拒絕透露相關(guān)問(wèn)題的答案,或者回答的問(wèn)題是無(wú)效的,數(shù)據(jù)錄入人員失誤漏錄了數(shù)據(jù)。
以下來(lái)討論缺失值的一般處理方法:
1、刪除
主要有簡(jiǎn)單刪除法和權(quán)重法。簡(jiǎn)單刪除法是對(duì)缺失值進(jìn)行處理的最原始方法。
(1)簡(jiǎn)單刪除法
此方法將存在缺失值的數(shù)據(jù)條目(對(duì)象,元組,記錄)進(jìn)行刪除。這種方法簡(jiǎn)單易行,在對(duì)象有多個(gè)屬性缺失值、被刪除的含缺失值的對(duì)象與信息表中的數(shù)據(jù)量相比非常小的情況下是非常有效的。然而,這種方法卻有很大的局限性。它是以減少歷史數(shù)據(jù)來(lái)?yè)Q取信息的完備,會(huì)造成資源的大量浪費(fèi),丟棄了大量隱藏在這些對(duì)象中的信息。在信息表中本來(lái)包含的對(duì)象很少的情況下,刪除少量對(duì)象就足以嚴(yán)重影響到信息表信息的客觀性和結(jié)果的正確性;當(dāng)每個(gè)屬性空值的百分比變化很大時(shí),它的性能非常差。
(2)權(quán)重法
當(dāng)缺失值的類(lèi)型為非完全隨機(jī)缺失的時(shí)候,可以通過(guò)對(duì)完整的數(shù)據(jù)加權(quán)來(lái)減小偏差。把數(shù)據(jù)不完全的個(gè)案標(biāo)記后,將完整的數(shù)據(jù)個(gè)案賦予不同的權(quán)重,個(gè)案的權(quán)重可以通過(guò)logistic或probit回歸求得。如果解釋變量中存在對(duì)權(quán)重估計(jì)起決定行因素的變量,那么這種方法可以有效減小偏差。如果解釋變量和權(quán)重并不相關(guān),它并不能減小偏差。對(duì)于存在多個(gè)屬性缺失的情況,就需要對(duì)不同屬性的缺失組合賦不同的權(quán)重,這將大大增加計(jì)算的難度,降低預(yù)測(cè)的準(zhǔn)確性,這時(shí)權(quán)重法并不理想。
2、填補(bǔ)
這類(lèi)方法是用一定的值去填充空值,從而使信息表完備化。通常基于統(tǒng)計(jì)學(xué)原理,根據(jù)決策表中其余對(duì)象取值的分布情況來(lái)對(duì)一個(gè)空值進(jìn)行填充,譬如用其余屬性的平均值來(lái)進(jìn)行補(bǔ)充等。數(shù)據(jù)挖掘中常用的有以下幾種補(bǔ)齊方法:
(1)人工填寫(xiě)(filling manually)
由于最了解數(shù)據(jù)的還是用戶(hù)自己,因此這個(gè)方法產(chǎn)生數(shù)據(jù)偏離最小,可能是填充效果最好的一種。然而一般來(lái)說(shuō),該方法很費(fèi)時(shí),當(dāng)數(shù)據(jù)規(guī)模很大、空值很多的時(shí)候,該方法是不可行的。
(2) 特殊值填充(Treating Missing Attribute values as Special values)
將空值作為一種特殊的屬性值來(lái)處理,它不同于其他的任何屬性值。如所有的空值都用“unknown”填充。這樣將形成另一個(gè)有趣的概念,可能導(dǎo)致嚴(yán)重的數(shù)據(jù)偏離,一般不推薦使用。
(3)均值填充(Mean/Mode Completer)
將信息表中的屬性分為數(shù)值屬性和非數(shù)值屬性來(lái)分別進(jìn)行處理。如果空值是數(shù)值型的,就根據(jù)該屬性在其他所有對(duì)象的取值的平均值來(lái)填充該缺失的屬性值;如果空值是非數(shù)值型的,就根據(jù)統(tǒng)計(jì)學(xué)中的眾數(shù)原理,用該屬性在其他所有對(duì)象的取值次數(shù)最多的值(即出現(xiàn)頻率最高的值)來(lái)補(bǔ)齊該缺失的屬性值。另外有一種與其相似的方法叫條件平均值填充法(Conditional Mean Completer)。在該方法中,缺失屬性值的補(bǔ)齊同樣是靠該屬性在其他對(duì)象中的取值求平均得到,但不同的是用于求平均的值并不是從信息表所有對(duì)象中取,而是從與該對(duì)象具有相同決策屬性值的對(duì)象中取得。這兩種數(shù)據(jù)的補(bǔ)齊方法,其基本的出發(fā)點(diǎn)都是一樣的,以最大概率可能的取值來(lái)補(bǔ)充缺失的屬性值,只是在具體方法上有一點(diǎn)不同。與其他方法相比,它是用現(xiàn)存數(shù)據(jù)的多數(shù)信息來(lái)推測(cè)缺失值。
(4) 熱卡填充(Hot deck imputation,或就近補(bǔ)齊)
對(duì)于一個(gè)包含空值的對(duì)象,熱卡填充法在完整數(shù)據(jù)中找到一個(gè)與它最相似的對(duì)象,然后用這個(gè)相似對(duì)象的值來(lái)進(jìn)行填充。不同的問(wèn)題可能會(huì)選用不同的標(biāo)準(zhǔn)來(lái)對(duì)相似進(jìn)行判定。該方法概念上很簡(jiǎn)單,且利用了數(shù)據(jù)間的關(guān)系來(lái)進(jìn)行空值估計(jì)。這個(gè)方法的缺點(diǎn)在于難以定義相似標(biāo)準(zhǔn),主觀因素較多。
(5) 聚類(lèi)填充(clustering imputation)
最為典型的代表是K最近距離鄰法(K-means clustering),先根據(jù)歐式距離或相關(guān)分析來(lái)確定距離具有缺失數(shù)據(jù)樣本最近的K個(gè)樣本,將這K個(gè)值加權(quán)平均來(lái)估計(jì)該樣本的缺失數(shù)據(jù)。同均值插補(bǔ)的方法都屬于單值插補(bǔ),不同的是,它用層次聚類(lèi)模型預(yù)測(cè)缺失變量的類(lèi)型,再以該類(lèi)型的均值插補(bǔ)。假設(shè)X=(X1,X2…Xp)為信息完全的變量,Y為存在缺失值的變量,那么首先對(duì)X或其子集行聚類(lèi),然后按缺失個(gè)案所屬類(lèi)來(lái)插補(bǔ)不同類(lèi)的均值。如果在以后統(tǒng)計(jì)分析中還需以引入的解釋變量和Y做分析,那么這種插補(bǔ)方法將在模型中引入自相關(guān),給分析造成障礙。
(6) 使用所有可能的值填充(Assigning All Possible values of the Attribute)
這種方法是用空缺屬性值的所有可能的屬性取值來(lái)填充,能夠得到較好的補(bǔ)齊效果。但是,當(dāng)數(shù)據(jù)量很大或者遺漏的屬性值較多時(shí),其計(jì)算的代價(jià)很大,可能的測(cè)試方案很多。另有一種方法,填補(bǔ)遺漏屬性值的原則是一樣的,不同的只是從決策相同的對(duì)象中嘗試所有的屬性值的可能情況,而不是根據(jù)信息表中所有對(duì)象進(jìn)行嘗試,這樣能夠在一定程度上減小原方法的代價(jià)。
(7) 組合完整化方法(Combinatorial Completer)
這種方法是用空缺屬性值的所有可能的屬性取值來(lái)試,并從最終屬性的約簡(jiǎn)結(jié)果中選擇最好的一個(gè)作為填補(bǔ)的屬性值。這是以約簡(jiǎn)為目的的數(shù)據(jù)補(bǔ)齊方法,能夠得到好的約簡(jiǎn)結(jié)果;但是,當(dāng)數(shù)據(jù)量很大或者遺漏的屬性值較多時(shí),其計(jì)算的代價(jià)很大。另一種稱(chēng)為條件組合完整化方法(Conditional Combinatorial Complete),填補(bǔ)遺漏屬性值的原則是一樣的,不同的只是從決策相同的對(duì)象中嘗試所有的屬性值的可能情況,而不是根據(jù)信息表中所有對(duì)象進(jìn)行嘗試。條件組合完整化方法能夠在一定程度上減小組合完整化方法的代價(jià)。在信息表包含不完整數(shù)據(jù)較多的情況下,可能的測(cè)試方案將巨增。
(8) 回歸(Regression)
基于完整的數(shù)據(jù)集,建立回歸方程(模型)。對(duì)于包含空值的對(duì)象,將已知屬性值代入方程來(lái)估計(jì)未知屬性值,以此估計(jì)值來(lái)進(jìn)行填充。當(dāng)變量不是線性相關(guān)或預(yù)測(cè)變量高度相關(guān)時(shí)會(huì)導(dǎo)致有偏差的估計(jì)。
(9) 極大似然估計(jì)(Max Likelihood ,ML)
在缺失類(lèi)型為隨機(jī)缺失的條件下,假設(shè)模型對(duì)于完整的樣本是正確的,那么通過(guò)觀測(cè)數(shù)據(jù)的邊際分布可以對(duì)未知參數(shù)進(jìn)行極大似然估計(jì)(Little and Rubin)。這種方法也被稱(chēng)為忽略缺失值的極大似然估計(jì),對(duì)于極大似然的參數(shù)估計(jì)實(shí)際中常采用的計(jì)算方法是期望值最大化(Expectation Maximization,EM)。該方法比刪除個(gè)案和單值插補(bǔ)更有吸引力,它一個(gè)重要前提:適用于大樣本。有效樣本的數(shù)量足夠以保證ML估計(jì)值是漸近無(wú)偏的并服從正態(tài)分布。但是這種方法可能會(huì)陷入局部極值,收斂速度也不是很快,并且計(jì)算很復(fù)雜。
(10) 多重插補(bǔ)(Multiple Imputation,MI)
多值插補(bǔ)的思想來(lái)源于貝葉斯估計(jì),認(rèn)為待插補(bǔ)的值是隨機(jī)的,它的值來(lái)自于已觀測(cè)到的值。具體實(shí)踐上通常是估計(jì)出待插補(bǔ)的值,然后再加上不同的噪聲,形成多組可選插補(bǔ)值。根據(jù)某種選擇依據(jù),選取最合適的插補(bǔ)值。多重插補(bǔ)方法分為三個(gè)步驟:①為每個(gè)空值產(chǎn)生一套可能的插補(bǔ)值,這些值反映了無(wú)響應(yīng)模型的不確定性;每個(gè)值都可以被用來(lái)插補(bǔ)數(shù)據(jù)集中的缺失值,產(chǎn)生若干個(gè)完整數(shù)據(jù)集合。②每個(gè)插補(bǔ)數(shù)據(jù)集合都用針對(duì)完整數(shù)據(jù)集的統(tǒng)計(jì)方法進(jìn)行統(tǒng)計(jì)分析。③對(duì)來(lái)自各個(gè)插補(bǔ)數(shù)據(jù)集的結(jié)果,根據(jù)評(píng)分函數(shù)進(jìn)行選擇,產(chǎn)生最終的插補(bǔ)值。
多重插補(bǔ)和貝葉斯估計(jì)的思想是一致的,但是多重插補(bǔ)彌補(bǔ)了貝葉斯估計(jì)的幾個(gè)不足。第一,貝葉斯估計(jì)以極大似然的方法估計(jì),極大似然的方法要求模型的形式必須準(zhǔn)確,如果參數(shù)形式不正確,將得到錯(cuò)誤得結(jié)論,即先驗(yàn)分布將影響后驗(yàn)分布的準(zhǔn)確性。而多重插補(bǔ)所依據(jù)的是大樣本漸近完整的數(shù)據(jù)的理論,在數(shù)據(jù)挖掘中的數(shù)據(jù)量都很大,先驗(yàn)分布將極小的影響結(jié)果,所以先驗(yàn)分布的對(duì)結(jié)果的影響不大。第二,貝葉斯估計(jì)僅要求知道未知參數(shù)的先驗(yàn)分布,沒(méi)有利用與參數(shù)的關(guān)系。而多重插補(bǔ)對(duì)參數(shù)的聯(lián)合分布作出了估計(jì),利用了參數(shù)間的相互關(guān)系。
同時(shí),多重插補(bǔ)保持了單一插補(bǔ)的兩個(gè)基本優(yōu)點(diǎn),即應(yīng)用完全數(shù)據(jù)分析方法和融合數(shù)據(jù)收集者知識(shí)的能力。相對(duì)于單一插補(bǔ),多重插補(bǔ)有三個(gè)極其重要的優(yōu)點(diǎn):第一,為表現(xiàn)數(shù)據(jù)分布,隨機(jī)抽取進(jìn)行插補(bǔ),增加了估計(jì)的有效性。第二,當(dāng)多重插補(bǔ)是在某個(gè)模型下的隨機(jī)抽樣時(shí),按一種直接方式簡(jiǎn)單融合完全數(shù)據(jù)推斷得出有效推斷,即它反映了在該模型下由缺失值導(dǎo)致的附加變異。第三,在多個(gè)模型下通過(guò)隨機(jī)抽取進(jìn)行插補(bǔ),簡(jiǎn)單地應(yīng)用完全數(shù)據(jù)方法,可以對(duì)無(wú)回答的不同模型下推斷的敏感性進(jìn)行直接研究。
多重插補(bǔ)也有以下缺點(diǎn):①生成多重插補(bǔ)比單一插補(bǔ)需要更多工作;②貯存多重插補(bǔ)數(shù)據(jù)集需要更多存儲(chǔ)空間;③分析多重插補(bǔ)數(shù)據(jù)集比單一插補(bǔ)需要花費(fèi)更多精力。
不處理
直接在包含空值的數(shù)據(jù)上進(jìn)行數(shù)據(jù)挖掘。這類(lèi)方法包括貝葉斯網(wǎng)絡(luò)和人工神經(jīng)網(wǎng)絡(luò)等。
貝葉斯網(wǎng)絡(luò)是用來(lái)表示變量間連接概率的圖形模式,它提供了一種自然的表示因果信息的方法,用來(lái)發(fā)現(xiàn)數(shù)據(jù)間的潛在關(guān)系。在這個(gè)網(wǎng)絡(luò)中,用節(jié)點(diǎn)表示變量,有向邊表示變量間的依賴(lài)關(guān)系。貝葉斯網(wǎng)絡(luò)僅適合于對(duì)領(lǐng)域知識(shí)具有一定了解的情況,至少對(duì)變量間的依賴(lài)關(guān)系較清楚的情況。否則直接從數(shù)據(jù)中學(xué)習(xí)貝葉斯網(wǎng)的結(jié)構(gòu)不但復(fù)雜性較高(隨著變量的增加,指數(shù)級(jí)增加),網(wǎng)絡(luò)維護(hù)代價(jià)昂貴,而且它的估計(jì)參數(shù)較多,為系統(tǒng)帶來(lái)了高方差,影響了它的預(yù)測(cè)精度。當(dāng)在任何一個(gè)對(duì)象中的缺失值數(shù)量很大時(shí),存在指數(shù)爆炸的危險(xiǎn)。
人工神經(jīng)網(wǎng)絡(luò)可以有效的對(duì)付空值,但人工神經(jīng)網(wǎng)絡(luò)在這方面的研究還有待進(jìn)一步深入展開(kāi)。人工神經(jīng)網(wǎng)絡(luò)方法在數(shù)據(jù)挖掘應(yīng)用中的局限性
總結(jié)
部分方法的優(yōu)缺點(diǎn)及適用環(huán)境如下:
以上插補(bǔ)方法,對(duì)于缺失值的類(lèi)型為隨機(jī)缺失的插補(bǔ)有很好的效果。兩種均值插補(bǔ)方法是最容易實(shí)現(xiàn)的,也是以前人們經(jīng)常使用的,但是它對(duì)樣本存在極大的干擾,尤其是當(dāng)插補(bǔ)后的值作為解釋變量進(jìn)行回歸時(shí),參數(shù)的估計(jì)值與真實(shí)值的偏差很大。相比較而言,極大似然估計(jì)和多重插補(bǔ)是兩種比較好的插補(bǔ)方法,與多重插補(bǔ)對(duì)比,極大似然缺少不確定成分,所以越來(lái)越多的人傾向于使用多值插補(bǔ)方法。
1.1.1.4.2 sklearn特征處理API
sklearn缺失值A(chǔ)PI: sklearn.preprocessing.Imputer
Imputer語(yǔ)法
1.1.1.4.3 Imputer流程
1、初始化Imputer,指定**“缺失值”,指定填補(bǔ)策略**,指定行或列
注:缺失值也可以是別的指定要替換的值
2、調(diào)用fit_transform
例如要處理下面的缺失值:
[[1, 2], [np.nan, 3], [7, 6]]案例:
from sklearn.preprocessing import Imputer import numpy as npdef im():"""缺失值處理"""# NaN,Nanim = Imputer(missing_values='NaN',strategy='mean',axis=0)data = im.fit_transform([[1,2],[np.nan,3],[7,6]])print(data)return Noneif __name__ == "__main__":im()輸出結(jié)果:
[[1. 2.][4. 3.][7. 6.]]1.1.1.4.4 關(guān)于np.nan(np.NaN)
1、numpy的數(shù)組中可以使用np.nan/np.NaN來(lái)代替缺失值,屬于float類(lèi)型
2、如果是文件中的一些缺失值,可以替換成nan,通過(guò)np.array轉(zhuǎn)化成float型的數(shù)組即可
總結(jié)
以上是生活随笔為你收集整理的05_数据的特征处理,归一化,标准化、缺失值处理,以及案例,使用场景,处理办法等的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 04_机器学习概述,什么是机器学习,应用
- 下一篇: 06_特征选择,特征选择的原因,skle