'白話大數據:數據預處理之術'

"

數據預處理是數據化工作中非常重要的一部分,但是很多人往往會對如何處理感到迷惑。而本文的作者就為我們仔細介紹瞭如何進行數據預處理。

"

數據預處理是數據化工作中非常重要的一部分,但是很多人往往會對如何處理感到迷惑。而本文的作者就為我們仔細介紹瞭如何進行數據預處理。

白話大數據:數據預處理之術

隨著互聯網流量紅利的逐漸消退,各公司之間的競爭形勢日益嚴峻,企業正在不斷尋找提高利潤率、降低成本、提高產出價值的有效方法,而數據化經營已經逐漸成為各企業的關鍵武器。作為產品經理,相信你經常會得到公司的各種經營數據,但你是否會因為如下情況而煩惱:

  • 關鍵數據出現缺失值(NaN)
  • 異常數據無法判斷是否存在價值
  • 重複數據的信息冗餘
  • 非數值型的數據無法處理(如學歷)
  • 數據樣本差異量非常大(如A樣本有 10W+ B樣本只有 100)

等等如上問題都會影響你的數據工作結果的有效性。今天我們就來講一講如何利用數據預處理解決如上問題。數據預處理是數據工作中最為重要的環節,它直接決定了後期所有數據工作的質量和價值輸出。主要包括:數據清洗、數據轉換、數據降維、數據抽樣等。本篇將主要圍繞針對髒數據的數據清洗進行展開。

數據清洗- 尋找根源

每當我們遇到髒數據時,處理這些髒數據最理想方法就是找出引起這些髒數據的原因,並從源頭上進行解決。髒數據主要來源來自以下幾個方面:

  • 採集失誤因素
  • 人為故意因素
  • 自然因素

無論是傳統模式還是互聯網,數據定義、採集、測量、處理規則是由人來規定的。而在這個過程中,數據採集者因為一些無意的人為錯誤會導致數據出現異常。

二戰期間,美國統計學家沃德教授被授命研究如何降低戰機被擊落的可能性。他經過採集迴歸的戰機數據發現:飛機的機翼是最容易被擊中的部分,而飛機的尾部則是被擊中最少的部分。根據當時的航空技術,機器的裝甲只能局部加強,那你會選擇加強機翼還是加強尾部?

似乎從數據上來看答案是顯而易見的——加強機翼,可真的是這樣嘛?沃德教授並不這樣認為,因為在數據採集時已經存在了採集異常。迴歸的飛機機尾部分很少中彈,並不是它不會真的中彈,而是可能一旦中彈後,就無法返航也就無法進入數據集。

後來軍方動用敵後工作人員重新去採集飛機的殘骸,發現中彈的部位果然如沃德教授所預料,主要集中在尾部位置。

正如案例所示,採集失誤通常依靠求助數據專家來診斷數據採集過程中存在的業務漏洞來進行解決。

第二個髒數據來源主要是人為故意因素。這個相信你一定不會陌生,因為互聯網經常會面對一個問題就是數據造假。

數據造假,是指通過刷單、刷量、刷分、搬運原創內容等,影響消費者的決定,為商家贏得更多生意,平臺也可給投資人一份好看的數據,因而數據造假已成為行業的大問題,甚至成為許多點評類網站的“潛規則”。

針對人為故意因素,通常需要依靠數據採集者自己的行業沉澱來進行識別解決,以下提供幾種識別方法:

  • 通過橫向,即尋找相同業務的公司進行數據對比,尋找數據異常差異。
  • 通過縱向,即尋找數據提供方過往的數據報表,尋找數據的異常波動。
  • 通過內部,即通過和數據提供方內部成員交流,尋找數據異常的原因。

第三個髒數據的來源是自然因素,針對自然非人為因素我們通常才會進入數據處理的流程。

數據清洗 – 缺失值處理

