數(shù)據(jù)探索(Data Exploration)完整指導(dǎo)-上

翻譯/編輯/部分原創(chuàng)?Vivian Ouyang ?原作者:Sunil Ray?

在機(jī)器學(xué)習(xí)中,很多時(shí)候你會(huì)掙扎于怎么提高模型的準(zhǔn)確率。在這種時(shí)刻,數(shù)據(jù)探索的一些方法將幫助你解決這個(gè)問題。這個(gè)指導(dǎo)將幫助你理解數(shù)據(jù)探索中的主要技術(shù)。請(qǐng)記住你輸入的變量的數(shù)據(jù)質(zhì)量決定了你模型輸出量的質(zhì)量。所以當(dāng)你的商業(yè)問題提出來以后,你需要花費(fèi)很多時(shí)間在數(shù)據(jù)準(zhǔn)備和探究上面,一般來說,數(shù)據(jù)清理,探究和準(zhǔn)備大概占據(jù)了一個(gè)項(xiàng)目70%的時(shí)間。下面是準(zhǔn)備,理解,清理你用于建立預(yù)測(cè)模型的數(shù)據(jù)的幾個(gè)步驟,我會(huì)一個(gè)一個(gè)來介紹

1.變量確定

2.單變量分析

3.雙變量分析

4.處理缺失值

5.處理離群值

6.變量轉(zhuǎn)換

7.變量創(chuàng)建

首先上部會(huì)介紹1,2,3,4四個(gè)部分。


變量確定

首先,你需要確認(rèn)你的輸入變量(預(yù)測(cè)指標(biāo))和你的輸出變量(目標(biāo)變量)是什么,接著,你需要確認(rèn)數(shù)據(jù)的種類和分類。下面用一個(gè)簡(jiǎn)單的例子來說明,假設(shè)現(xiàn)在我們想要預(yù)測(cè)學(xué)生是否玩板球(cricket),現(xiàn)在我們需要確定輸入變量,輸出目標(biāo)變量,以及每一個(gè)變量的分類和種類,下面是部分原數(shù)據(jù)

Student_ID:學(xué)生編號(hào)

Gender:性別(F-女,M-男)

Pre_EXAM_Marks:之前的考試分?jǐn)?shù)

Height(cm):身高(厘米)

WeightCaregory(kgs):體重(千克)

Play Cricket:玩板球(1:玩板球,0:不玩板球)

下面這個(gè)圖是以上變量的分類和種類圖

從上圖可以看到,輸入變量(預(yù)測(cè)變量Predictor)是性別,之前的考試分?jǐn)?shù),身高,體重。而輸出值(目標(biāo)變量Target)是是否玩板球。學(xué)生編號(hào)和性別是字符變量(Character),是否玩板球,之前的考試分?jǐn)?shù),身高,體重是數(shù)字變量(Numeric)。從連續(xù)和非連續(xù)來分類的話,性別和是否玩板球是非連續(xù)變量(Categorical),之前考試的分?jǐn)?shù),身高和體重是連續(xù)變量(Continuous)

單變量分析

在這個(gè)步驟,我們需要一個(gè)變量一個(gè)變量的去做分析,單變量分析的方法取決于你需要分析的變量是連續(xù)的還是非連續(xù)的。

連續(xù)型變量(Continuous Variable):對(duì)于連續(xù)型變量我們需要知道這個(gè)變量的中心(central tendency)和展布(spread or dispersion),下面是描述變量中心還有展布的指標(biāo)量,以及用什么圖來進(jìn)行可視化。

中心:平均值,中位數(shù),眾數(shù),最小值,最大值

展布分布:范圍,四分位數(shù),內(nèi)距(四分位距),方差,標(biāo)準(zhǔn)差,偏態(tài)與峰度

可視化方法:直方圖(最右的圖),箱線圖(中間一個(gè)圖)

非連續(xù)型變量(Categorical Variable):對(duì)于非連續(xù)型變量,我們使用頻率表來顯示每一個(gè)分類的分布,同時(shí)我們也可以計(jì)算每一個(gè)分類的百分比。一般可以使用條形圖或者箱線圖來可視化

雙變量分析

