Data Cleaning(百度百科)
數據清洗是指發現並糾正數據文件中可識別的錯誤的最后一道程序,包括檢查數據一致性,處理無效值和缺失值等。與問卷審核不同,錄入后的數據清理一般是由計算機而不是人工完成。
基本概念
數據清洗(Data cleaning)– 對數據進行重新審查和校驗的過程,目的在於刪除重復信息、糾正存在的錯誤,並提供數據一致性。
數據清洗從名字上也看的出就是把“臟”的“洗掉”,指發現並糾正數據文件中可識別的錯誤的最后一道程序,包括檢查數據一致性,處理無效值和缺失值等。因為數據倉庫中的數據是面向某一主題的數據的集合,這些數據從多個業務系統中抽取而來而且包含歷史數據,這樣就避免不了有的數據是錯誤數據、有的數據相互之間有沖突,這些錯誤的或有沖突的數據顯然是我們不想要的,稱為“臟數據”。我們要按照一定的規則把“臟數據”“洗掉”,這就是數據清洗。而數據清洗的任務是過濾那些不符合要求的數據,將過濾的結果交給業務主管部門,確認是否過濾掉還是由業務單位修正之后再進行抽取。不符合要求的數據主要是有不完整的數據、錯誤的數據、重復的數據三大類。數據清洗是與問卷審核不同,錄入后的數據清理一般是由計算機而不是人工完成
一致性檢查
一致性檢查(consistency check)是根據每個變量的合理取值范圍和相互關系,檢查數據是否合乎要求,發現超出正常范圍、邏輯上不合理或者相互矛盾的數據。例如,用1-7級量表測量的變量出現了0值,體重出現了負數,都應視為超出正常值域范圍。SPSS、SAS、和Excel等計算機軟件都能夠根據定義的取值范圍,自動識別每個超出范圍的變量值。具有邏輯上不一致性的答案可能以多種形式出現:例如,許多調查對象說自己開車上班,又報告沒有汽車;或者調查對象報告自己是某品牌的重度購買者和使用者,但同時又在熟悉程度量表上給了很低的分值。發現不一致時,要列出問卷序號、記錄序號、變量名稱、錯誤類別等,便於進一步核對和糾正。
無效值和缺失值的處理
由於調查、編碼和錄入誤差,數據中可能存在一些無效值和缺失值,需要給予適當的處理。常用的處理方法有:估算,整例刪除,變量刪除和成對刪除。
估算(estimation)。最簡單的辦法就是用某個變量的樣本均值、中位數或眾數代替無效值和缺失值。這種辦法簡單,但沒有充分考慮數據中已有的信息,誤差可能較大。另一種辦法就是根據調查對象對其他問題的答案,通過變量之間的相關分析或邏輯推論進行估計。例如,某一產品的擁有情況可能與家庭收入有關,可以根據調查對象的家庭收入推算擁有這一產品的可能性。
整例刪除(casewise deletion)是剔除含有缺失值的樣本。由於很多問卷都可能存在缺失值,這種做法的結果可能導致有效樣本量大大減少,無法充分利用已經收集到的數據。因此,只適合關鍵變量缺失,或者含有無效值或缺失值的樣本比重很小的情況。
變量刪除(variable deletion)。如果某一變量的無效值和缺失值很多,而且該變量對於所研究的問題不是特別重要,則可以考慮將該變量刪除。這種做法減少了供分析用的變量數目,但沒有改變樣本量。
成對刪除(pairwise deletion)是用一個特殊碼(通常是9、99、999等)代表無效值和缺失值,同時保留數據集中的全部變量和樣本。但是,在具體計算時只采用有完整答案的樣本,因而不同的分析因涉及的變量不同,其有效樣本量也會有所不同。這是一種保守的處理方法,最大限度地保留了數據集中的可用信息。
采用不同的處理方法可能對分析結果產生影響,尤其是當缺失值的出現並非隨機且變量之間明顯相關時。因此,在調查中應當盡量避免出現無效值和缺失值,保證數據的完整性
數據清洗原理
數據清洗原理:利用有關技術如數理統計、數據挖掘或預定義的清理規則將臟數據轉化為滿足數據質量要求的數據。
主要類型
殘缺數據
這一類數據主要是一些應該有的信息缺失,如供應商的名稱、分公司的名稱、客戶的區域信息缺失、業務系統中主表與明細表不能匹配等。對於這一類數據過濾出來,按缺失的內容分別寫入不同Excel文件向客戶提交,要求在規定的時間內補全。補全后才寫入數據倉庫。
錯誤數據
這一類錯誤產生的原因是業務系統不夠健全,在接收輸入后沒有進行判斷直接寫入后台數據庫造成的,比如數值數據輸成全角數字字符、字符串數據后面有一個回車操作、日期格式不正確、日期越界等。這一類數據也要分類,對於類似於全角字符、數據前后有不可見字符的問題,只能通過寫SQL語句的方式找出來,然后要求客戶在業務系統修正之后抽取。日期格式不正確的或者是日期越界的這一類錯誤會導致ETL運行失敗,這一類錯誤需要去業務系統數據庫用SQL的方式挑出來,交給業務主管部門要求限期修正,修正之后再抽取。
重復數據
對於這一類數據——特別是維表中會出現這種情況——將重復數據記錄的所有字段導出來,讓客戶確認並整理。
數據清洗是一個反復的過程,不可能在幾天內完成,只有不斷的發現問題,解決問題。對於是否過濾,是否修正一般要求客戶確認,對於過濾掉的數據,寫入Excel文件或者將過濾數據寫入數據表,在ETL開發的初期可以每天向業務單位發送過濾數據的郵件,促使他們盡快地修正錯誤,同時也可以做為將來驗證數據的依據。數據清洗需要注意的是不要將有用的數據過濾掉,對於每個過濾規則認真進行驗證,並要用戶確認。
數據清洗方法
一般來說,數據清理是將數據庫精簡以除去重復記錄,並使剩余部分轉換成標准可接收格式的過程。數據清理標准模型是將數據輸入到數據清理處理器,通過一系列步驟“ 清理”數據,然后以期望的格式輸出清理過的數據(如上圖所示)。數據清理從數據的准確性、完整性、一致性、惟一性、適時性、有效性幾個方面來處理數據的丟失值、越界值、不一致代碼、重復數據等問題。
數據清理一般針對具體應用,因而難以歸納統一的方法和步驟,但是根據數據不同可以給出相應的數據清理方法。
1.解決不完整數據( 即值缺失)的方法
大多數情況下,缺失的值必須手工填入( 即手工清理)。當然,某些缺失值可以從本數據源或其它數據源推導出來,這就可以用平均值、最大值、最小值或更為復雜的概率估計代替缺失的值,從而達到清理的目的。
2.錯誤值的檢測及解決方法
用統計分析的方法識別可能的錯誤值或異常值,如偏差分析、識別不遵守分布或回歸方程的值,也可以用簡單規則庫( 常識性規則、業務特定規則等)檢查數據值,或使用不同屬性間的約束、外部的數據來檢測和清理數據。
3.重復記錄的檢測及消除方法
數據庫中屬性值相同的記錄被認為是重復記錄,通過判斷記錄間的屬性值是否相等來檢測記錄是否相等,相等的記錄合並為一條記錄(即合並/清除)。合並/清除是消重的基本方法。
4.不一致性( 數據源內部及數據源之間)的檢測及解決方法
從多數據源集成的數據可能有語義沖突,可定義完整性約束用於檢測不一致性,也可通過分析數據發現聯系,從而使得數據保持一致。目前開發的數據清理工具大致可分為三類。
數據遷移工具允許指定簡單的轉換規則,如:將字符串gender替換成sex。sex公司的PrismWarehouse是一個流行的工具,就屬於這類。
數據清洗工具使用領域特有的知識( 如,郵政地址)對數據作清洗。它們通常采用語法分析和模糊匹配技術完成對多數據源數據的清理。某些工具可以指明源的“ 相對清潔程度”。工具Integrity和Trillum屬於這一類。
數據審計工具可以通過掃描數據發現規律和聯系。因此,這類工具可以看作是數據挖掘工具的變形
常用數據清洗方法
數據清洗是將重復、多余的數據篩選清除,將缺失的數據補充完整,將錯誤的數據糾正或者刪除,最后整理成為我們可以進一步加工、使用的數據。
所謂的數據清洗,也就是ETL處理,包含抽取Extract、轉換Transform、加載load這三大法寶。在大數據挖掘過程中,面對的至少是G級別的數據量,包括用戶基本數據、行為數據、交易數據、資金流數據以及第三方的數據等等。選擇正確的方式來清洗特征數據極為重要,除了讓你能夠事半功倍,還至少能夠保證在方案上是可行的。
數據清洗的一般步驟:分析數據、缺失值處理、異常值處理、去重處理、噪音數據處理。在大數據生態圈,有很多來源的數據ETL工具,但是對於公司內部來說,穩定性、安全性和成本都是必須考慮的。
對於數據值缺失的處理,通常使用的方法有下面幾種:
1、刪除缺失值
當樣本數很多的時候,並且出現缺失值的樣本在整個的樣本的比例相對較小,這種情況下,我們可以使用最簡單有效的方法處理缺失值的情況。那就是將出現有缺失值的樣本直接丟棄。這是一種很常用的策略。
2、均值填補法
根據缺失值的屬性相關系數最大的那個屬性把數據分成幾個組,然后分別計算每個組的均值,把這些均值放入到缺失的數值里面就可以了。
3、熱卡填補法
對於一個包含缺失值的變量,熱卡填充法的做法是:在數據庫中找到一個與它最相似的對象,然后用這個相似對象的值來進行填充。不同的問題可能會選用不同的標准來對相似進行判定。最常見的是使用相關系數矩陣來確定哪個變量(如變量Y)與缺失值所在變量(如變量X)最相關。然后把所有變量按Y的取值大小進行排序。那么變量X的缺失值就可以用排在缺失值前的那個個案的數據來代替了。
還有類似於最近距離決定填補法、回歸填補法、多重填補方法、K-最近鄰法、有序最近鄰法、基於貝葉斯的方法等。
異常值通常被稱為“離群點”,對於異常值的處理,通常使用的方法有下面幾種:
1、簡單的統計分析
拿到數據后可以對數據進行一個簡單的描述性統計分析,譬如最大最小值可以用來判斷這個變量的取值是否超過了合理的范圍,如客戶的年齡為-20歲或200歲,顯然是不合常理的,為異常值。
2、3∂原則
如果數據服從正態分布,在3∂原則下,異常值為一組測定值中與平均值的偏差超過3倍標准差的值。如果數據服從正態分布,距離平均值3∂之外的值出現的概率為P(|x-u| > 3∂) <= 0.003,屬於極個別的小概率事件。如果數據不服從正態分布,也可以用遠離平均值的多少倍標准差來描述。
3、箱型圖分析
箱型圖提供了識別異常值的一個標准:如果一個值小於QL01.5IQR或大於OU-1.5IQR的值,則被稱為異常值。QL為下四分位數,表示全部觀察值中有四分之一的數據取值比它小;QU為上四分位數,表示全部觀察值中有四分之一的數據取值比它大;IQR為四分位數間距,是上四分位數QU與下四分位數QL的差值,包含了全部觀察值的一半。箱型圖判斷異常值的方法以四分位數和四分位距為基礎,四分位數具有魯棒性:25%的數據可以變得任意遠並且不會干擾四分位數,所以異常值不能對這個標准施加影響。因此箱型圖識別異常值比較客觀,在識別異常值時有一定的優越性。
4、基於模型檢測
首先建立一個數據模型,異常是那些同模型不能完美擬合的對象;如果模型是簇的集合,則異常是不顯著屬於任何簇的對象;在使用回歸模型時,異常是相對遠離預測值的對象
優缺點:1.有堅實的統計學理論基礎,當存在充分的數據和所用的檢驗類型的知識時,這些檢驗可能非常有效;2.對於多元數據,可用的選擇少一些,並且對於高維數據,這些檢測可能性很差。
5、基於距離
通常可以在對象之間定義鄰近性度量,異常對象是那些遠離其他對象的對象
優缺點:1.簡單;2.缺點:基於鄰近度的方法需要O(m2)時間,大數據集不適用;3.該方法對參數的選擇也是敏感的;4.不能處理具有不同密度區域的數據集,因為它使用全局閾值,不能考慮這種密度的變化。
6、基於密度
當一個點的局部密度顯著低於它的大部分近鄰時才將其分類為離群點。適合非均勻分布的數據。
優缺點:1.給出了對象是離群點的定量度量,並且即使數據具有不同的區域也能夠很好的處理;2.與基於距離的方法一樣,這些方法必然具有O(m2)的時間復雜度。對於低維數據使用特定的數據結構可以達到O(mlogm);3.參數選擇困難。雖然算法通過觀察不同的k值,取得最大離群點得分來處理該問題,但是,仍然需要選擇這些值的上下界。
7、基於聚類:
基於聚類的離群點:一個對象是基於聚類的離群點,如果該對象不強屬於任何簇。離群點對初始聚類的影響:如果通過聚類檢測離群點,則由於離群點影響聚類,存在一個問題:結構是否有效。為了處理該問題,可以使用如下方法:對象聚類,刪除離群點,對象再次聚類(這個不能保證產生最優結果)。
優缺點:1.基於線性和接近線性復雜度(k均值)的聚類技術來發現離群點可能是高度有效的;2.簇的定義通常是離群點的補,因此可能同時發現簇和離群點;3.產生的離群點集和它們的得分可能非常依賴所用的簇的個數和數據中離群點的存在性;4.聚類算法產生的簇的質量對該算法產生的離群點的質量影響非常大。
噪音,是被測量變量的隨機誤差或方差。對於噪音的處理,通常有下面的兩種方法:
1、分箱法
分箱方法通過考察數據的“近鄰”(即,周圍的值)來光滑有序數據值。這些有序的值被分布到一些“桶”或箱中。由於分箱方法考察近鄰的值,因此它進行局部光滑。
用箱均值光滑:箱中每一個值被箱中的平均值替換。
用箱中位數平滑:箱中的每一個值被箱中的中位數替換。
用箱邊界平滑:箱中的最大和最小值同樣被視為邊界。箱中的每一個值被最近的邊界值替換。
一般而言,寬度越大,光滑效果越明顯。箱也可以是等寬的,其中每個箱值的區間范圍是個常量。分箱也可以作為一種離散化技術使用.
2、回歸法
可以用一個函數擬合數據來光滑數據。線性回歸涉及找出擬合兩個屬性(或變量)的“最佳”直線,使得一個屬性能夠預測另一個。多線性回歸是線性回歸的擴展,它涉及多於兩個屬性,並且數據擬合到一個多維面。使用回歸,找出適合數據的數學方程式,能夠幫助消除噪聲。
————————————————
版權聲明:本文為CSDN博主「w97531」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/w97531/article/details/81947376