白話大數(shù)據(jù):數(shù)據(jù)預(yù)處理之術(shù)(上篇)

2 評論 5607 瀏覽 54 收藏 16 分鐘

數(shù)據(jù)預(yù)處理是數(shù)據(jù)化工作中非常重要的一部分,但是很多人往往會(huì)對如何處理感到迷惑。而本文的作者就為我們仔細(xì)介紹了如何進(jìn)行數(shù)據(jù)預(yù)處理。

隨著互聯(lián)網(wǎng)流量紅利的逐漸消退,各公司之間的競爭形勢日益嚴(yán)峻,企業(yè)正在不斷尋找提高利潤率、降低成本、提高產(chǎn)出價(jià)值的有效方法,而數(shù)據(jù)化經(jīng)營已經(jīng)逐漸成為各企業(yè)的關(guān)鍵武器。作為產(chǎn)品經(jīng)理,相信你經(jīng)常會(huì)得到公司的各種經(jīng)營數(shù)據(jù),但你是否會(huì)因?yàn)槿缦虑闆r而煩惱:

  • 關(guān)鍵數(shù)據(jù)出現(xiàn)缺失值(NaN)
  • 異常數(shù)據(jù)無法判斷是否存在價(jià)值
  • 重復(fù)數(shù)據(jù)的信息冗余
  • 非數(shù)值型的數(shù)據(jù)無法處理(如學(xué)歷)
  • 數(shù)據(jù)樣本差異量非常大(如A樣本有 10W+ ?B樣本只有 100)

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

數(shù)據(jù)清洗- 尋找根源

每當(dāng)我們遇到臟數(shù)據(jù)時(shí),處理這些臟數(shù)據(jù)最理想方法就是找出引起這些臟數(shù)據(jù)的原因,并從源頭上進(jìn)行解決。臟數(shù)據(jù)主要來源來自以下幾個(gè)方面:

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

無論是傳統(tǒng)模式還是互聯(lián)網(wǎng),數(shù)據(jù)定義、采集、測量、處理規(guī)則是由人來規(guī)定的。而在這個(gè)過程中,數(shù)據(jù)采集者因?yàn)橐恍o意的人為錯(cuò)誤會(huì)導(dǎo)致數(shù)據(jù)出現(xiàn)異常。

二戰(zhàn)期間,美國統(tǒng)計(jì)學(xué)家沃德教授被授命研究如何降低戰(zhàn)機(jī)被擊落的可能性。他經(jīng)過采集回歸的戰(zhàn)機(jī)數(shù)據(jù)發(fā)現(xiàn):飛機(jī)的機(jī)翼是最容易被擊中的部分,而飛機(jī)的尾部則是被擊中最少的部分。根據(jù)當(dāng)時(shí)的航空技術(shù),機(jī)器的裝甲只能局部加強(qiáng),那你會(huì)選擇加強(qiáng)機(jī)翼還是加強(qiáng)尾部?

似乎從數(shù)據(jù)上來看答案是顯而易見的——加強(qiáng)機(jī)翼,可真的是這樣嘛?沃德教授并不這樣認(rèn)為,因?yàn)樵跀?shù)據(jù)采集時(shí)已經(jīng)存在了采集異常?;貧w的飛機(jī)機(jī)尾部分很少中彈,并不是它不會(huì)真的中彈,而是可能一旦中彈后,就無法返航也就無法進(jìn)入數(shù)據(jù)集。

后來軍方動(dòng)用敵后工作人員重新去采集飛機(jī)的殘骸,發(fā)現(xiàn)中彈的部位果然如沃德教授所預(yù)料,主要集中在尾部位置。

正如案例所示,采集失誤通常依靠求助數(shù)據(jù)專家來診斷數(shù)據(jù)采集過程中存在的業(yè)務(wù)漏洞來進(jìn)行解決。

第二個(gè)臟數(shù)據(jù)來源主要是人為故意因素。這個(gè)相信你一定不會(huì)陌生,因?yàn)榛ヂ?lián)網(wǎng)經(jīng)常會(huì)面對一個(gè)問題就是數(shù)據(jù)造假。

數(shù)據(jù)造假,是指通過刷單、刷量、刷分、搬運(yùn)原創(chuàng)內(nèi)容等,影響消費(fèi)者的決定,為商家贏得更多生意,平臺(tái)也可給投資人一份好看的數(shù)據(jù),因而數(shù)據(jù)造假已成為行業(yè)的大問題,甚至成為許多點(diǎn)評類網(wǎng)站的“潛規(guī)則”。

針對人為故意因素,通常需要依靠數(shù)據(jù)采集者自己的行業(yè)沉淀來進(jìn)行識(shí)別解決,以下提供幾種識(shí)別方法:

  • 通過橫向,即尋找相同業(yè)務(wù)的公司進(jìn)行數(shù)據(jù)對比,尋找數(shù)據(jù)異常差異。
  • 通過縱向,即尋找數(shù)據(jù)提供方過往的數(shù)據(jù)報(bào)表,尋找數(shù)據(jù)的異常波動(dòng)。
  • 通過內(nèi)部,即通過和數(shù)據(jù)提供方內(nèi)部成員交流,尋找數(shù)據(jù)異常的原因。