雙變量分析是用來找出兩個(gè)變量之間的關(guān)系,我們尋找兩個(gè)變量間有顯著水平的相關(guān)聯(lián)和非相關(guān)聯(lián)性。雙變量分析可以是非連續(xù)型變量和非連續(xù)型變量,非連續(xù)型變量和連續(xù)型變量還有連續(xù)型變量和連續(xù)型變量。下面我們將一個(gè)一個(gè)情形來說明。

連續(xù)型變量和連續(xù)型變量:對(duì)于兩個(gè)連續(xù)型變量,一般可視化我們使用散點(diǎn)圖。散點(diǎn)圖很好的顯示了兩個(gè)變量的關(guān)系,這個(gè)關(guān)系可以是線性也可以是非線性的。

上面的六個(gè)圖,左上是很強(qiáng)的正相關(guān),意思是指當(dāng)其中一個(gè)變量增加時(shí),另外一個(gè)變量增加,上面正中間的是中等強(qiáng)的正相關(guān),右上是沒有相關(guān)性,左下是中等強(qiáng)的負(fù)相關(guān),意思是指當(dāng)其中一個(gè)變量增加時(shí),另外一個(gè)變量減少,下面正中間是很強(qiáng)的負(fù)相關(guān),右下是非線性的相關(guān)。一般散點(diǎn)圖只是顯示了兩連續(xù)變量之間的關(guān)系,但是并沒有顯示關(guān)系的強(qiáng)度大小。所以我們使用一個(gè)指標(biāo)相關(guān)(Correlation)來顯示關(guān)系強(qiáng)度的大小,相關(guān)的大小可以從-1到+1。其中“-1”指的是完美的負(fù)線性相關(guān),“+1”指的是完美的正線性相關(guān),“0”指的是沒有線性相關(guān)(但是可能有非線性的關(guān)系)。計(jì)算相關(guān)的公式如下

相關(guān)=變量X和Y的協(xié)方差/變量X的方差和變量Y的方差乘積的平方根

如果使用Excel,可以用CORREL()來計(jì)算兩個(gè)變量的相關(guān)。如果使用SAS可以使用PROC CORR來計(jì)算相關(guān),如果用R,可以使用cor.test()來計(jì)算相關(guān)。如果用Python,可以使用numpy.corrcoef()來計(jì)算。下面是用EXCEL計(jì)算相關(guān)的例子,X和Y的相關(guān)系數(shù)是0.65。

非連續(xù)變量和非連續(xù)型變量:

雙向表(two-way table):我們可以用一個(gè)雙向表來分析兩個(gè)非連續(xù)變量的關(guān)系,雙向表的行代表一個(gè)非線性變量的分類,列代表另一個(gè)非線性變量的分量,然后每個(gè)小格(cell)可以顯示數(shù)目還有所占的百分比(雙向表是下面最左邊的表)。

堆積柱圖(Stacked Column Chart):這個(gè)其實(shí)就是雙向表的可視化(上面右邊兩個(gè)表)

卡方檢驗(yàn)(Chi-square Test):這個(gè)檢驗(yàn)是用來檢驗(yàn)變量關(guān)系的顯著性。主要是比較兩個(gè)及兩個(gè)以上樣本率( 構(gòu)成比)以及兩個(gè)分類變量的關(guān)聯(lián)性分析。其根本思想就是在于比較理論頻數(shù)和實(shí)際頻數(shù)的吻合程度或擬合優(yōu)度問題。它會(huì)反饋用卡方分布計(jì)算的p值,當(dāng)p=0的時(shí)候,這兩個(gè)變量是相互依賴的(dependent),當(dāng)p=1的時(shí)候,可以理解為這兩個(gè)變量獨(dú)立(independent),當(dāng)p值小于0.05的時(shí)候,意味著有95%的信心這兩個(gè)變量的依賴性是顯著的??ǚ綑z驗(yàn)的統(tǒng)計(jì)量是

其中O表示實(shí)際觀察到的頻數(shù),而E表示當(dāng)這兩個(gè)變量獨(dú)立的時(shí)候,雙向表中每個(gè)cell的理論頻數(shù)。

非連續(xù)變量和連續(xù)型變量:

