數據分析中的數據清洗怎麼做?

人人都是產品經理 發佈 2024-03-24T19:11:28.230017+00:00

數據清洗是指發現並糾正數據文件中可識別的錯誤的最後一道程序,包括檢查數據一致性,處理無效值和缺失值等。本文作者詳細地講解了數據清洗的步驟,歡迎感興趣的夥伴們閱讀。數據分析整個框架裡面比較關鍵除了模型本身以外,更多依賴的是豐富高質量的數據源。

數據清洗是指發現並糾正數據文件中可識別的錯誤的最後一道程序,包括檢查數據一致性,處理無效值和缺失值等。本文作者詳細地講解了數據清洗的步驟,歡迎感興趣的夥伴們閱讀。

數據分析整個框架裡面比較關鍵除了模型本身以外,更多依賴的是豐富高質量的數據源。在數據收集時需要捕獲有關源的關鍵元數據,如來源、大小、時效性和相關內容的額外知識。疊代地識別當前數據資產基礎和這些數據源的差距,使用分析、可視化、 挖掘或其他數據科學方法探索這些數據源,以定義模型算法輸入或模型假設。

由於原始數據中或多或少存在一些缺失、損壞的髒數據。如果不處理會導致模型失效。就好比,一個水平很高的廚師,給到的原材料如果不衛生不乾淨,那也很難做出一道讓人滿意的菜品。因此在整合數據建立模型之前, 應先評估數據的質量。對數據進行清洗。

當然,數據清洗除了能保障高質量的數據輸出之外。也能夠同步對數據探索。數據清洗和數據探索的作用是相輔相成的,通過數據探索,檢閱數據的特徵描述、分布推斷以及結構上的優化,能更好的為數據清洗選擇合適的清洗方法。而數據清洗後的數據則可以更有效的進行數據探索。本文重點講解數據清洗的一些方法和注意事項。接下來,介紹數據清洗的兩個重要部分:異常值判別和缺失值處理。

01 異常值判別

數據清洗的第一步是識別會影響分析結果的「異常」數據,然後判斷是否剔除。異常值通常有以下幾個表現:

(1)缺乏完整性

完整性即記錄數量名稱是否完整,內部數據由於屬於企業內部自己生產的數據,相對而言比較好掌控檢查。而如果是採購的外部數據,例如:城市土地人口宏觀數據或者某城的二手房交易數據,則完整性需要外部數據供應商提出相應保障。

(2)缺乏準確性

收集的數據必須要能夠正確反映業務需求,否則分析結論會對業務造成誤導。這方面的檢查,需要首先理解業務背景,第二需要判斷收集的此類數據以及數據項是否可以轉換為分析項目所需數據。如果部分數據不符合業務邏輯,或者數據準確性很差,則對數據分析造成很大的影響。

(3)缺乏唯一性

數據的唯一性應該從兩個角度檢查,常見的錯誤是多個數據一個編碼,例如產品住宅,產品商鋪都是同一編碼,或者同時一個實物對應多個編碼。如果導入系統,系統需要能夠識別,否則將會影響分析主體的唯一性。

目前常用的識別異常數據的方法有物理判別法和統計判別法:

物理判別法:根據人們對客觀事物、業務等已有的認識,判別由於外界干擾、人為誤差等原因造成實測數據偏離正常結果,判斷異常值。例如常見的年月日基本信息,顯示值為:1900年1月1日。這種判別方式需要人工干預,檢查的工作量較大,如果沒有找到數據之間的關聯關係容易出錯漏處理。

統計判別法:通過系統設定一個置信概率,並確定一個置信上下限,凡超過此限的誤差,就認為它不屬於隨機誤差範圍,自動判定為異常值。這種方法高效明確,且不會遺漏錯誤髒數據。常用的方法有:拉依達準則、肖維勒準則、格拉布斯準則、狄克遜準則、t檢驗等。(具體描述查看下圖)

這種系統判別並進行刪除異常值的方式雖然高效,但也存在風險。因為每個方法不盡相同,得出的異常值也有可能存在偏差。為了減少這種誤刪的概率,可以將多種統計判別方法結合使用,並且要找出異常值出現的原因。是手工錄入錯誤還是數據接收過程中出錯。同時,如果發現有多個異常值,建議逐個刪除,即刪除一個後再進行檢驗。

02 缺失值處理

在數據缺失嚴重的情況下,分析結果會失真。因此需要將缺失值進行填補,傳統方式檢查出來的空值有人工進行補充,但是需要補充人員找到相關資料檢驗無誤後再進行填補。當然如果對於結果要求並不是特別大,且我們能通過數據找到規律的情況下,可以採用合理的方法自動填補空缺值。例如:可以根據身份證號碼,自動判斷人員的性別。常見的方法有平均值填充、K最近距離法、回歸法、極大似線估計法等。(具體描述查看下圖)

值得注意的是,數據收集的過程中,如果對於某個欄位要求必輸,則可以通過系統導入時自動判斷是否為null,如果為null則導入不成功,從源頭控制數據質量。

當然,我們在做數據分析的過程中,也要看數據量的大小。一般情況下數據量越大,異常值和缺失值對整體分析結果的影響會逐漸變小。所以,在「大數據」模式下,如果異常值和缺失值較小的情況下,可以忽略減輕部分工作量,而側重對數據結構合理性進行分析。

03 格式內容清洗

如果數據是由系統日誌而來,那麼通常在格式和內容方面,會與元數據的描述一致。而如果數據是由人工收集或用戶填寫而來,則有很大可能性在格式和內容上存在一些問題,簡單來說,格式內容問題有以下幾類:

1、欄位顯示格式不一致

這種問題通常與輸入端有關,在整合多來源數據時也有可能遇到,將其處理成一致的某種格式即可。

2、內容中有不該存在的字符

某些內容可能只包括一部分字符,比如身份證號是數字+字母,中國人姓名是漢字(趙C這種情況還是少數)。最典型的就是頭、尾、中間的空格,也可能出現姓名中存在數字符號、身份證號中出現漢字等問題。這種情況下,需要以半自動校驗半人工方式來找出可能存在的問題,並去除不需要的字符。

3、內容與該欄位應有內容不符

姓名寫了性別,身份證號寫了手機號等等,均屬這種問題。但該問題特殊性在於:並不能簡單的以刪除來處理,因為成因有可能是人工填寫錯誤,也有可能是前端沒有校驗,還有可能是導入數據時部分或全部存在列沒有對齊的問題,因此要詳細識別問題類型。

格式內容問題是比較細節的問題,但很多分析失誤都是栽在這個坑上,比如跨表關聯或VLOOKUP失敗(多個空格導致工具認為「張三」和「張 三」不是一個人)、統計值不全(數字裡摻個字母當然求和時結果有問題)等等,需要大家重點關注。

專欄作家

成於念,微信公眾號:Laosiji,人人都是產品經理專欄作家。關注網際網路+行業、數位化轉型落地。專注領域包括IT數據管理、數據資產、數據應用和最佳企業數據案例實踐分享。

本文原創發布於人人都是產品經理,未經作者許可,禁止轉載。

題圖來自 Unsplash,基於CC0協議。

該文觀點僅代表作者本人,人人都是產品經理平台僅提供信息存儲空間服務。

關鍵字: