久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

缺失數(shù)據(jù)別怕!這里有份強大的初學者指南

 東西二王 2020-06-23
全文共

4898

字,,預計學習時長

10

分鐘

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

實際上,數(shù)據(jù)科學家80%到90%的工作是數(shù)據(jù)清理,,而這項工作的目的是為了執(zhí)行其余10%的機器學習任務,。沒有什么比完成數(shù)據(jù)集分析后的收獲更讓人興奮的了。如何減少清理數(shù)據(jù)的時間,?如何為至關(guān)重要的10%的工作保留精力,?

根據(jù)很多專業(yè)人士的經(jīng)驗,對數(shù)據(jù)清理涉及的過程有充分的認知總是好的,。了解流程,、流程的重要性以及流程中可使用的技巧,將減少執(zhí)行數(shù)據(jù)清理任務所需的時間,。

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

良好數(shù)據(jù)的重要性

好的數(shù)據(jù)被定義為準確、完整,、符合,、一致、及時,、獨特且有效的數(shù)據(jù),。機器學習算法依賴于“好數(shù)據(jù)”來構(gòu)建模型,執(zhí)行和概括性能,。對于實際數(shù)據(jù),,當意識到ML算法不起作用或者ML算法的性能無法在更大的數(shù)據(jù)集中推廣時,通常會發(fā)現(xiàn)數(shù)據(jù)問題,。

在第一次數(shù)據(jù)科學的過程中找到所有數(shù)據(jù)問題幾乎是不可能的,。需要做好以下準備:數(shù)據(jù)清理的迭代過程 - >數(shù)據(jù)建模 - >性能調(diào)整。在迭代過程中,,通過從一開始就獲得基本面,,可以大幅縮短時間。

在統(tǒng)計學中,,經(jīng)常會發(fā)現(xiàn)有人將數(shù)據(jù)分析過程比作約會,。在最初的約會中,了解伴侶(即數(shù)據(jù))至關(guān)重要。是否有可能在后期出現(xiàn)的交易破壞者,?這些交易破壞者是你一開始就要抓住的,,它們將使數(shù)據(jù)有失偏頗。

數(shù)據(jù)中最大的交易破壞者之一是“數(shù)據(jù)缺失”,。

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

了解缺失的數(shù)據(jù)

缺失的數(shù)據(jù)可以有各種形狀和大小。它們可能類似于下面第1行的數(shù)據(jù),,其中只有胰島素欄有所缺失,。它們也可以是第2行中丟失的許多欄數(shù)據(jù)。它們還可以是第3行中包含0的許多欄數(shù)據(jù),。需要知道它們有許多變體,。可視化每列數(shù)據(jù)只能到此為止,。在箱線圖中可視化每欄數(shù)據(jù)以查找異常值,。或者使用熱圖來可視化數(shù)據(jù),,突出顯示缺失的數(shù)據(jù),。

缺失數(shù)據(jù)別怕!這里有份強大的初學者指南

吳軍的糖尿病缺失數(shù)據(jù)

在Python中:

import seaborn as sb sb.heatmap(df.isnull(),cbar=False)

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

如何對缺失數(shù)據(jù)進行分類,?

缺失數(shù)據(jù)別怕!這里有份強大的初學者指南

圖片來源:pexels.com/@black-ice-551383

在可視化缺失數(shù)據(jù)后,,第一件事是對丟失的數(shù)據(jù)進行分類,。

有三類缺失數(shù)據(jù):完全缺失隨機(MCAR),缺失隨機(MAR),,缺失不隨機(MNAR):

MCAR—缺失值完全隨機丟失,。數(shù)據(jù)點丟失的傾向與其假設(shè)值和其他變量的值無關(guān)。

MAR—由于某些觀察到的數(shù)據(jù)而缺少缺失值,。數(shù)據(jù)點丟失的傾向與丟失的數(shù)據(jù)無關(guān),,但它與一些觀察到的數(shù)據(jù)有關(guān)。

MNAR—缺失的值不是隨機丟失的,,而是有原因的,。通常,原因在于缺失值取決于假設(shè)值,,或者取決于另一個變量的值,。

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

缺失的數(shù)據(jù)是隨機的嗎,?

如果數(shù)據(jù)隨機丟失,則將以不同于隨機丟失的數(shù)據(jù)的方式來處理數(shù)據(jù)。使用Little’sMCAR測試來確定數(shù)據(jù)是否隨機丟失,。

Little’sMCAR的原假設(shè):數(shù)據(jù)完全隨機缺失,。根據(jù)測試結(jié)果,你可以拒絕或接受此原假設(shè),。