數據清洗顧名思義,主要就是將不合格的數據進行整理,通過去除異常、糾正錯誤、補足缺失來讓數據集滿足分析的需求。整個過程中數據清洗處理的一般就是缺失值、重複值和異常值。我們先來說說缺失值的處理,將之前我們先來介紹下常用的數據集結構。

可以看出我們通常用行來表示數據記錄(如用戶),而用列來表示相應屬性(如性別、年齡)。缺失值的兩種情況相信你已經猜到:

  • 一是行記錄的缺失,即數據記錄的丟失;
  • 二是列記錄的缺失,即數據記錄中的某些屬性值出現空缺。

數據記錄的丟失通常無法找回,所以一般缺失值處理僅針對屬性值的缺失進行處理。我們先來講下第一種處理方式,就是不處理。

你內心肯定在想,什麼鬼?不處理也是一種方式?

沒錯,這的確是一個預處理的方式,因為有時候數據分析及應用有時候對缺失值是存在容忍性的,比如在進行數據降維處理的時候(有興趣的朋友可以去了解下PCA)。很多屬性值其實對數據分析的結果相關性非常小,這些屬性值的缺失並不會對分析結果帶來任何影響,那我們完全可以採用不處理的方式來對待。那如果出現不能用這種方式的情況時該怎麼解決?這裡我們介紹第二種方法,刪除。

刪除顧名思義就是直接刪除有缺失值的數據記錄。是不是有一種暢快淋漓的感覺?但這種方法明顯存在它的缺陷,當出現以下情況的時候,用刪除並不合理:

  • 大量的數據記錄都或多或少存在屬性缺失(如超過 30 %)
  • 存在屬性缺失的數據記錄都是同一類(如80%的男性用戶均沒有年齡信息)

如上兩種情況都會導致通過數據集推斷出的結論會存在不準確,因為大量攜帶有用信息的數據記錄已被遺棄,於是我們有了第二點方法,即填補。

填補是我們更為常用的一種處理方式。填補就是通過一定的方法將存在缺失屬性的數據記錄進行補全。通常可以採用如下方法:

  • 利用其餘數據記錄的屬性進行填補:比如針對缺失年齡屬性的用戶數據記錄,我們可以採用提取所有用戶的年齡進行均值,中位數,眾數等方法進行填補。
  • 專家/用戶填補:針對某些少量且具有重要意義的數據(特別是創業期),直接諮詢行業專家或用戶本人來幫助進行數據填補。
  • 利用當前數據記錄的其餘屬性進行填補:比如針對缺失年齡屬性的用戶數據記錄,我們已知學歷為本科,工作經驗為3年,那我們可以大致推斷出該用戶的年齡。

是不是覺得掌握不處理、刪除以及填補這三個方法後就可以完美的解決缺失值的問題了?其實我們少考慮了一種特殊情況,就是我們無法通過填補的方法去補全數據記錄的缺失屬性並且這些數據記錄又無法進行刪除。這時候我們往往會採用第四種方法,即保留並轉化。

我們將缺失值也視為一種類型,比如性別除了男、女外,缺失的用戶均記錄為未知。在數據分析時這類用戶將會作為一個特殊群體參與分析。

數據清洗 – 重複值處理

終於我們過五關斬六將,解決了缺失值這個老大難,這時候我們遇到了第二個問題重複值。你定睛一看,這不是剛學會了刪除嘛,現學現用直接刪除掉重複值是不是就可以了?的確,大部分情況下我們都會使用這種方式,也就是所謂的去重。但一定要注意,有些場景我們是不能隨意去去重的,如以下兩種:

  • 重複異常
  • 樣本不均衡

我們先來說說重複異常。一般情況下,我們使用數據是用來分析的,直接去重不會對分析結果帶來影響。但一旦我們決定使用數據來監控業務風險時,重複數據就不能隨意忽略,比如同一個 IP 在一段時間內連續獲取了多次短信驗證碼。這個重複記錄可能說明了相應短信驗證碼的業務出現了重大的規則問題,而且可能遭受了競爭對手的惡意攻擊。因此,這些重複數據不能隨意去除,產品經理可以通過這些重複值來發現自己設計的產品漏洞,並配合相關團隊最大限度的降低給公司帶來的損失。