第三個(gè)臟數(shù)據(jù)的來源是自然因素,針對自然非人為因素我們通常才會(huì)進(jìn)入數(shù)據(jù)處理的流程。

數(shù)據(jù)清洗 – 缺失值處理

數(shù)據(jù)清洗顧名思義,主要就是將不合格的數(shù)據(jù)進(jìn)行整理,通過去除異常、糾正錯(cuò)誤、補(bǔ)足缺失來讓數(shù)據(jù)集滿足分析的需求。整個(gè)過程中數(shù)據(jù)清洗處理的一般就是缺失值、重復(fù)值和異常值。我們先來說說缺失值的處理,將之前我們先來介紹下常用的數(shù)據(jù)集結(jié)構(gòu)。

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

  • 一是行記錄的缺失,即數(shù)據(jù)記錄的丟失;
  • 二是列記錄的缺失,即數(shù)據(jù)記錄中的某些屬性值出現(xiàn)空缺。

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

你內(nèi)心肯定在想,什么鬼?不處理也是一種方式?

沒錯(cuò),這的確是一個(gè)預(yù)處理的方式,因?yàn)橛袝r(shí)候數(shù)據(jù)分析及應(yīng)用有時(shí)候?qū)θ笔е凳谴嬖谌萑绦缘?,比如在進(jìn)行數(shù)據(jù)降維處理的時(shí)候(有興趣的朋友可以去了解下PCA)。很多屬性值其實(shí)對數(shù)據(jù)分析的結(jié)果相關(guān)性非常小,這些屬性值的缺失并不會(huì)對分析結(jié)果帶來任何影響,那我們完全可以采用不處理的方式來對待。那如果出現(xiàn)不能用這種方式的情況時(shí)該怎么解決?這里我們介紹第二種方法,刪除。

刪除顧名思義就是直接刪除有缺失值的數(shù)據(jù)記錄。是不是有一種暢快淋漓的感覺?但這種方法明顯存在它的缺陷,當(dāng)出現(xiàn)以下情況的時(shí)候,用刪除并不合理:

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

如上兩種情況都會(huì)導(dǎo)致通過數(shù)據(jù)集推斷出的結(jié)論會(huì)存在不準(zhǔn)確,因?yàn)榇罅繑y帶有用信息的數(shù)據(jù)記錄已被遺棄,于是我們有了第二點(diǎn)方法,即填補(bǔ)。

填補(bǔ)是我們更為常用的一種處理方式。填補(bǔ)就是通過一定的方法將存在缺失屬性的數(shù)據(jù)記錄進(jìn)行補(bǔ)全。通??梢圆捎萌缦路椒ǎ?/p>

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

是不是覺得掌握不處理、刪除以及填補(bǔ)這三個(gè)方法后就可以完美的解決缺失值的問題了?其實(shí)我們少考慮了一種特殊情況,就是我們無法通過填補(bǔ)的方法去補(bǔ)全數(shù)據(jù)記錄的缺失屬性并且這些數(shù)據(jù)記錄又無法進(jìn)行刪除。這時(shí)候我們往往會(huì)采用第四種方法,即保留并轉(zhuǎn)化。

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

數(shù)據(jù)清洗 – 重復(fù)值處理

終于我們過五關(guān)斬六將,解決了缺失值這個(gè)老大難,這時(shí)候我們遇到了第二個(gè)問題重復(fù)值。你定睛一看,這不是剛學(xué)會(huì)了刪除嘛,現(xiàn)學(xué)現(xiàn)用直接刪除掉重復(fù)值是不是就可以了?的確,大部分情況下我們都會(huì)使用這種方式,也就是所謂的去重。但一定要注意,有些場景我們是不能隨意去去重的,如以下兩種:

  • 重復(fù)異常
  • 樣本不均衡

我們先來說說重復(fù)異常。一般情況下,我們使用數(shù)據(jù)是用來分析的,直接去重不會(huì)對分析結(jié)果帶來影響。但一旦我們決定使用數(shù)據(jù)來監(jiān)控業(yè)務(wù)風(fēng)險(xiǎn)時(shí),重復(fù)數(shù)據(jù)就不能隨意忽略,比如同一個(gè) IP 在一段時(shí)間內(nèi)連續(xù)獲取了多次短信驗(yàn)證碼。這個(gè)重復(fù)記錄可能說明了相應(yīng)短信驗(yàn)證碼的業(yè)務(wù)出現(xiàn)了重大的規(guī)則問題,而且可能遭受了競爭對手的惡意攻擊。因此,這些重復(fù)數(shù)據(jù)不能隨意去除,產(chǎn)品經(jīng)理可以通過這些重復(fù)值來發(fā)現(xiàn)自己設(shè)計(jì)的產(chǎn)品漏洞,并配合相關(guān)團(tuán)隊(duì)最大限度的降低給公司帶來的損失。

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

數(shù)據(jù)清洗 – 異常值

