大數據:清洗流程以及入門實例

數據清洗環境

數據清洗環境是指為進行數據清洗所提供的基本硬件設備和軟件系統,特別是己得到廣泛應用的開源軟件和工具。下面簡要列出了數據清洗操作常用的一些軟件和工具。

(1)終端窗口和命令行界面, 比如Mac OS X上的Terminal程序或Linux上的bash程序。在Windows上,有些命令可以通過Windows的命令提示符運行,而另外一些命令則要通過功能更強的命令行程序來運行,如Cygwin。

(2)適合程序員使用的編輯器,如Mac上的TextWrangler,Linux上的vi或emacs, 或是Windows上的Notepad++、Sublime 編輯器等。

(3) Python客戶端程序,如Enthought Canopy。另外,還需要足夠的權限來安裝一些程序包文件。

(4) 電子表格程序,如Microsoft Excel和Google Sheets。

(5)數據庫軟件,如MySQL和一個用於訪問該數據庫的客戶端軟件。

入門實例

大數據:清洗流程以及入門實例

(一)噪聲數據(異常值)清洗

1,利用數據分佈特徵及箱型圖方法來識別單維數據集中噪聲數據(異常值)

假設一組數據如下:

序號:1 2 3 4 … n

數據 :E1E2E3E4…En

一般情況下,對於數據源離散程度不是很大來說,數據自身分佈將會集中在某一區域內,所以利用數據自身分佈特徵來識別噪聲數據,再根據箱型圖的方法在數據集中域中識別離群值及異常值。

首先,將數據集切等分成αn個區間(α可取1,10,100,1000),區間大小為

θ=(Max{E1,E2,…,En}−Min{E1,E2,…,En})/αn

截取數據分佈集中的區間作為數據集中域,找到數據集中域形成新數據組E ̅。

大數據:清洗流程以及入門實例

利用箱型圖方法,對新數據組剔除離群值,得到非離群數據組[Q1−3IQR,Q3+3IQR],再取非異常數據組[Q1−1.5IQR,Q3+1.5IQR],得到目標數據。Q1:第一分位數,Q3:第三分位數,IQR四分位間距IQR=Q3−Q1。

大數據:清洗流程以及入門實例

實例:在實際情況下,現有的數據平臺系統會遇到各種各樣的關於指標均值計算的問題,遵循數理統計的規律,此時極大噪聲數據對均值計算的負面影響是顯著的。DataEye原始數據源存在一組文件下載時長數據集如下圖:

大數據:清洗流程以及入門實例

如果直接計算其文件平均下載時長,得到的結果為23062.57秒,約6.4小時,與實際情況嚴重不符,說明這一數據集受到顯著的噪聲數據的影響。

對數據集做異常值識別及剔除,將數據集等分為240300個區間,找到數據集中域[0,3266.376]

大數據:清洗流程以及入門實例

對取值在[0,3266.376]之間的數據做箱型圖分析,對新數據組剔除離群值,得到非離群數據組[ Q_1-3IQR, Q_3+3IQR],再取非異常數據組[Q_1-1.5IQR, Q_3+1.5IQR]。

大數據:清洗流程以及入門實例

最後計算目標數據源的平均下載時長為192.93秒,約3.22分,符合實際情況。通過數據分佈特徵及箱型圖的方法來識別剔除噪聲數據的方式較為快捷且效果顯著,可以作為數據清洗的預清洗步驟。

2,利用基於歐幾里德距離的聚類方法來識別多維數據集中噪聲數據(異常值)

一般情況下,利用數據分佈特徵或業務理解來識別單維數據集中噪聲數據是快捷有效,但對於聚合程度高,彼此相關的多維數據而言,通過數據分佈特徵或業務理解來識別異常的方法便顯得無能為力。面對這種窘迫的情況,聚類方法提供了識別多維數據集中噪聲數據的方法。

在很多情況下,把整個記錄空間聚類,能發現在字段級檢查未被發現的孤立點。聚類就是將數據集分組為多個類或簇,在同一個簇中的數據對象之間具有較高的相似度,而不同簇中對象的差別就比較大。將散落在外,不能歸併到任何一類中的數據稱為“孤立點”或“奇異點”。對於孤立或是奇異的噪聲數據(異常值)進行剔除處理。如下圖:

大數據:清洗流程以及入門實例

理想情況下,數據集中的每條記錄都應該是完整的。然而,存在不完整的、含噪聲的數據是現有數據集的共同特點。從上述簡單例子可以看出,基於數據的分佈特徵,對數據的清洗可以採用分箱法或聚類方法較為便捷的識別和剔除數據集中的噪聲數據,從而獲得一份健康的數據,達到良好的清洗效果。

對於普遍的數據傳輸和存儲,數據去重( Data Deduplication)技術是一種專用的數據壓縮技術,用於消除重複的數據。數據去重的主要方法通常使用:按主鍵去重,用sql或者excel"去除重複記錄"即可。按規則去重,編寫一系列的規則,對重複情況複雜的數據進行去重。例如不同渠道來的客戶數據,可以通過相同的關鍵信息進行匹配,合併去重。顯而易見,去重技術能夠顯著地減少存儲空間,對大數據存儲系統具有非常重要的作用。


分享到:


相關文章: