如何用決策樹(shù)模型做數(shù)據(jù)分析?

0 評(píng)論 17387 瀏覽 40 收藏 14 分鐘

編輯導(dǎo)語(yǔ):在這個(gè)大數(shù)據(jù)時(shí)代,數(shù)據(jù)對(duì)于各行各業(yè)的重要性不言而喻,因此有越來(lái)越多的企業(yè)開(kāi)始重視并且運(yùn)用數(shù)據(jù)分析。數(shù)據(jù)分析的方法有很多種,今天,本文作者為我們介紹了決策樹(shù)模型的分析方法,讓我們一起來(lái)看看如何用決策樹(shù)模型做數(shù)據(jù)分析吧。

在日常工作中,很多時(shí)候都會(huì)用到數(shù)據(jù)分析的方法,決策樹(shù)模型看起來(lái)非常簡(jiǎn)單,但實(shí)際上它的十分重要;本文作者分享了關(guān)于如何用決策樹(shù)模型做數(shù)據(jù)分析的方法,我們一起來(lái)學(xué)習(xí)一下。

一、什么是決策樹(shù)?

決策樹(shù)模型本質(zhì)是一顆由多個(gè)判斷節(jié)點(diǎn)組成的樹(shù)。在樹(shù)的每個(gè)節(jié)點(diǎn)做參數(shù)判斷,進(jìn)而在樹(shù)的最末枝(葉結(jié)點(diǎn))能夠?qū)λP(guān)心變量的取值作出最佳判斷。

通常,一棵決策樹(shù)包含一個(gè)根結(jié)點(diǎn),若干內(nèi)部節(jié)點(diǎn)和若干葉結(jié)點(diǎn),葉結(jié)點(diǎn)對(duì)應(yīng)決策分類結(jié)果。分支做判斷,葉子下結(jié)論。

我們看一個(gè)簡(jiǎn)單的決策樹(shù)的模型,通過(guò)動(dòng)物的一些特點(diǎn)來(lái)判斷它是否是魚(yú)類,在決策樹(shù)模型中,我們來(lái)看每一個(gè)節(jié)點(diǎn)是如何做判斷的。

我們將所有要研究的動(dòng)物作為樹(shù)最上端的起點(diǎn),對(duì)它進(jìn)行第一個(gè)判斷,是否能脫離水生存?

如果判斷為是的話,它不是魚(yú)類;如果為否的話,我們還要再進(jìn)行下一個(gè)判斷,是否有腳蹼?如果是的話,它就是非魚(yú)類,如果否的話就是魚(yú)類。

我們僅僅是通過(guò)最多兩個(gè)層次的判斷,在樹(shù)最末端的葉子結(jié)點(diǎn),可以對(duì)我們感興趣的問(wèn)題給出了一個(gè)相對(duì)而言的最佳決策。這個(gè)就是決策樹(shù)的邏輯,非常簡(jiǎn)單且和人腦理解事物的邏輯很類似。

如何用決策樹(shù)模型做數(shù)據(jù)分析?

決策樹(shù)是一種簡(jiǎn)單高效并且具有強(qiáng)解釋性的模型,廣泛應(yīng)用于數(shù)據(jù)分析領(lǐng)域。

  • 簡(jiǎn)單:邏輯相對(duì)簡(jiǎn)單,整個(gè)算法沒(méi)有更復(fù)雜的邏輯,只是對(duì)節(jié)點(diǎn)進(jìn)行分叉;
  • 高效:模型訓(xùn)練速度較快;
  • 強(qiáng)解釋性:模型的判斷邏輯可以用語(yǔ)言清晰的表達(dá)出來(lái),比如上述決策樹(shù)案例中的判斷,就可以直接用語(yǔ)言表述成:脫離水不能生存的沒(méi)有腳蹼的動(dòng)物,我們判斷它是魚(yú)。

決策樹(shù)模型應(yīng)用于數(shù)據(jù)分析的場(chǎng)景主要有三種:

  1. 監(jiān)督分層;
  2. 驅(qū)動(dòng)力分析:某個(gè)因變量指標(biāo)受多個(gè)因素所影響,分析不同因素對(duì)因變量驅(qū)動(dòng)力的強(qiáng)弱(驅(qū)動(dòng)力指相關(guān)性,不是因果性);
  3. 預(yù)測(cè):根據(jù)模型進(jìn)行分類的預(yù)測(cè)。

二、熵是什么?

熵是描述判斷的不確定性,大多數(shù)決策樹(shù)的最終判斷,并不是100%準(zhǔn)確,決策樹(shù)只是基于不確定性,作出最優(yōu)的判斷。

比如上述決策樹(shù)案例,我們判斷脫離水依然可以生存的是“非魚(yú)類”。但是有一種特殊的魚(yú)叫做非洲肺魚(yú),它脫離水后依然可以存活4年之久。