對(duì)于探索連續(xù)變量和非連續(xù)變量的關(guān)系,對(duì)于可視化,我們可以畫非連續(xù)變量每一個(gè)分類的箱線圖(boxplot)。而如果想用統(tǒng)計(jì)方法來檢驗(yàn)它們之間的關(guān)系是否顯著,可以使用Z檢驗(yàn),t檢驗(yàn)或者方差分析(ANOVA)。一般Z檢驗(yàn)用于樣本比較大的情況,檢驗(yàn)的是兩組之間的均值是否有顯著不同。t檢驗(yàn)一般用于樣本比較小的情況(每一組都小于30),檢驗(yàn)的也是兩組之間均值是否有顯著不同。而ANOVA是用來檢驗(yàn)多于兩組的時(shí)候, 多個(gè)組的均值是否有不同。

缺失值處理

在數(shù)據(jù)清理中,我們經(jīng)常會(huì)遇到很差的數(shù)據(jù),會(huì)有很多缺失值,如果訓(xùn)練數(shù)據(jù)中有缺失值的話會(huì)讓訓(xùn)練出來的模型有偏差或者不夠擬合數(shù)據(jù)。缺失值出現(xiàn)的原因也有很多種,它們一般出現(xiàn)在兩個(gè)階段

數(shù)據(jù)抓?。涸谧ト?shù)據(jù)過程中,因?yàn)闆]有符合抓取的指導(dǎo)或者要求,而造成的一種缺失,這種缺失比較容易被發(fā)現(xiàn)并且很快的改正

數(shù)據(jù)收集:在數(shù)據(jù)收集階段的缺失比較難改正,因?yàn)橛写蟾潘姆N不同的情況

完全隨機(jī)缺失(Missing Completely at Random):這種情況是指對(duì)每一個(gè)觀測(cè)值,缺失的概率是一樣的。打個(gè)比方,比如現(xiàn)在需要一群人上報(bào)自己的收入,對(duì)于每一個(gè)上報(bào)者,在上報(bào)之前先丟硬幣,如果是正面就上報(bào)收入,如果是反面就隱瞞收入。因此對(duì)每個(gè)觀測(cè)值都有一半的機(jī)會(huì)缺失或者不缺失。

隨機(jī)缺失(Missing at Random):隨機(jī)缺失是指缺失值是任意缺失的但是對(duì)不同的輸入變量和分組,缺失值的比例是不同的。比如當(dāng)我們想收集女性的年齡時(shí),女性比起男性會(huì)有更多的缺失值(很好理解,女性一般不太喜歡被訪問年齡)。

缺失依賴于未觀測(cè)到的自變量 (Missing that depends on unobserved predictors):

當(dāng)缺失值不是任意隨機(jī)的,而是和某些我們沒有觀測(cè)到的值有關(guān)。打個(gè)比方,比如在醫(yī)藥研究中,如果一種治療方法引起了病人身體的不適應(yīng),那么病人有很大的概率會(huì)提前從這個(gè)研究中退出導(dǎo)致最后他/她的觀測(cè)值是缺失的,這種缺失不是任意的而是和身體不適應(yīng)相關(guān)的。

缺失值依賴于缺失值本身 (Missing that depends o the missing value itself):

當(dāng)缺失的概率直接和缺失值本身有關(guān)的時(shí)候。比如,一般很高收入和很低收入的人不太喜歡被訪問收入多少,因此收入會(huì)有缺失值。

處理缺失值的方法

a. 刪除:表刪除(List-wise Deletion)和對(duì)刪除(Pair-wise)

通常的數(shù)據(jù)表中,行代表樣本,列代表不同的變量。在列表刪除中,只要一行有任何一個(gè)變量的值有缺失,我們就刪除一整行的信息。簡(jiǎn)單是這個(gè)方法的主要優(yōu)勢(shì),但是很大的劣勢(shì)也是這樣嚴(yán)格的刪除會(huì)導(dǎo)致樣本量的減少。在成對(duì)刪除中,我們對(duì)每一個(gè)變量就用它不缺失的樣本數(shù)進(jìn)行逐個(gè)分析,這種方法盡量的保留了樣本個(gè)數(shù),但是不好的是對(duì)每一個(gè)變量你所使用的樣本個(gè)數(shù)也不一樣。兩種刪除方法如下圖例子所示,左邊是表刪除,而右邊是對(duì)刪除,你可以看到左下圖任何一行有缺失就會(huì)被劃掉刪除,而右下表,對(duì)性別(gender),勞動(dòng)力(manpower),銷售(sales)變量每一個(gè)分別刪除缺失值,而不是一行全部劃掉。

