挖掘數(shù)據(jù)與表達(dá),是時(shí)候提升數(shù)據(jù)分析水平了
看見別人看不見的價(jià)值,用圖表武裝思想。
使用上篇講述的常規(guī)的數(shù)據(jù)分析手段,能夠幫助我們快速對數(shù)據(jù)進(jìn)行規(guī)整和剖析,進(jìn)而總結(jié)出數(shù)字反映的客觀事實(shí)。我們常提到的數(shù)據(jù)統(tǒng)計(jì)及分析工作,大部分止步于此。
然而是否有可能對數(shù)據(jù)進(jìn)行更深層次的挖掘,去尋找一些不那么顯著可見的事實(shí)背后隱藏的規(guī)律,甚至是一些猜想呢?
答案是肯定的。
為了達(dá)成該目的,我們需要借助一系列機(jī)器學(xué)習(xí)的算法,這也是本篇的重點(diǎn)內(nèi)容之一。
在完成全部分析形成結(jié)論后,若要精益求精就無法繞過最終的圖表美化工作,即數(shù)據(jù)可視化,良好的表達(dá)呈現(xiàn)有助于觀眾更好的理解你的觀點(diǎn)。
產(chǎn)品需要考慮表現(xiàn)層的用戶體驗(yàn),數(shù)據(jù)報(bào)告亦是如此。
因此,本文最后的篇幅會(huì)留給數(shù)據(jù)可視化。
回顧一下數(shù)據(jù)分析的5個(gè)步驟:
- 明確目標(biāo);
- 數(shù)據(jù)預(yù)處理;
- 特征分析;
- 算法建模;
- 數(shù)據(jù)表達(dá)。
上篇《極簡數(shù)據(jù)分析(上) – 10分鐘掌握關(guān)鍵數(shù)據(jù)分析方法》介紹了前3步,本篇開始進(jìn)入到最后2個(gè)步驟。
算法建模
不少非技術(shù)出身的同學(xué)一聽到算法建模、機(jī)器學(xué)習(xí)、大數(shù)據(jù)、人工智能等概念,就開始頭大,實(shí)際上大可不必。
本文其實(shí)也是定位面向于非技術(shù)人員的,因此首先可能需要對相關(guān)的技術(shù)進(jìn)行去魅。
什么是算法?
可以理解成算法是計(jì)算的方法或技巧,通過合適的算法對原始數(shù)據(jù)進(jìn)行加工以得出結(jié)論,是我們解決問題的核心思路。
什么是數(shù)據(jù)挖掘?
顧名思義,是對并非浮于表面的信息進(jìn)行深度研究,可能是可觀察到的事實(shí)背后的規(guī)律或原因,也是我們想獲取的知識。
什么是機(jī)器學(xué)習(xí)?
其目的是讓機(jī)器可以通過學(xué)習(xí),自主去解決問題,而并非執(zhí)行一段代碼內(nèi)既定的任務(wù)。
而人工智能可能是最后我們追求的美好結(jié)果,不論是數(shù)據(jù)挖掘還是機(jī)器學(xué)習(xí),都是在實(shí)現(xiàn)人工智能過程中的手段,雖然其實(shí)離真正的智能還相差甚遠(yuǎn)。
所以在數(shù)據(jù)分析范疇內(nèi)對相關(guān)技術(shù)的應(yīng)用,我們可以描述為:利用機(jī)器學(xué)習(xí)的相關(guān)算法進(jìn)行數(shù)據(jù)挖掘,尋找數(shù)據(jù)事實(shí)背后的規(guī)律。
一個(gè)好消息是:算法在人工智能技術(shù)和高級語言經(jīng)歷了多年發(fā)展至今后,很多已經(jīng)被封裝成了獨(dú)立的函數(shù)或類,可以直接調(diào)用,不少開發(fā)框架內(nèi)也已經(jīng)集成了大量的庫或包,大大降低了機(jī)器學(xué)習(xí)的技術(shù)門檻,也因此讓我們利用相關(guān)技術(shù)進(jìn)行數(shù)據(jù)分析成為了可能。
機(jī)器學(xué)習(xí)主要分為監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí),此外還有強(qiáng)化學(xué)習(xí)。
這里主要介紹監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)。兩者的區(qū)別主要在于是否有已知的訓(xùn)練集,即監(jiān)督學(xué)習(xí)類似教學(xué),告訴機(jī)器一些已經(jīng)確定的輸入條件(特征值)和輸出結(jié)果(標(biāo)簽),然后由機(jī)器總結(jié)規(guī)律再運(yùn)用到新樣本中。而非監(jiān)督學(xué)習(xí)類似自學(xué),機(jī)器需要自己從全部樣本中總結(jié)規(guī)律。
在數(shù)據(jù)分析過程中,根據(jù)分析目的和數(shù)據(jù)特征的不同,通常會(huì)進(jìn)行3類分析:回歸、分類、聚類。在每類分析中還包含了多種模型,接下來我們會(huì)介紹其中常用且有代表性的模型和實(shí)現(xiàn)方式。
1. 線性回歸
線性回歸可能是大家平時(shí)聽到最多的模型了,其通常被應(yīng)用在對連續(xù)變量的預(yù)測中。
線性回歸會(huì)嘗試在一些已知的自變量和因變量之間尋找到一種關(guān)系,通過擬合出最佳的回歸線去表達(dá)這種關(guān)系,進(jìn)而可以預(yù)測在回歸線上其他點(diǎn)的數(shù)據(jù)。如根據(jù)下面左圖的已知數(shù)據(jù),擬合出右圖的直線函數(shù)。
在Python中可直接調(diào)用sklearn庫中的相關(guān)模型實(shí)現(xiàn),簡單的一元線性回歸實(shí)例如下,多元線性回歸的實(shí)現(xiàn)類似,但會(huì)有多個(gè)自變量,即輸出的斜率值會(huì)有多個(gè)。
既然該模型是基于已知數(shù)據(jù)擬合得出的,就可能存在過擬合或欠擬合的可能,不論哪種都會(huì)使模型失去泛化的能力,很難去進(jìn)行預(yù)測。
造成問題的最常見原因可能是訓(xùn)練樣本量太少或者樣本的維度太少。
sklearn庫中也提供了一系列參數(shù)用于評價(jià)模型擬合水平,例如SSE(和方差)、MSE(均方差)、RMSE(均方根)、R-squre(確定系數(shù))等。其中SSE、MSE和RMSE的邏輯類似,數(shù)值越接近0說明效果越好,R-squre取值范圍在[0,1]之間,越接近1說明效果越好。
2. 聚類
聚類是非監(jiān)督學(xué)習(xí)的代表,指的是根據(jù)樣本間相似的特征進(jìn)行分類的過程。聚類中的常用算法有K-Mean算法,是典型的基于距離的聚類算法,常以歐氏距離進(jìn)行測量(不理解也不重要),更適合形狀比較規(guī)則的類簇。
而有些聚類效果不規(guī)則,帶狹長、拐彎(非凸樣本集),則不適合用K-Mean算法,針對這種情況會(huì)使用密度聚類的算法,例如DBSCAN。下圖可看出兩種算法的聚類區(qū)別,對于形狀不規(guī)則的聚集,DBSACN效果會(huì)更好。
但大部分時(shí)候我們遇到的聚類情況還是比較規(guī)則的,也因此K-Mean仍是更常用的聚類算法。在K-Means算法的邏輯中,要注意2點(diǎn):
- 需要事先給定類簇的數(shù)量,即聚類群的個(gè)數(shù);
- 需要事先給定類簇初始的中心。
在Python中的實(shí)現(xiàn)和聚類效果如下:
根據(jù)聚類結(jié)果,不僅可研究相似群體的規(guī)律,還可以找出與大眾差異非常大的孤立點(diǎn),這在例如風(fēng)控行業(yè)中的應(yīng)用非常普遍,孤立點(diǎn)很可能代表著一些刷單或有其他不良行為的惡意用戶。
3. 分類
之所以把分類放在最后,是因?yàn)闊o論其重要性還是應(yīng)用范圍可能都是最高最廣的。這是一種利用已知訓(xùn)練集來對模型進(jìn)行訓(xùn)練,不斷優(yōu)化分類器的過程。
分類的算法也非常多,而且還有不少變種或衍生算法。我們只能列舉一些最經(jīng)典也是最普適的算法,例如樸素貝葉斯、決策樹、隨機(jī)森林、SVM(支持向量機(jī))、遺傳算法等。
接下來以非常簡單的KNN算法為例,介紹分類的實(shí)現(xiàn)方式。KNN全稱K-Nearest-Neighbors,其思路簡單描述就是將待判斷的樣本放入已知訓(xùn)練結(jié)果中,觀察樣本和哪個(gè)群體的成員間最接近,就將其歸為哪類。這次直接利用Python中的測試數(shù)據(jù)實(shí)現(xiàn),該測試數(shù)據(jù)為判斷3種花的類型,以及4個(gè)花的特征(萼片長度、萼片寬度、花瓣長度、花瓣寬度)。
對隨機(jī)數(shù)據(jù)的判斷結(jié)果如下:
數(shù)據(jù)表達(dá)
終于來到最后一步,數(shù)據(jù)表達(dá)。數(shù)據(jù)分析最終要形成具有指導(dǎo)性的結(jié)論,結(jié)論一定是要給他人觀看講解的,因此良好的表達(dá)十分必要。
下圖是一張經(jīng)典的圖表選擇決策圖,參考此圖可以快速根據(jù)表達(dá)目的選擇合適的圖表進(jìn)行可視化表達(dá)。
表達(dá)目的在圖中主要分為4種:分布、對比、相關(guān)性、構(gòu)成,并對應(yīng)了不同的圖表,相信在工作中絕大部分的數(shù)據(jù)表達(dá)需求都已經(jīng)可以對號入座。
雖然圖表并非信息量越大越好,表現(xiàn)形式越酷炫越好,但恰到好處的豐富程度和展現(xiàn)形式還是能更高效地提供更多有價(jià)值的信息,也確實(shí)比過于簡單的圖表更加專業(yè)。
因此接下來本文會(huì)展示一些包含更多細(xì)節(jié)和不同形式的圖表并輔以解釋,希望能夠給你提供參考,帶來啟發(fā)。
1. 分布數(shù)據(jù)可視化
直方圖+密度圖:該組合可以很好的展示數(shù)據(jù)的整體分布趨勢,密度圖曲線是對分布趨勢的擬合,可以調(diào)節(jié)擬合程度。還可以用線段代表具體樣本,展示絕對分布情況。
多維度密度圖:通常是2個(gè)維度,例如表達(dá)地理位置的經(jīng)緯度。
通過該密度圖能反映數(shù)據(jù)的聚集情況,還可以在密度圖基礎(chǔ)上繪制散點(diǎn)圖來標(biāo)注出原始數(shù)據(jù)。看上去是不是很像地理課上學(xué)的等高線?
散點(diǎn)圖:針對基礎(chǔ)的散點(diǎn)圖,我們可以在橫軸坐標(biāo)上輔以直方圖或密度圖以反映數(shù)據(jù)在單個(gè)維度上的分布情況。
甚至還能運(yùn)用前面講到的線性回歸,對數(shù)據(jù)進(jìn)行回歸分析,給出擬合結(jié)果和置信區(qū)間。
散點(diǎn)圖的表達(dá)形式也不僅限于散點(diǎn),還可以用類似蜂巢的六邊形,根據(jù)顏色深淺可以看出分布情況。
散點(diǎn)圖矩陣:在上篇已經(jīng)有介紹過散點(diǎn)圖矩陣了,利用該矩陣可快速對樣本間的關(guān)系進(jìn)行初判。而在數(shù)據(jù)表達(dá)階段給出的矩陣是已經(jīng)完成判斷后的結(jié)果展示,表達(dá)的形式也會(huì)更豐富。
例如還是利用前面提到的花朵分類的測試數(shù)據(jù),分別對3種花在不同特征維度上進(jìn)行分析。
2. 分類數(shù)據(jù)可視化
統(tǒng)計(jì)圖:這應(yīng)該是對分類數(shù)據(jù)最常見的表達(dá)方式,統(tǒng)計(jì)圖主要反映的是一些統(tǒng)計(jì)值,例如求和、計(jì)數(shù)、平均數(shù)等,用于了解數(shù)據(jù)所代表的業(yè)務(wù)整體情況,在總結(jié)匯報(bào)中會(huì)經(jīng)常使用,但無法幫助閱讀者了解更多細(xì)節(jié)。
柱狀圖、折線圖等形式都可以反映這類數(shù)據(jù),例如下圖反映了一家餐廳每天的平均客單價(jià)情況。
散點(diǎn)圖:散點(diǎn)圖可用于反映分類數(shù)據(jù)內(nèi)的分布情況,例如還是該餐廳的經(jīng)營數(shù)據(jù),利用散點(diǎn)圖可以看出客單價(jià)的分布情況,每一個(gè)點(diǎn)代表了一個(gè)真實(shí)訂單。
在該圖的基礎(chǔ)上,還可以再根據(jù)特定的某一參數(shù)在散點(diǎn)內(nèi)進(jìn)行分類,例如下圖對付款的消費(fèi)者進(jìn)行了性別區(qū)分。
在分析特定類別時(shí),將類別內(nèi)的子類拆分顯示,視覺表達(dá)效果更明確。例如下圖重點(diǎn)觀察周五和周六兩天不同性別消費(fèi)者的消費(fèi)金額數(shù)據(jù)。
箱型圖:又稱作盒須圖,每一個(gè)分類是一個(gè)箱子,箱型圖在觀察數(shù)據(jù)分布和測量統(tǒng)計(jì)數(shù)據(jù)上有重要意義。
箱型圖的構(gòu)成要素較多,信息量豐富,導(dǎo)致初看起來比較麻煩,但確實(shí)能反映很多問題。先介紹下箱型圖中的重點(diǎn)要素:
- 中位數(shù)(Q2):首先要知道箱型圖中的數(shù)據(jù)也是從小到大排序的,中位數(shù)即二分之一分位數(shù);
- 下四分位數(shù)(Q1):即數(shù)據(jù)由小到大排列后,在1/4節(jié)點(diǎn)處的數(shù);
- 上四分位數(shù)(Q3):即數(shù)據(jù)由小到大排列后,在3/4節(jié)點(diǎn)處的數(shù);
- 四分位距(IQR):即Q3-Q1的差,在圖中就是箱子的高度;
- 上限:是容許范圍內(nèi)的最大值,通常為Q3+1.5*IQR;
- 下限:是容許范圍內(nèi)的最小值,通常為Q1-1.5*IQR;
- 內(nèi)限:即圖中的上限和下限,在內(nèi)限中的數(shù)據(jù)是正常值,在內(nèi)限外的數(shù)據(jù)可以認(rèn)為是異常值(注意上篇提到的,異常值不代表就是錯(cuò)誤的值);
- 外限:外限通常代表Q3+3*IQR處和Q1-3*IQR處,外限一般不會(huì)在圖中畫出,除非需要單獨(dú)分析以內(nèi)外限分隔的數(shù)據(jù)。處于內(nèi)外限之間的值被看作是溫和的異常值,處于外限之外的值被看作是極端的異常值。
下圖是一個(gè)簡單的箱型圖示例。
箱型圖可以直觀的識別數(shù)據(jù)中的異常值,還可以觀察整體數(shù)據(jù)集中趨勢、偏態(tài)、尾重等重要信息。下圖還是以前面餐廳的經(jīng)營數(shù)據(jù)為例,利用箱型圖既能觀察客單價(jià)的分布情況,還能根據(jù)需求展現(xiàn)相關(guān)統(tǒng)計(jì)值,比散點(diǎn)圖直觀了不少,一些重點(diǎn)信息得到了直接呈現(xiàn)。
箱型圖同樣可以在單個(gè)分類內(nèi)再區(qū)分子類,例如我們還是用性別來區(qū)分。
在箱型圖的基礎(chǔ)上,還可能衍生出LV圖,或者小提琴圖的變種,以適用于一些更有針對性的場景,這里就不多介紹了,有興趣的同學(xué)可以自己百度。
3. 線性關(guān)系數(shù)據(jù)可視化
在前面已經(jīng)講解過了通過線性回歸去尋找變量間的線性關(guān)系,現(xiàn)在補(bǔ)充一下同時(shí)對不同分類進(jìn)行線性回歸并進(jìn)行對比的方式。
仍以上述餐廳經(jīng)營數(shù)據(jù)為例,我們試圖尋找賬單金額和小費(fèi)之間是否存在線性相關(guān),如果還想同時(shí)觀察不同性別消費(fèi)者的表現(xiàn)差異,可針對不同性別消費(fèi)者的數(shù)據(jù)進(jìn)行回歸分析。
從結(jié)果上看,首先賬單金額和小費(fèi)金額之間是存在正相關(guān)的,而性別差異對該線性相關(guān)的影響似乎不大。
有沒有更高效的展現(xiàn)方式呢?
回想下前面介紹的散點(diǎn)矩陣圖,其實(shí)矩陣的思想可以用在很多地方,在這里自然也是適用的。
下圖依然以性別作為分類,但上下兩行代表了另一個(gè)屬性:消費(fèi)者是否吸煙,每列代表了每一天的數(shù)據(jù)情況。且不考慮數(shù)據(jù)和結(jié)論是否正確,似乎周六用餐的男性傾向于給更多的小費(fèi),不吸煙者尤甚(可能周六約會(huì)的人比較多,通過付更多小費(fèi)能給另一半留下更好的印象)。
到這里本文的內(nèi)容基本講述完了,最后再附一個(gè)熱力圖的例子,熱力圖主要用于報(bào)告中加強(qiáng)閱讀者對數(shù)據(jù)變化或聚集情況的感受。
例如下圖反映了從1949~1960年間某航班每月的旅客數(shù)量,可以得出結(jié)論旅客數(shù)基本逐年增長,特別在1956年后增長迅速,同時(shí)每年的夏季是出行的高峰期。
總結(jié)
本篇介紹了數(shù)據(jù)分析工作的后2步:算法建模和數(shù)據(jù)表達(dá)。
在算法建模中,可利用一系列的AI算法幫助我們進(jìn)行回歸、聚類和分類的工作,讓我們有能力挖掘數(shù)據(jù)底層隱藏的價(jià)值。而掌握簡單的線性回歸算法、K-Means算法、KNN算法,已經(jīng)能讓你的數(shù)據(jù)分析結(jié)果深入一個(gè)層次。
在對數(shù)據(jù)分析結(jié)果的表達(dá)中,要根據(jù)表達(dá)目的選擇合適的展現(xiàn)形式,包括反映分布情況、分類對比情況、數(shù)據(jù)相關(guān)性情況和構(gòu)成情況等。
圖表本身是工具,沒有絕對的優(yōu)劣之分,只是在不同表達(dá)目的下有不同的合適程度。就如不同的刀具對應(yīng)不同的食材,砍刀最適合砍骨頭,可并不代表它就完全不能用來切菜。所以我們也要根據(jù)實(shí)際情況進(jìn)行選擇,有時(shí)候甚至要多次比對挑出最好的展現(xiàn)方式。
文中重點(diǎn)介紹了表達(dá)分布數(shù)據(jù)的直方圖、密度圖(單維度/多維度)、散點(diǎn)圖(矩陣),表達(dá)分類數(shù)據(jù)的統(tǒng)計(jì)圖(柱狀圖/折線圖)、散點(diǎn)圖、箱型圖,以及表達(dá)相關(guān)性數(shù)據(jù)的線性相關(guān)圖(矩陣)和增強(qiáng)數(shù)據(jù)變化視覺效果的熱力圖,希望對大家日后的工作有啟發(fā)和幫助。
其實(shí)寫這篇文章最初的目的是概括數(shù)據(jù)分析的流程,并介紹這條線上某些具有代表性的點(diǎn),讓大家有全局的認(rèn)識,因此不可能通過一篇文章便講解清楚具體如何實(shí)操。
事實(shí)上,這里的每一步都可以單獨(dú)寫很多內(nèi)容??蛇@些內(nèi)容,只要你需要,在網(wǎng)上都能查到,比我寫的要專業(yè)多了。所以,本文更希望是能提供作為一個(gè)系統(tǒng)的價(jià)值,幫助你把點(diǎn)串成線。
也許你看完后會(huì)覺得在面對一堆數(shù)據(jù)時(shí)仍不知道如何下手,繪制圖表時(shí)仍猶豫如何展示,這很正常。因?yàn)閿?shù)據(jù)分析的能力不是靠學(xué)習(xí)來提升的,而是訓(xùn)練,相信這個(gè)道理大家都懂。
文章、書本或課程都只是幫你導(dǎo)航的工具,為你指出正確的方向,避免走彎路。
但路還是得自己走。
作者:Rowan;公眾號:羅老師別這樣
本文由 @Rowan?原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
- 目前還沒評論,等你發(fā)揮!