雖然不是100%正確,我們?cè)谶@個(gè)葉結(jié)點(diǎn)做出非魚(yú)類的判斷,是因?yàn)樗忻撾x水依然可以生存的動(dòng)物里,有非常大部分都不是魚(yú)。

這個(gè)判斷有很大可能性是正確的,但判斷依然存在著一些不確定性。

那么不確定性指的是什么呢?

如下圖,女生占比為50%,具有最大的不確定性;女生占比0%或者100%,則具備最小的不確定性。女生占比30%,具有中等不確定性;如果女性占比為70%的話,我們這個(gè)時(shí)候猜測(cè)是女性,出錯(cuò)可能性是1-70%,即30%,和剛剛的情況相同。

也就是說(shuō),10個(gè)人中女性占比為30%,或是70%,我們雖然給出的判斷不同,但是兩個(gè)判斷出錯(cuò)的可能性是一樣的,都是30%;

如何用決策樹(shù)模型做數(shù)據(jù)分析?

圖:在10個(gè)人中,判斷隨機(jī)挑選出來(lái)一個(gè)人,性別是男還是女

如何用決策樹(shù)模型做數(shù)據(jù)分析?

如果嘗試使用一個(gè)統(tǒng)計(jì)量E來(lái)表示不確定性的話,并且規(guī)定E的取值在0和1之間。

他和人群中女性的占比應(yīng)該滿足這樣一條曲線的關(guān)系,當(dāng)女性占比為0或者100%的時(shí)候,進(jìn)行判斷的不確定性最?。籈取最小值0當(dāng)女性占比為50%的時(shí)候,判斷的不確定性最大,E取最大值1;當(dāng)女性占比取0到50%,或者50%到100%之間的值的時(shí)候,E的取值介于0到1之間。

并且取值相對(duì)女性占比50%是對(duì)稱的。熵即是用來(lái)描述以上這種不確定性,它的數(shù)學(xué)表達(dá)式為:

如何用決策樹(shù)模型做數(shù)據(jù)分析?

Pi含義:對(duì)于事件,有c種可能的結(jié)果,每一種可能結(jié)果的概率為P1、P2…Pc;熵的取值在0-1之間;一個(gè)判斷的不確定性越大,熵越大。

三、信息增益

信息增益表示經(jīng)過(guò)一次決策判斷(分叉)后,人群熵值下降的大小,即母節(jié)點(diǎn)的熵與兩個(gè)子節(jié)點(diǎn)熵值和的差值。

如何用決策樹(shù)模型做數(shù)據(jù)分析?

如上圖,信息增益(IG) = 0.5842 – ( 38% * 0.9507 + 62 * 0 )=0.22。

四、決策樹(shù)算法實(shí)現(xiàn)步驟

我們繼續(xù)用上一篇文章《如何用線性回歸模型做數(shù)據(jù)分析》中的共享單車服務(wù)滿意分?jǐn)?shù)據(jù)集來(lái)做案例,分析哪一類人群更加偏向于成為公司的推薦者,我們需要分析用戶特征,更好的區(qū)分出推薦者。

如何用決策樹(shù)模型做數(shù)據(jù)分析?

1. 測(cè)量節(jié)點(diǎn)對(duì)應(yīng)人群的熵

決策樹(shù)模型的第一步,是測(cè)量每個(gè)節(jié)點(diǎn)對(duì)應(yīng)人群的熵值,最終我們得到可以判斷推薦者的決策樹(shù)。

如下圖,每個(gè)節(jié)點(diǎn)中標(biāo)注兩個(gè)數(shù)字,上面是推薦者比例,下面是用戶群占比。初始節(jié)點(diǎn)的推薦者比例為0.14,再?zèng)]任何分叉前,人群占比100%。

我們用熵來(lái)度量每個(gè)節(jié)點(diǎn)對(duì)應(yīng)人群的不確定性,推薦者比例趨近0%和100%的人群,熵的值也趨近于0,推薦者比例趨近50%的人群,熵的值則趨近于1。

在這個(gè)案例中,我們想知道哪一類人更加偏向成為公司的推薦者,也就是說(shuō),我們希望通過(guò)決策樹(shù),可以盡量地劃分出是或者不是推薦者這個(gè)事情最為確定的人群。

如果這樣的人群在樹(shù)的最終結(jié)點(diǎn)、也就是葉子結(jié)點(diǎn)可以被很好地劃分出來(lái)的話,那么葉子結(jié)點(diǎn)所對(duì)應(yīng)的人群的特征,就是推薦者或者非推薦者的典型特征。

