在海量的數(shù)據(jù)中,大部分數(shù)據(jù)是有缺陷的,這樣的缺陷主要體現(xiàn)在數(shù)據(jù)項有缺失值,數(shù)據(jù)值出現(xiàn)異常,數(shù)據(jù)之間沒有歸一化從而不具有可比性等。數(shù)據(jù)預處理中的數(shù)據(jù)清洗工作就是用來彌補這些數(shù)據(jù)缺陷。
缺失值
比如使用用戶信息中心的數(shù)據(jù)對用戶結(jié)構(gòu)進行分析,但是如果這些在產(chǎn)品中不是必填項,切填與不填產(chǎn)品與服務(wù)前后差異不大,這個時候用戶往往會忽略填寫,甚至胡亂填寫,產(chǎn)生異常值,造成數(shù)據(jù)缺失,此時要用三步走:定、刪、補。
定:定性與定量的了解數(shù)據(jù);對已經(jīng)收集回來并儲存在數(shù)據(jù)庫里的數(shù)據(jù),了解數(shù)據(jù)庫中哪些字段有缺失,確實比例如何,這是一種定量的了解(尋遍所有數(shù)據(jù)庫中所有記錄的屬性即可);明確有缺失數(shù)據(jù)的字段重要性如何,這是一種定性的描述(需要與業(yè)務(wù)場景相結(jié)合)。
刪:當在對業(yè)務(wù)有清晰的判斷的情況下,如果一個字段對于后續(xù)的業(yè)務(wù)沒有太多的幫助,便可直接刪除;如果即便這個數(shù)據(jù)項目對業(yè)務(wù)很有幫助,但是難以直接或通過間接的方式補齊,也只能作罷。對于這種情況,僅有極少量樣本在該字段上有數(shù)據(jù),則可采用少數(shù)樣本特例討論的方式抓取來單獨研究,而對于整體嘖選擇直接刪除這個字段。
補:使用業(yè)務(wù)知識/經(jīng)驗進行填充(K12的教育數(shù)據(jù),年齡缺失時,可以根據(jù)對應年級的學生的年齡對缺失項進行補齊);使用均值、中位數(shù)、眾數(shù)進行填充和補全(收入范圍可以用全體用戶的收入均值補齊缺失項);使用其他渠道的補充(手機號反應歸屬地,身份證包含年齡)。
特出情況特殊分析,隨機應變才是貫穿數(shù)據(jù)處理的主線
異常值
例如因為用戶填寫習慣或是系統(tǒng)原因?qū)е聰?shù)據(jù)在匯總中出現(xiàn)格式不同意的情況等,整體上說,數(shù)據(jù)異常主要體現(xiàn)在四個方面:格式、字符、合理性、一致性。
格式:有時間日期、數(shù)值以及其他一些固定格式的情況,如時間的表示方法有多種,這時就要用統(tǒng)一的方式來進行規(guī)整,使之具有統(tǒng)一的格式,如時間格式統(tǒng)一轉(zhuǎn)化為時間戳。如果不同意會被當做不同的數(shù)據(jù)處理。
字符:由于半角空格或全角空格,或者是因為用戶填寫錯誤或后臺程序讀取與編寫錯誤導致的字符錯誤,也會給數(shù)據(jù)分析帶來一層障礙。
合理性:沒有缺失也沒有填寫錯誤,但是卻不符合常理。如年齡200等,這種情況下,要對數(shù)據(jù)進行一些常理性的推理,但在具體的業(yè)務(wù)場景下,還應該盡可能地給出更多驗證其是否合理的約束條件。
一致性:在一些情況下,不同字段可以進行相互驗證,例如身份證號碼和出生年月。
數(shù)據(jù)工作考驗一個人認真負責的態(tài)度,應當盡力去尋找解決方案。
歸一化
大體上就是將多個有量綱的數(shù)變成一個漫游量綱的數(shù),表象就是對有量綱的數(shù)據(jù)進行處理,而本質(zhì)是將原本帶有單位的絕對數(shù)量變成了沒有單位的相對數(shù)量,經(jīng)過這樣的變化去掉了數(shù)值本身的含義,保留數(shù)據(jù)之間相對大小和比例關(guān)系,歸一化除了可以避免極值問題外,一些算法模型也需要數(shù)據(jù)歸一化作為輸入。
最值歸一化:使用一組數(shù)據(jù)中最大值和最小值進行歸一化,適用于有限定范圍的數(shù)據(jù)。
均值方差歸一化:適用于沒有明顯邊界的數(shù)據(jù),最好是正態(tài)分布的數(shù)據(jù)。使用均值方差歸一化可以把服從某種分布的數(shù)據(jù)變換為標準的正態(tài)分布數(shù)據(jù)。
非線性歸一化:適用于處理極致情況,例如展示10與100000,使用log運算進行非線性歸一化
這樣就可以將兩個數(shù)在表格上等量齊觀的展示出來