樣本不均衡指的是不同類別的樣本量差距非常大,比如我們希望分析性別對用戶下決策的影響,可女性用戶有10000條數據樣本,而男性僅有100條樣本數據。這樣嚴重分佈不均衡的數據樣本將讓我們很難從從中提取規律;即使勉強提取,也很容易導致過擬合問題(即分析結果僅對當前的樣本生效)。針對這些情況,數據分析者有時會同過不同的方法進行重複採樣,來增加樣本的多樣性。所以通過這種方法處理完樣本不均衡問題後,數據集中本身就會充斥大量的重複記錄,此時我們不能針對數據進行去重操作。

數據清洗 – 異常值

最後我們再來談談異常值,它主要是在常見數據分佈之外存在的數據噪音。通常而言在數據分析工作中,我們都會直接刪除異常的數據記錄(刪除真的是一個好手段),分析公司員工平均收入的時候會掐頭去尾就是這個道理。但和重複值一樣,有些情況下我們是不能直接刪除異常的數據記錄的,而要採用第二種處理方式,保留。

先來說第一個場景,異常值來自業務部門特定的活動產生,比如運營部門於618進行了促銷推廣活動。由於促銷活動導致營銷數據突增,這種異常情況,我們通常稱之為 ‘偽異常’。這種異常數據如果刪除反而會無法評價本次活動的效果。

再來說說第二個場景,利用異常數據發現新的數據規律。很多情況下異常數據是具有時效性的,在當前的情況下,由於數據樣本有限一些長尾的數據類型將被定義為異常值。這些異常值如果直接進行拋棄,將會是數據樣本的巨大損失。針對此類異常數據我們應當進行保留歸檔,等異常數據體量足夠時即可提煉出相應規律,最終達到擴展數據模型邊界的目的。

在漢朝的時候我們國家就已經有過太陽黑子的記載了,但當時我們只是將它作為一種異常現象,並未給予持續關注。 而伽利略是第一個用望遠鏡看天空的人,他也是第一個用望遠鏡觀測到黑子的人。

這裡說伽利略,並不是因為這件事,更重要的是從他開始,歐洲的天文學家開始對太陽黑子進行科學的記錄了。雖然當時他們也不知道黑子到底是什麼,但是都會進行客觀記錄,不只是記錄時間,還會記錄大小,出現在太陽的什麼位置,甚至還會把太陽黑子的樣子直接畫出來。

後來天文學家魯道夫·沃夫,他把從伽利略開始的太陽黑子記錄都收集了起來,在這兩百多年的記錄中也發現了11年的週期。到此,天文學家才確定了太陽黑子活動是有周期性的。

同樣這種方式也可以在信用卡欺詐、異常訂單規律查找、流量作弊檢驗等互聯網風控方面進行應用。

小結

面對髒數據我們首先要去追尋問題出現的原因,在確保數據來源沒有問題後。針對缺失值我們通常會採用:不處理、填補、刪除、保留並轉化,而針對重複值和異常值我們通常會採用刪除和保留。作為數據產品經理,我們要從數據預處理的階段就參與其中,結合公司的業務需要合理的針對數據集預處理給出產品方案,幫助公司更有效的進行決策。

以上是數據預處理的上篇數據清洗,後面我們將會繼續聊聊數據轉換、數據降維、數據抽樣。我是Pirate,一名高級數據產品經理,正在努力用用白話說大數據給你聽。

作者:Pirate,用白話說大數據給你聽。

本文由 @Pirate 原創發佈於人人都是產品經理,未經許可,禁止轉載

題圖來自 Unsplash,基於 CC0 協議

"

相關推薦

推薦中...