反應(yīng)在人群的熵值計(jì)算,更大的確定性對(duì)應(yīng)于比較小的熵值。我們實(shí)際上是希望通過(guò)決策樹(shù)不斷地分叉,使得節(jié)點(diǎn)的熵值越來(lái)越低,用戶的label越來(lái)越純。

如何用決策樹(shù)模型做數(shù)據(jù)分析?

2. 節(jié)點(diǎn)的分叉-信息增益

我們使用信息增益(IG)來(lái)判斷決策樹(shù)的分叉方式。

節(jié)點(diǎn)分叉規(guī)則:在每個(gè)節(jié)點(diǎn)嘗試按照不同特征變量的各種分組方式,選取信息增益最大(熵最小)的方式。

如何用決策樹(shù)模型做數(shù)據(jù)分析?

如何用決策樹(shù)模型做數(shù)據(jù)分析?

3. 在特定情況樹(shù)節(jié)點(diǎn)停止分叉

決策樹(shù)不會(huì)一直不停分叉,決策樹(shù)停止分叉的條件通常有:

  • 樹(shù)的深度 — 如規(guī)定樹(shù)的深度不能超過(guò)3;
  • 葉子結(jié)點(diǎn)樣本數(shù) — 如葉子結(jié)點(diǎn)樣本數(shù)不能小于10;
  • 信息增益 — 如每一個(gè)分叉的信息增益不能小于0.2(R中的默認(rèn)值)。

停止分叉:再分叉會(huì)增加復(fù)雜度但是效果沒(méi)有提高,葉子越多越復(fù)雜,會(huì)加重解釋復(fù)雜性。

五、決策樹(shù)在數(shù)據(jù)分析中的實(shí)戰(zhàn)流程

我們了解了決策樹(shù)模型的算法原理,那么它如何應(yīng)用在日常的數(shù)據(jù)分析工作中呢?繼續(xù)我們剛才的案例,我們想探究分析用戶推薦程度的主要影響因素是什么?

——可以用決策樹(shù)模型將用戶按照推薦者比例高低進(jìn)行分層。

一百條數(shù)據(jù),由公司員工隨機(jī)采訪100名用戶產(chǎn)生,采訪對(duì)象是北京市四個(gè)城區(qū)(西城區(qū)、東城區(qū)、海淀區(qū)、朝陽(yáng)區(qū))的居民,組別分為實(shí)驗(yàn)組和對(duì)照組。

如何用決策樹(shù)模型做數(shù)據(jù)分析?

1. 導(dǎo)入數(shù)據(jù)集

如何用決策樹(shù)模型做數(shù)據(jù)分析?

2. 切割自變量和因變量

如何用決策樹(shù)模型做數(shù)據(jù)分析?

3. 將分類變量轉(zhuǎn)換為啞變量

Python大多數(shù)算法模型無(wú)法直接輸入分類變量

如何用決策樹(shù)模型做數(shù)據(jù)分析?

4. 訓(xùn)練模型

如何用決策樹(shù)模型做數(shù)據(jù)分析?

如何用決策樹(shù)模型做數(shù)據(jù)分析?

圈出葉子點(diǎn)-最終劃分出的人群分層

5. 分析結(jié)果

通過(guò)人群特征取值的判斷,1、我們劃分出了推薦者比例有顯著區(qū)別的人群2、找出了區(qū)分推薦者人群的關(guān)鍵特征,例如:海淀區(qū)用戶、29歲及以上等。

如何用決策樹(shù)模型做數(shù)據(jù)分析?

6. 決策樹(shù)擴(kuò)展

  • 模型建立后,可以將模型用作分類預(yù)測(cè);
  • 決策樹(shù)不只可應(yīng)用于預(yù)測(cè)量為分類變量,還可應(yīng)用于數(shù)值型因變量,只需將熵改為連續(xù)變量的方差;
  • 特征劃分的方法除了信息增益方法外,還可以用增益率(C4.5決策樹(shù))、基尼指數(shù)(CART決策樹(shù));
  • 剪枝是決策樹(shù)算法中防止過(guò)擬合的主要手段,分為預(yù)剪枝與后剪枝。預(yù)剪枝指在決策樹(shù)生成過(guò)程中,對(duì)每個(gè)結(jié)點(diǎn)在劃分前進(jìn)行估計(jì),若當(dāng)前結(jié)點(diǎn)劃分不能使決策樹(shù)泛化能力提升則停止劃分。后剪枝指先從訓(xùn)練集生成一顆決策樹(shù),自底向上對(duì)非葉結(jié)點(diǎn)進(jìn)行考察,若該結(jié)點(diǎn)對(duì)應(yīng)的子樹(shù)替換為葉結(jié)點(diǎn)能使決策樹(shù)泛化能力提升,則該子樹(shù)替換為葉結(jié)點(diǎn)。

 

作者:趙小洛,公眾號(hào):趙小洛洛洛

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

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

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