在SPSS中: 使用Analyze - > Missing Value Analysis - > EM

在R中,,使用BaylorEdPsych集合中的LittleMCAR()函數(shù)。

傳送門:https:///cran/BaylorEdPsych/man/LittleMCAR.html?source=post_page---------------------------

LittleMCAR(df)#df是不超過50個變量的數(shù)據(jù)幀

解釋:如果sig或統(tǒng)計顯著性大于0.05,,則沒有統(tǒng)計學意義,。這意味著要接受“數(shù)據(jù)完全隨機缺失”的原假設(shè)。

如果是MAR和MCAR,,則刪除,。

反之,估算,。

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

刪除方法

列表刪除—此方法是指移除包含一個或多個缺失數(shù)據(jù)的整個數(shù)據(jù)記錄。

缺點—統(tǒng)計能力依賴于高樣本量,。在較小的數(shù)據(jù)集中,,列表刪除可以減少樣本量。除非確定該記錄絕對不是MNAR,,否則此方法可能會給數(shù)據(jù)集引入偏差,。

在Python中:

nMat <-cov(diabetes_data,use =“complete.obs”)

成對刪除—在分析基礎(chǔ)上,,利用變量對之間的相關(guān)性來最大化可用數(shù)據(jù)的方法,。

在Python中:

nMat <-cov(diabetes_data,use =“pairwise.complete.obs”)

缺點—由于不同數(shù)量的觀察結(jié)果對模型的不同部分有貢獻,,難以解釋模型的各個部分,。

刪除變量—這一方法是指,在數(shù)據(jù)缺少60%的情況下刪除變量,。

diabetes_data.drop('column_name',,axis = 1,inplace = True)

缺點—難以知曉丟棄的變量如何影響數(shù)據(jù)集中的其他變量,。

如果不能刪除,,那么估算則是另一種方法。

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

缺失數(shù)據(jù)插補的方法

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

圖片來源:pexels.com/@markusspiske

分類變量—這些變量具有固定數(shù)量的可能值。這些變量組成的一個例子是性別=男性,,女性,,不適用,。

對于分類變量,有 3種方法來估算數(shù)據(jù),。

· 從缺失值中創(chuàng)建新級別

· 使用邏輯回歸,、KNN等預測模型來估計數(shù)據(jù)

· 使用多個插補

連續(xù)變量—這些變量具有位于某個區(qū)間的實際值。其中的一個例子是支付金額= 0到無窮大,。

對于連續(xù)變量,,可以使用3種方法來估算數(shù)據(jù)。

· 使用均值,、中位數(shù),、模式

· 使用線性回歸,KNN等預測模型來估算數(shù)據(jù)

· 使用多個插補

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

從缺失的值中創(chuàng)建新的級別

如果沒有大量缺失值,,那么為缺失值創(chuàng)建新級別的分類變量是處理缺失值的好方法。

在Python中:

import pandas as pd
 
