數據質量的六個維度-以及如何處理它們
在堅實的基礎上建立模型和分析
垃圾進垃圾出。 誕生于計算機科學早期的熟悉的短語也是如此,它強調了驗證輸入的重要性。
您可以擁有最巧妙,最優雅,經過充分測試的功能,模型或應用程序-但是結果僅與輸入的結果一樣好。
每當我們開發代碼時,我們都會提前對其將處理的數據的性質進行假設。 一個簡單的算術函數可能期望單個浮點數。 小吃攤亭的需求預測模型可以以特定表格形式預期最近五年的銷售數字。 無人駕駛汽車控制器將從車輛周圍的許多傳感器接收不同的數據流。
如果違反了這些假設,那么可能會發生三件事之一。
- 該代碼對照預期檢查輸入并啟動計劃B。這可能是為了警告用戶數據問題并正常停止。
- 代碼遇到運行時錯誤,導致程序崩潰。
- 該代碼繼續進行,忽略了錯誤的輸入,并產生了可能合理的但不正確的輸出。
第一種情況為您提供降落傘,第二種情況為您帶來頭痛,第三種情況為您在融化的Cornetto水坑中提供多輛汽車堆積。
錯誤的數據=>錯誤的決定
隨著組織變得更加成熟的數據,重要的業務決策越來越頻繁地依賴于數據分析和建模。 如果做出這些決定的數據不完整,那么基于該數據的推理將是有缺陷的,可能會帶來非常昂貴的后果。
這就是為什么了解數據質量并了解正在使用的數據可能無法滿足您的需求如此重要的原因。
準確性
曾經創建的每條數據,都起源于現實世界中的事件或度量。 這可能是溫度傳感器的輸出,金融交易的記錄或有人在網絡表單中鍵入其姓名。 準確性描述了"數據正確描述所描述的"現實世界"對象的程度。"
為了實現這一點,從真實世界到數據集的每個步驟都必須正確保留原始內容的本質。
在事件/對象的測量或記錄過程中,可能就在開始時就可能發生錯誤。 2020年5月,由于填寫錯誤的申請表時出錯,澳大利亞政府高估了COVID 19工資補貼計劃的支出承諾600億澳元(合390億美元)。 要求雇主說明他們加入該計劃的雇員人數。 但是,在0.1%的情況下,他們提交了所需補貼的美元價值—正確金額的1,500倍。 這些錯誤被遺漏了,它們的總價值流入了議會通過的法案中。 幾周后,政府宣布了自己的錯誤,面紅了,但對于在沙發后方找到600億美元的想法,可能并不太不滿意。
在上面的示例中,僅列出前100名左右的索賠人可能會闡明該問題。 您可能希望找到大型的快餐和零售品牌,連鎖酒店等,但是當您遇到一家當地餐館或一家小型旅游公司,聲稱擁有數千名員工時,您就會知道這是一個問題。
這突出了基本分析和概要分析對理解數據集的重要性。 在進行任何報告或建模之前,您需要仔細查看每個字段以查看其值是否有意義,并且不要感到奇怪。
精度與表親有密切關系:精度。 環法自行車賽的賽段時間以小時和秒為單位進行記錄,但這在奧運會的100m決賽中無效。 在數據類型轉換期間,或者由于用于進行初始測量的儀器的靈敏度,精度可能會丟失,并且可能導致模型可用的方差較低。
完整性
數據完整性表示"數據集中所需數據的程度"。 任何數據集都可能有缺口和數據缺失,但是缺失的數據是否會影響您回答問題的能力。 要了解的關鍵是是否引入了會影響您結果的偏見。
1936年,《文學文摘》(Literary Digest)進行了一項民意調查,詢問受訪者是否會投票支持共和黨人阿爾弗雷德·蘭登(Alfred Landon),還是現任民主黨人富蘭克林·羅斯福(Franklin D. Roosevelt)。 但是,郵件列表主要是從電話目錄中選擇的。 現在,在1936年,電話遠非普及,被認為是奢侈品。 因此,由于遺漏了那些無法負擔電話的人,郵寄名單最終偏向于中上層選民。 一旦做出回應,《文學文摘》就正確地預測出了滑坡。 然而,不幸的是,蘭登而不是羅斯福發生了滑坡,羅斯福最終在美國歷史上最單方面的選舉中贏得了48個州中的46個。 通過使用更完整的數據集(例如選舉名冊),或者至少通過理解和調整其缺失數據所造成的偏差,投票數字可能已經接近目標。
完整性問題可能會在記錄級別發生,就像上面那樣,您會丟失全部行,但也可能會在列級別發生,即,字段在80%的時間內可能為空白。 如果缺失值不是均勻分布的,這可能會跳出許多機器學習方法,并且可能再次引入偏差。 為了緩解此問題,有兩種方法:
- 丟棄不完整的列
- 丟棄包含缺失數據的行
- 插補丟失的數據(也稱為空白)
Yoghita Kinha的精彩文章"如何處理數據集中的缺失值"中包含對上述方法的全面介紹。
盡管實際響應率要低得多,但默認值給人一個完整字段的錯覺,這是一個更加棘手和更隱蔽的完整性問題。 當我為零售時尚品牌建立客戶終身價值模型時,這曾經發生在我身上。 每個客戶檔案上都有一個"性別"標志-M代表男性,F代表女性。 該字段在數據集中具有很高的完整性,但是當一些基本分析顯示大約6個月前向女性客戶急劇轉變時,人們就產生了懷疑。 事實證明,在最近重新設計的注冊表單中,性別字段已從沒有默認值的必需下拉框更改為默認="女性"的下拉列表。 這種微小的變化意味著忽略該字段的客戶現在被記錄為女性,而不是被發送回表格中填寫。
一致性
如果在多個位置復制數據,則所有實例之間的數據必須保持一致。 對于百貨商店,您可以通過會員計劃,郵件列表,在線帳戶支付系統和訂單履行系統來保存特定客戶的數據。 在混亂的系統中,可能會有拼寫錯誤的名稱,舊地址和沖突的狀態標志。 這可能會導致僅從數據點的一個實例讀取數據的過程出現問題,例如,如果某個客戶退訂了營銷電子郵件,但是這并未反映該客戶的所有代表,他們可能會繼續接收通信, 他們感到非常沮喪。 不一致的聯系信息還可能導致在打電話或向深淵發送信件時浪費金錢。
在上面的示例中,擁有一個高度集成的客戶數據平臺(例如Segment或Omneo)可以幫助匯總客戶的單個視圖,并確保解決一致性方面的問題。
及時性
您的數據集是否足夠最新? 事件發生與它出現在您的數據之間有什么滯后。 很多數據分析和建模都將基于歷史快照,因此直到今天為止都不需要運行它們。 但是,實時決策需要實時數據。 如果每天只能一次分批下載來自雷達系統的數據,那么這對空中交通管制員不會有太大幫助。 如果某些商店由于連接問題而推遲了周日的銷售數據,那么您周一的管理會議數字將不正確。
您的數據集的及時性可能取決于導致其創建的數據集成管道。 這可以是實時的,可以在事件描述后立即提供數據,也可以批量處理,這意味著數據將"凍結"直到下一次刷新。 對該管道的更改可能使您可以訪問更多最新數據,并對新事件做出更快的響應。
獨特性
每個真實世界的對象或事件僅應在特定的數據集中表示一次。 即 是否有John Doe和Johnny Doe的客戶記錄,盡管他們實際上是同一個人。
因此,任何涉及客戶的指標(客戶數量,每位客戶的支出,購買頻率)都將由于包含一個人的重復表示而被剔除。
發現此問題意味著確定適當的主鍵。 在John Doe和Johnny Doe的示例中,他們可以具有不同的名稱和客戶ID,但是可以匹配電子郵件地址,這有力地暗示了他們是同一個人。 這意味著在進行任何分析或建模之前,需要進行數據整理以合并這些客戶記錄的附加步驟。
有效期
數據集中的字段可能具有其必須滿足的條件才能被視為有效。 電子郵件地址必須帶有" @"符號,電話號碼必須是數字序列,并且會員級別字段可能需要為" Gold"," Silver"或" Bronze"。
在許多情況下,使用正則表達式可以輕松實現有效性檢查。 有在線數據庫,例如regexlib.com,其中包含數千種常見數據類型的正則表達式。 對于離散數據類型,例如上面的成員資格級別示例,簡單的頻率統計信息可以告訴您是否存在有效性問題。 如果除了" Gold"," Silver"或" Bronze"以外,還有大量其他值,則說明出現了問題。
一旦識別出無效數據,它將有效地成為完整性問題,可以使用前面介紹的方法來解決。
綜上所述
在任何數據科學項目的開始階段,重要的是要清楚地了解您的數據及其從源到數據集的路徑。 盡管可能會急于實施您項目中更性感,更復雜的部分,但如果它建立在不穩定的基礎上,那將是浪費時間。 只有認真地進行提問,測試假設,分析和理解數據的工作,您才能真正對分析的質量充滿信心。