主要備注:刪除的方法只能用于完全隨機(jī)缺失(Missing Completely at Random)的情況,隨意刪除不隨機(jī)的缺失值會(huì)使數(shù)據(jù)產(chǎn)生bias。

b. 均值(mean)/眾數(shù)(mode)/中位數(shù)(median)替換法

替換法是用估計(jì)的值去替換缺失值的方法。這個(gè)方法的目的是利用已知的可以定義的不缺失的數(shù)據(jù)去幫助估計(jì)缺失的數(shù)據(jù)。均值/眾數(shù)/中位數(shù)這三個(gè)都是經(jīng)常被廣泛使用的方法。這種替換法一般也有兩大類:

第一種就是一半的替換,就是我們計(jì)算缺失的變量剩下不缺失的數(shù)據(jù)的均值,眾數(shù)或者中位數(shù)來替換缺失值。例如上圖那個(gè)例子,對(duì)勞動(dòng)力那一個(gè)變量的缺失值,我們計(jì)算不缺失的勞動(dòng)力的數(shù)據(jù)得到28.33,然后用這個(gè)值來替換缺失值。

第二種就是相似替換,比如在上圖那個(gè)例子里的勞動(dòng)力,我們分別計(jì)算不缺失的男和女的勞動(dòng)力平均值,分別是男29.75而女25,因此對(duì)于男,缺失的勞動(dòng)力就用29.5替代,而對(duì)于女,缺失的勞動(dòng)力就用25替代。

c.預(yù)測(cè)模型

用預(yù)測(cè)模型來估算缺失值也是一種理論比較成熟的方法。一般我們會(huì)把數(shù)據(jù)集分為兩個(gè)部分,一個(gè)部分完全沒有缺失值,而另一個(gè)部分含有缺失值。沒有缺失值的數(shù)據(jù)集作為我們的訓(xùn)練數(shù)據(jù)集來得到預(yù)測(cè)模型,而有缺失值的數(shù)據(jù)集作為檢驗(yàn)數(shù)據(jù)集,而缺失的變量就作為要預(yù)測(cè)的目標(biāo)輸出量。下一步,我們用訓(xùn)練集生成一個(gè)預(yù)測(cè)模型,用其他的變量來預(yù)測(cè)缺失的變量,然后把預(yù)測(cè)模型用到檢驗(yàn)數(shù)據(jù)集來得到缺失部分的預(yù)測(cè)值。我們可以使用回歸,方差分析,邏輯回歸或者其他的機(jī)器學(xué)習(xí)的方法去做預(yù)測(cè)模型。

不過這個(gè)方法也有明顯的缺點(diǎn),如果缺失的變量與其他的變量沒有什么關(guān)系,這個(gè)預(yù)測(cè)將會(huì)不準(zhǔn)確。

d. 最近鄰居法(KNN)

在這個(gè)替換方法中,我們用缺失值周圍的離它最近或者是最相似的其他變量來估算。一般兩個(gè)變量的相似度是有距離來決定的。距離的定義可以有多種。這個(gè)方法的優(yōu)點(diǎn)就是缺失值是連續(xù)的或者非連續(xù)的變量都可以替換。不需要對(duì)每一個(gè)缺失的變量生成預(yù)測(cè)模型。數(shù)據(jù)變量間的關(guān)系也都被考慮進(jìn)去了。而缺點(diǎn)是對(duì)于很大的數(shù)據(jù)集,這個(gè)方法很耗時(shí),因?yàn)樗鼤?huì)搜索所有的相似變量,而且k值的選擇(就是缺失值周圍選k個(gè)點(diǎn))也是很重要的,高的k值會(huì)讓幾乎和缺失變量不相關(guān)的變量包含進(jìn)來,而低的k值都會(huì)把很相關(guān)的變量可能排除出去。

下部我將介紹5,6,7步驟,也就是離群值處理,特征工程里面的變量轉(zhuǎn)換和創(chuàng)建。Continued~

資源來源:https://www.analyticsvidhya.com/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容