在數(shù)據(jù)清理中,更好的數(shù)據(jù)勝過更高級的算法

0 評論 2947 瀏覽 2 收藏 9 分鐘

數(shù)據(jù)清理的步驟和技術(shù)因數(shù)據(jù)集而異,我們沒有辦法在一篇文章中窮盡所有會出現(xiàn)的問題。這篇文章介紹了數(shù)據(jù)清理的一些常見步驟,例如修復(fù)結(jié)構(gòu)性錯誤,處理丟失的數(shù)據(jù)以及過濾觀察值。

更好的數(shù)據(jù)>更高級的算法

數(shù)據(jù)清理是每個人都要做的事情之一,但很少有人專門討論這件事,原因很簡單,這不是機(jī)器學(xué)習(xí)的“最性感”的部分。而且,沒有什么可供挖掘的隱藏技巧和秘密。

但事實上,數(shù)據(jù)清理可能會加快或中斷整個項目進(jìn)程,專業(yè)的數(shù)據(jù)科學(xué)家通常在此步驟上花費很大一部分時間。

他們?yōu)槭裁匆@么做呢?機(jī)器學(xué)習(xí)中存在一個很簡單的事實:

更好的數(shù)據(jù)勝過更高級的算法。

換句話說,輸入垃圾數(shù)據(jù),得到的也是垃圾結(jié)果。

如果我們的數(shù)據(jù)集經(jīng)過了正確的清洗,那么即使是簡單的算法也可以從中得到深刻的啟發(fā)!

不同類型的數(shù)據(jù)需要不同的清洗方法,但是本文中闡述的系統(tǒng)方法可以作為一個很好的學(xué)習(xí)起點。

刪除不需要的觀測結(jié)果

數(shù)據(jù)清理的第一步是從數(shù)據(jù)集中刪除不需要的觀測結(jié)果,包括重復(fù)或不相關(guān)的觀測結(jié)果。

1. 重復(fù)的觀測結(jié)果

重復(fù)的觀測結(jié)果最常見于數(shù)據(jù)收集期間,例如:

  • 合并多個來源的數(shù)據(jù)集時
  • 抓取數(shù)據(jù)時
  • 從客戶/其他部門接入數(shù)據(jù)時

2. 不相關(guān)的觀測結(jié)果

不相關(guān)的觀測結(jié)果實際上與我們要解決的特定問題不符。

  • 例如,如果我們僅為單戶住宅構(gòu)建模型,則不希望對其中的公寓也進(jìn)行觀測。
  • 這時候,我們也可以在上一步的探索性分析中判斷出來。我們可以查看類別特征的分布圖,以查看是否有不相關(guān)的類存在。
  • 在做工特征工程之前,我們也可以檢查是否存在不相關(guān)的觀察結(jié)果。

修復(fù)結(jié)構(gòu)性錯誤

結(jié)構(gòu)性錯誤是在測量、數(shù)據(jù)傳輸或其他的“不良內(nèi)部管理”過程中出現(xiàn)的錯誤。

例如,我們可以檢查拼寫錯誤或大小寫不一致的問題。這些主要和分類特征有關(guān)。

這是一個例子:

從上圖中可以看到:

  • “Composition”與“composition”相同
  • “asphalt”應(yīng)為“Asphalt”
  • “ shake-shingle”應(yīng)為“ Shake Shingle”
  • “asphalt,shake-shingle”也可能只是“Shake Shingle”

替換錯字和大小寫不一致后,整個分類變得更加整潔:

最后,檢查標(biāo)簽錯誤的類,即實際上應(yīng)該相同的類。

  • 例如:如果“N/A”和“Not Applicable”顯示為兩個單獨的類,則應(yīng)將其合并。
  • 例如:“ IT”和“ information_technology”應(yīng)該是同一個類。

過濾不需要的異常值

異常值可能會導(dǎo)致某些模型出現(xiàn)問題。例如,線性回歸模型對異常值的魯棒性不如決策樹模型。

通常,如果我們有合理的理由要刪除異常值,則可以提高模型的性能。

但是,在證明異常值無用之前,我們永遠(yuǎn)不要僅僅因為它是一個“大數(shù)字”就刪除它,因為這個數(shù)字可能對我們的模型有很大幫助。

這一點很重要:在刪除異常值之前必須要有充分的理由,例如不是真實數(shù)據(jù)的可疑度量。

處理缺失的數(shù)據(jù)

在機(jī)器學(xué)習(xí)應(yīng)用過程中,數(shù)據(jù)缺失看上去是一個很棘手的問題。

為了清楚起見,我們不能簡單地忽略數(shù)據(jù)集中的缺失值。由于大多數(shù)算法都不接受缺失值,因此,我們必須通過某種方式來處理這一點。

1. “常識”在這里并不靈驗

根據(jù)我們的經(jīng)驗,處理丟失數(shù)據(jù)的兩種最常用的推薦方法實際上都不怎么有用。

這兩種方法分別是:

  1. 刪??除具有缺失值的觀測值
  2. 根據(jù)其他觀察結(jié)果估算缺失值

刪除缺失值不是最佳選擇,因為刪除觀察值時會刪除信息。

  • 缺失值本身可能會提供一些參考
  • 在現(xiàn)實世界中,即使缺少某些功能,我們也經(jīng)常需要對新數(shù)據(jù)進(jìn)行預(yù)測

插入缺失值也不是最佳選擇,因為該值最初是缺失的,但如果我們將其填充,無論插入缺失值的方法多么精確得當(dāng),總是會導(dǎo)致信息丟失。

  • 同樣,“遺漏”本身幾乎總是有用的,我們應(yīng)該告訴算法是否存在缺少值。
  • 即使我們重新建立了模型來估算值,也沒有添加任何實際信息——這樣做僅僅在增強(qiáng)其他功能已經(jīng)提供的模式。

丟失數(shù)據(jù)就像丟失了一塊拼圖。如果將其放下,就好像在假裝不存在拼圖槽;如果進(jìn)行估算,那就像是試圖從拼圖上的其他地方擠一塊兒進(jìn)去。

簡而言之,自始至終,我們都應(yīng)該告訴算法,缺少值是因為缺少可提供信息。

具體怎么做呢?告訴算法該值一開始就已丟失。

2. 缺少分類特征的數(shù)據(jù)

處理分類特征缺失的數(shù)據(jù)的最佳方法是簡單地將其標(biāo)記為“缺失”!

  • 這樣做實質(zhì)上是在為該特征添加新的類。
  • 告訴算法缺少該值。
  • 滿足了技術(shù)需求,即要求沒有任何缺失值。

3. 缺少數(shù)字?jǐn)?shù)據(jù)

對于缺少的數(shù)字?jǐn)?shù)據(jù),應(yīng)標(biāo)記并填充值。

  1. 使用缺失的指示變量標(biāo)記觀察結(jié)果;
  2. 為了滿足沒有任何缺失值的技術(shù)需求,用0填充原始丟失值。

通過標(biāo)記和填充,從本質(zhì)上講,我們可以讓該算法估算缺失的最佳常數(shù),而不僅僅是用均值填充。

 

原文作者:?Mahbub Gani

原文鏈接:https://elitedatascience.com/data-cleaning

本文由 @碧綠色的小兔子 翻譯發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!