最后我們再來談?wù)劗惓V?,它主要是在常見?shù)據(jù)分布之外存在的數(shù)據(jù)噪音。通常而言在數(shù)據(jù)分析工作中,我們都會(huì)直接刪除異常的數(shù)據(jù)記錄(刪除真的是一個(gè)好手段),分析公司員工平均收入的時(shí)候會(huì)掐頭去尾就是這個(gè)道理。但和重復(fù)值一樣,有些情況下我們是不能直接刪除異常的數(shù)據(jù)記錄的,而要采用第二種處理方式,保留。

先來說第一個(gè)場景,異常值來自業(yè)務(wù)部門特定的活動(dòng)產(chǎn)生,比如運(yùn)營部門于618進(jìn)行了促銷推廣活動(dòng)。由于促銷活動(dòng)導(dǎo)致營銷數(shù)據(jù)突增,這種異常情況,我們通常稱之為 ‘偽異?!?。這種異常數(shù)據(jù)如果刪除反而會(huì)無法評價(jià)本次活動(dòng)的效果。

再來說說第二個(gè)場景,利用異常數(shù)據(jù)發(fā)現(xiàn)新的數(shù)據(jù)規(guī)律。很多情況下異常數(shù)據(jù)是具有時(shí)效性的,在當(dāng)前的情況下,由于數(shù)據(jù)樣本有限一些長尾的數(shù)據(jù)類型將被定義為異常值。這些異常值如果直接進(jìn)行拋棄,將會(huì)是數(shù)據(jù)樣本的巨大損失。針對此類異常數(shù)據(jù)我們應(yīng)當(dāng)進(jìn)行保留歸檔,等異常數(shù)據(jù)體量足夠時(shí)即可提煉出相應(yīng)規(guī)律,最終達(dá)到擴(kuò)展數(shù)據(jù)模型邊界的目的。

在漢朝的時(shí)候我們國家就已經(jīng)有過太陽黑子的記載了,但當(dāng)時(shí)我們只是將它作為一種異?,F(xiàn)象,并未給予持續(xù)關(guān)注。
而伽利略是第一個(gè)用望遠(yuǎn)鏡看天空的人,他也是第一個(gè)用望遠(yuǎn)鏡觀測到黑子的人。

這里說伽利略,并不是因?yàn)檫@件事,更重要的是從他開始,歐洲的天文學(xué)家開始對太陽黑子進(jìn)行科學(xué)的記錄了。雖然當(dāng)時(shí)他們也不知道黑子到底是什么,但是都會(huì)進(jìn)行客觀記錄,不只是記錄時(shí)間,還會(huì)記錄大小,出現(xiàn)在太陽的什么位置,甚至還會(huì)把太陽黑子的樣子直接畫出來。

后來天文學(xué)家魯?shù)婪颉の址?,他把從伽利略開始的太陽黑子記錄都收集了起來,在這兩百多年的記錄中也發(fā)現(xiàn)了11年的周期。到此,天文學(xué)家才確定了太陽黑子活動(dòng)是有周期性的。

同樣這種方式也可以在信用卡欺詐、異常訂單規(guī)律查找、流量作弊檢驗(yàn)等互聯(lián)網(wǎng)風(fēng)控方面進(jìn)行應(yīng)用。

小結(jié)

面對臟數(shù)據(jù)我們首先要去追尋問題出現(xiàn)的原因,在確保數(shù)據(jù)來源沒有問題后。針對缺失值我們通常會(huì)采用:不處理、填補(bǔ)、刪除、保留并轉(zhuǎn)化,而針對重復(fù)值和異常值我們通常會(huì)采用刪除和保留。作為數(shù)據(jù)產(chǎn)品經(jīng)理,我們要從數(shù)據(jù)預(yù)處理的階段就參與其中,結(jié)合公司的業(yè)務(wù)需要合理的針對數(shù)據(jù)集預(yù)處理給出產(chǎn)品方案,幫助公司更有效的進(jìn)行決策。

以上是數(shù)據(jù)預(yù)處理的上篇數(shù)據(jù)清洗,后面我們將會(huì)繼續(xù)聊聊數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)降維、數(shù)據(jù)抽樣。我是Pirate,一名高級(jí)數(shù)據(jù)產(chǎn)品經(jīng)理,正在努力用用白話說大數(shù)據(jù)給你聽。

 

作者:Pirate,用白話說大數(shù)據(jù)給你聽。

本文由 @Pirate 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

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

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評論
評論請登錄
  1. 很受用,希望大神出一下用Python做數(shù)據(jù)處理的教程。

    來自廣東 回復(fù)
    1. Python 雖然已經(jīng)是比較好理解的交互式語言,但對產(chǎn)品經(jīng)理還是會(huì)有一定壓力的,所以文章內(nèi)基本就不寫如何用Python進(jìn)行數(shù)據(jù)處理啦。作為產(chǎn)品經(jīng)理能理解數(shù)據(jù)實(shí)現(xiàn)的業(yè)務(wù)邏輯基本已經(jīng)能夠滿足工作需求啦 ??

      來自浙江 回復(fù)