數據與特徵

資料清洗(data cleaning)

/ DAY-tuh KLEE-ning /

現實世界裡的資料來時是亂的,就像剛從田裡拔出、還沾滿泥土的蔬菜。有錯別字、空白格、五花八門寫法的日期、帶著多餘貨幣符號的價格,同一位顧客以略有出入的名字被錄入了兩遍。資料清洗,就是在模型見到它之前,把這一切洗淨、理順的那份不光鮮卻必不可少的工作。

具體說來,清洗包括:修正或剔除明顯錯誤,統一格式(同一種日期寫法、同一種度量單位),去除重複列,規範文字(讓「NYC」和「New York City」被認作同一地方),決定如何處理缺失值,以及標出不可能的條目,比如一個200歲的人或負數的體重。目標是得到準確、一致、可信的資料——未必完美,但要好到讓其中的規律是真實的,而非粗心造成的假象。

為何重要:垃圾進,垃圾出。模型會忠實地學到資料裡的一切,包括其中的錯誤,因此髒資料會悄無聲息地毒化下游的一切。實踐中,資料科學家常常把一個專案的大部分時間花在清洗與準備上,而非建模本身。這活兒乏味,卻往往正是模型可靠性獲得最大提升的地方。

在一張銷售表裡,你發現「$1,200」「1200 USD」和「1.2k」指的是同一個金額;城市欄裡有「Beijing」「beijing」和「Peking」;還有用999當作「未知」佔位的年齡。清洗會把它們變成一欄乾淨的數字、一個規範統一的城市名,以及一個誠實標出的「年齡缺失」標記。

一個金額、一座城市的三種寫法,加一個假年齡——清洗讓它們變得誠實而一致。

清洗是為了去掉錯誤,而不是去掉不順心的真相。僅僅因為某些列拉低了模型分數就刪掉它們,或把數值「修正」成你期望看到的樣子,這不是清洗——而是在偷偷製造結論。

又稱
data cleansingdata scrubbing数据清洗数据清理資料清理