更好的數據和更高級的算法,在數據清理中哪個更重要?

在上一章中,咱們學習瞭如何對一個數據集進行探索性分析,也闡述了常見的要從數據集中獲取的信息。算法


基於這些信息,接下來就是經過數據清理,讓咱們的數據集達到最佳狀態了。數據清理也是搭建任何一種推薦系統必經的步驟之一。

數據清理的步驟和技術因數據集而異。咱們沒有辦法在一篇文章中窮盡全部會出現的問題。

這篇文章介紹了數據清理的一些常見步驟,例如修復結構性錯誤,處理丟失的數據以及過濾觀察值。

更好的數據>更高級的算法

數據清理是每一個人都要作的事情之一,但不多有人專門討論這件事,緣由很簡單,這不是機器學習的「最性感」的部分。並且,沒有什麼可供挖掘的隱藏技巧和祕密。

但事實上,數據清理可能會加快或中斷整個項目進程。專業的數據科學家一般在此步驟上花費很大一部分時間。他們爲何要這麼作呢?機器學習中存在一個很簡單的事實:

更好的數據賽過更高級的算法。

換句話說,輸入垃圾數據,獲得的也是垃圾結果。

若是咱們的數據集通過了正確的清洗,那麼即便是簡單的算法也能夠從中獲得深入的啓發!

不一樣類型的數據須要不一樣的清洗方法。可是,本文中闡述的系統方法能夠做爲一個很好的學習起點。

微信



刪除不須要的觀測結果

數據清理的第一步是從數據集中刪除不須要的觀測結果,包括重複或不相關的觀測結果。
網絡

重複的觀測結果

重複的觀測結果最多見於數據收集期間,例如:運維

  • 合併多個來源的數據集時
  • 抓取數據時
  • 從客戶/其餘部門接入數據時



不相關的觀測結果

不相關的觀測結果實際上與咱們要解決的特定問題不符。機器學習

  • 例如,若是咱們僅爲單戶住宅構建模型,則不但願對其中的公寓也進行觀測。
  • 這時候,咱們也能夠在上一步的探索性分析中判斷出來。咱們能夠查看類別特徵的分佈圖,以查看是否有不相關的類存在。
  • 在作工特徵工程以前,咱們也能夠檢查是否存在不相關的觀察結果。

修復結構性錯誤post

結構性錯誤是在測量、數據傳輸或其餘的「不良內部管理」過程當中出現的錯誤。

例如,咱們能夠檢查拼寫錯誤或大小寫不一致的問題。這些主要和分類特徵有關。

這是一個例子:

性能

從上圖中能夠看到:學習

  • 「Composition」與「composition」相同
  • 「asphalt」應爲「Asphalt」
  • 「 shake-shingle」應爲「 Shake Shingle」
  • 「asphalt,shake-shingle」也可能只是「Shake Shingle」


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

ui

最後,檢查標籤錯誤的類,即實際上應該相同的類。人工智能

  • 例如:若是「N/A」和「Not Applicable」顯示爲兩個單獨的類,則應將其合併。
  • 例如:「 IT」和「 information_technology」應該是同一個類。

過濾不須要的異常值

異常值可能會致使某些模型出現問題。例如,線性迴歸模型對異常值的魯棒性不如決策樹模型。

一般,若是咱們有合理的理由要刪除異常值,則能夠提升模型的性能。

可是,在證實異常值無用以前,咱們永遠不要僅僅由於它是一個「大數字」就刪除它,由於這個數字可能對咱們的模型有很大幫助。

這一點很重要:在刪除異常值以前必需要有充分的理由,例如不是真實數據的可疑度量。


處理缺失的數據

在機器學習應用過程當中,數據缺失看上去是一個很棘手的問題。

爲了清楚起見,咱們不能簡單地忽略數據集中的缺失值。因爲大多數算法都不接受缺失值,所以,咱們必須經過某種方式來處理這一點。

「常識」在這裏並不靈驗

根據咱們的經驗,處理丟失數據的兩種最經常使用的推薦方法實際上都不怎麼有用。

這兩種方法分別是:

1.刪​​除具備缺失值的觀測值

2.根據其餘觀察結果估算缺失值

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

  • 缺失值自己可能會提供一些參考
  • 在現實世界中,即便缺乏某些功能,咱們也常常須要對新數據進行預測

插入缺失值也不是最佳選擇,由於該值最初是缺失的,但若是咱們將其填充,不管插入缺失值的方法多麼精確得當,老是會致使信息丟失。

  • 一樣,「遺漏」自己幾乎老是有用的,咱們應該告訴算法是否存在缺乏值。
  • 即便咱們從新創建了模型來估算值,也沒有添加任何實際信息——這樣作僅僅在加強其餘功能已經提供的模式。

丟失數據就像丟失了一塊拼圖。若是將其放下,就好像在僞裝不存在拼圖槽;若是進行估算,那就像是試圖從拼圖上的其餘地方擠一起進去。

簡而言之,自始至終,咱們都應該告訴算法,缺乏值是由於缺乏可提供信息。

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



缺乏分類特徵的數據

處理分類特徵缺失的數據的最佳方法是簡單地將其標記爲「缺失」!

  • 這樣作實質上是在爲該特徵添加新的類。
  • 告訴算法缺乏該值。
  • 知足了技術需求,即要求沒有任何缺失值。

缺乏數字數據

對於缺乏的數字數據,應標記並填充值。

1.使用缺失的指示變量標記觀察結果。

2.爲了知足沒有任何缺失值的技術需求,用0填充原始丟失值。

經過標記和填充,從本質上講,咱們可讓該算法估算缺失的最佳常數,而不只僅是用均值填充。

原文連接:elitedatascience.com/data-cleani…

相關閱讀:

用於推薦系統評估的概念與指標

推薦系統的工做流程

白話推薦系統

想要了解推薦系統?看這裏!(2)——神經網絡方法

想要了解推薦系統?看這裏!(1)——協同過濾與奇異值分解

AutoML如何實現智能推薦系統的自動上線和運維?

入門推薦系統,你不該該錯過的知識清單

如欲申請產品試用,歡迎添加先薦小助手微信號(ID:recsysfc)

本帳號爲第四範式智能推薦產品先薦的官方帳號。帳號立足於計算機領域,特別是人工智能相關的前沿研究,旨在把更多與人工智能相關的知識分享給公衆,從專業的角度促進公衆對人工智能的理解;同時也但願爲人工智能相關人員提供一個討論、交流、學習的開放平臺,從而早日讓每一個人都享受到人工智能創造的價值。

相關文章
相關標籤/搜索