diabetes=pd.read_csv('data/diabetes.csv')
diabetes['Gender'].fillna('No Gender', inplace=diabetes

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

平均值,、中位數(shù)、模式

該方法涉及使用平均值,,中位數(shù)或模式來估算缺失的數(shù)據(jù),。這種方法的優(yōu)點是它很容易實現(xiàn)。但同時也有許多缺點,。

在Python中:

df.Column_Name.fillna(df.Column_Name.mean(),,inplace = True) df.Column_Name.fillna(df.Column_Name.median(),inplace = True) df.Column_Name.fillna(df.Column_Name.mode(),,inplace = True)

平均值,、中位數(shù)、模式估算的缺點—它減少了估算變量的方差,,也縮小了標準誤差,,這使大多數(shù)假設(shè)檢驗和置信區(qū)間的計算無效。它忽略了變量之間的相關(guān)性,,可能過度表示和低估某些數(shù)據(jù),。

缺失數(shù)據(jù)別怕!這里有份強大的初學者指南

邏輯回歸

以一個統(tǒng)計模型為例,,它使用邏輯函數(shù)來建模因變量,。因變量是二進制因變量,其中兩個值標記為“0”和“1”,。邏輯函數(shù)是一個S函數(shù),,其中輸入是對數(shù)幾率,輸出是概率,。(例如:Y:通過考試的概率,,X:學習時間.S函數(shù)的圖形如下圖)

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

圖片來自維基百科:邏輯回歸

在Python中:

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import Imputer
from sklearn.linear_model import LogisticRegression
imp=Imputer(missing_values='NaN', strategy='mean', axis=0)
logmodel = LogisticRegression()
steps=[('imputation',imp),('logistic_regression',logmodel)]
pipeline=Pipeline(steps)
X_train, X_test, Y_train, Y_test=train_test_split(X, y, test_size=0.3,random_state=42)
pipeline.fit(X_train, Y_train)
y_pred=pipeline.predict(X_test)
pipeline.score(X_test, Y_test)

邏輯回歸的缺點

- 由于夸大其預測準確性的事實,容易過度自信或過度擬合,。

- 當存在多個或非線性決策邊界時,,往往表現(xiàn)不佳,。

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

線性回歸

以一個統(tǒng)計模型為例,它使用線性預測函數(shù)來模擬因變量,。因變量y和自變量x之間的關(guān)系是線性的,。在這種情況下,系數(shù)是線的斜率,。點到線形成的距離標記為(綠色)是誤差項,。

缺失數(shù)據(jù)別怕!這里有份強大的初學者指南

圖片來自維基百科:線性回歸

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

圖片來自維基百科:線性回歸

在Python中:

from sklearn.linear_model import LinearModel from sklearn.preprocessing import Imputer from sklearn.pipeline import Pipeline imp=Imputer(missing_values='NaN', strategy='mean', axis=0) linmodel = LinearModel() steps=[('imputation',imp),('linear_regression',linmodel)] pipeline=Pipeline(steps) X_train, X_test, Y_train, Y_test=train_test_split(X, y, test_size=0.3,random_state=42) pipeline.fit(X_train, Y_train) y_pred=pipeline.predict(X_test) pipeline.score(X_test, Y_test

線性回歸的缺點

- 標準錯誤縮小

- x和y之間需具有線性關(guān)系

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

KNN(K-近鄰算法)

這是一種廣泛用于缺失數(shù)據(jù)插補的模型。它被廣泛使用的原因是它可以處理連續(xù)數(shù)據(jù)和分類數(shù)據(jù),。

此模型是一種非參數(shù)方法,,可將數(shù)據(jù)分類到最近的重度加權(quán)鄰居。用于連續(xù)變量的距離是歐幾里德,,對于分類數(shù)據(jù),,它可以是漢明距離(Hamming Distance)。在下面的例子中,,綠色圓圈是Y.它和紅色三角形劃分到一起而不是藍色方塊,,因為它附近有兩個紅色三角形。

缺失數(shù)據(jù)別怕,!這里有份強大的初學者指南

圖片來自維基百科:KNN

from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import Imputer
from sklearn.pipeline import Pipeline
k_range=range(1,26)
 
for k in k_range:
 imp=Imputer(missing_values=”NaN”,strategy=”mean”, axis=0)
 knn=KNeighborsClassifier(n_neighbors=k)
 steps=[(‘imputation’,imp),(‘K-NearestNeighbor’,knn)]
 pipeline=Pipeline(steps)
 X_train, X_test, Y_train,Y_test=train_test_split(X, y, test_size=0.3, random_state=42)
 pipeline.fit(X_train, Y_train)
 y_pred=pipeline.predict(X_test)
 pipeline.score(X_test, Y_test)

KNN的缺點

- 在較大的數(shù)據(jù)集上耗費時間長

- 在高維數(shù)據(jù)上,,精度可能會嚴重降低

缺失數(shù)據(jù)別怕!這里有份強大的初學者指南

多重插補

多個插補或MICE算法通過運行多個回歸模型來工作,,并且每個缺失值均根據(jù)觀察到(非缺失)的值有條件地建模,。多次估算的強大之處在于它可估算連續(xù),二進制,,無序分類和有序分類數(shù)據(jù)的混合,。

多重插補的步驟是:

· 用鼠標輸入數(shù)據(jù)()

· 使用with()構(gòu)建模型

· 使用pool()匯集所有模型的結(jié)果

在R中,MICE集提供多個插補,。

library(mice) imp<-mice(diabetes, method='norm.predict', m=1) data_imp<-complete(imp) imp<-mice(diabetes, m=5) fit<-with(data=imp, lm(y~x z)) combine<-pool(fit)

MICE的缺點

· 不像其他估算方法一樣具有理論依據(jù)

· 數(shù)據(jù)的復雜性

處理缺失的數(shù)據(jù)是數(shù)據(jù)科學家工作的最重要部分之一,。算法中擁有干凈的數(shù)據(jù)意味著你的機器學習算法的性能會更好。在數(shù)據(jù)清理過程開始時,,區(qū)分MCAR,,MAR,,MNAR是必不可少的。雖然有不同的方法來處理缺失的數(shù)據(jù)插補,,但KNN和MICE仍然是處理連續(xù)和分類數(shù)據(jù)的最受歡迎的方法,。

缺失數(shù)據(jù)別怕!這里有份強大的初學者指南

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多