如何用決策樹模型做數(shù)據(jù)分析?
編輯導(dǎo)語:在這個大數(shù)據(jù)時代,數(shù)據(jù)對于各行各業(yè)的重要性不言而喻,因此有越來越多的企業(yè)開始重視并且運用數(shù)據(jù)分析。數(shù)據(jù)分析的方法有很多種,今天,本文作者為我們介紹了決策樹模型的分析方法,讓我們一起來看看如何用決策樹模型做數(shù)據(jù)分析吧。
在日常工作中,很多時候都會用到數(shù)據(jù)分析的方法,決策樹模型看起來非常簡單,但實際上它的十分重要;本文作者分享了關(guān)于如何用決策樹模型做數(shù)據(jù)分析的方法,我們一起來學(xué)習(xí)一下。
一、什么是決策樹?
決策樹模型本質(zhì)是一顆由多個判斷節(jié)點組成的樹。在樹的每個節(jié)點做參數(shù)判斷,進而在樹的最末枝(葉結(jié)點)能夠?qū)λP(guān)心變量的取值作出最佳判斷。
通常,一棵決策樹包含一個根結(jié)點,若干內(nèi)部節(jié)點和若干葉結(jié)點,葉結(jié)點對應(yīng)決策分類結(jié)果。分支做判斷,葉子下結(jié)論。
我們看一個簡單的決策樹的模型,通過動物的一些特點來判斷它是否是魚類,在決策樹模型中,我們來看每一個節(jié)點是如何做判斷的。
我們將所有要研究的動物作為樹最上端的起點,對它進行第一個判斷,是否能脫離水生存?
如果判斷為是的話,它不是魚類;如果為否的話,我們還要再進行下一個判斷,是否有腳蹼?如果是的話,它就是非魚類,如果否的話就是魚類。
我們僅僅是通過最多兩個層次的判斷,在樹最末端的葉子結(jié)點,可以對我們感興趣的問題給出了一個相對而言的最佳決策。這個就是決策樹的邏輯,非常簡單且和人腦理解事物的邏輯很類似。
決策樹是一種簡單高效并且具有強解釋性的模型,廣泛應(yīng)用于數(shù)據(jù)分析領(lǐng)域。
- 簡單:邏輯相對簡單,整個算法沒有更復(fù)雜的邏輯,只是對節(jié)點進行分叉;
- 高效:模型訓(xùn)練速度較快;
- 強解釋性:模型的判斷邏輯可以用語言清晰的表達出來,比如上述決策樹案例中的判斷,就可以直接用語言表述成:脫離水不能生存的沒有腳蹼的動物,我們判斷它是魚。
決策樹模型應(yīng)用于數(shù)據(jù)分析的場景主要有三種:
- 監(jiān)督分層;
- 驅(qū)動力分析:某個因變量指標(biāo)受多個因素所影響,分析不同因素對因變量驅(qū)動力的強弱(驅(qū)動力指相關(guān)性,不是因果性);
- 預(yù)測:根據(jù)模型進行分類的預(yù)測。
二、熵是什么?
熵是描述判斷的不確定性,大多數(shù)決策樹的最終判斷,并不是100%準(zhǔn)確,決策樹只是基于不確定性,作出最優(yōu)的判斷。
比如上述決策樹案例,我們判斷脫離水依然可以生存的是“非魚類”。但是有一種特殊的魚叫做非洲肺魚,它脫離水后依然可以存活4年之久。
雖然不是100%正確,我們在這個葉結(jié)點做出非魚類的判斷,是因為所有脫離水依然可以生存的動物里,有非常大部分都不是魚。
這個判斷有很大可能性是正確的,但判斷依然存在著一些不確定性。
那么不確定性指的是什么呢?
如下圖,女生占比為50%,具有最大的不確定性;女生占比0%或者100%,則具備最小的不確定性。女生占比30%,具有中等不確定性;如果女性占比為70%的話,我們這個時候猜測是女性,出錯可能性是1-70%,即30%,和剛剛的情況相同。
也就是說,10個人中女性占比為30%,或是70%,我們雖然給出的判斷不同,但是兩個判斷出錯的可能性是一樣的,都是30%;
圖:在10個人中,判斷隨機挑選出來一個人,性別是男還是女
如果嘗試使用一個統(tǒng)計量E來表示不確定性的話,并且規(guī)定E的取值在0和1之間。
他和人群中女性的占比應(yīng)該滿足這樣一條曲線的關(guān)系,當(dāng)女性占比為0或者100%的時候,進行判斷的不確定性最小;E取最小值0當(dāng)女性占比為50%的時候,判斷的不確定性最大,E取最大值1;當(dāng)女性占比取0到50%,或者50%到100%之間的值的時候,E的取值介于0到1之間。
并且取值相對女性占比50%是對稱的。熵即是用來描述以上這種不確定性,它的數(shù)學(xué)表達式為:
Pi含義:對于事件,有c種可能的結(jié)果,每一種可能結(jié)果的概率為P1、P2…Pc;熵的取值在0-1之間;一個判斷的不確定性越大,熵越大。
三、信息增益
信息增益表示經(jīng)過一次決策判斷(分叉)后,人群熵值下降的大小,即母節(jié)點的熵與兩個子節(jié)點熵值和的差值。
如上圖,信息增益(IG) = 0.5842 – ( 38% * 0.9507 + 62 * 0 )=0.22。
四、決策樹算法實現(xiàn)步驟
我們繼續(xù)用上一篇文章《如何用線性回歸模型做數(shù)據(jù)分析》中的共享單車服務(wù)滿意分?jǐn)?shù)據(jù)集來做案例,分析哪一類人群更加偏向于成為公司的推薦者,我們需要分析用戶特征,更好的區(qū)分出推薦者。
1. 測量節(jié)點對應(yīng)人群的熵
決策樹模型的第一步,是測量每個節(jié)點對應(yīng)人群的熵值,最終我們得到可以判斷推薦者的決策樹。
如下圖,每個節(jié)點中標(biāo)注兩個數(shù)字,上面是推薦者比例,下面是用戶群占比。初始節(jié)點的推薦者比例為0.14,再沒任何分叉前,人群占比100%。
我們用熵來度量每個節(jié)點對應(yīng)人群的不確定性,推薦者比例趨近0%和100%的人群,熵的值也趨近于0,推薦者比例趨近50%的人群,熵的值則趨近于1。
在這個案例中,我們想知道哪一類人更加偏向成為公司的推薦者,也就是說,我們希望通過決策樹,可以盡量地劃分出是或者不是推薦者這個事情最為確定的人群。
如果這樣的人群在樹的最終結(jié)點、也就是葉子結(jié)點可以被很好地劃分出來的話,那么葉子結(jié)點所對應(yīng)的人群的特征,就是推薦者或者非推薦者的典型特征。
反應(yīng)在人群的熵值計算,更大的確定性對應(yīng)于比較小的熵值。我們實際上是希望通過決策樹不斷地分叉,使得節(jié)點的熵值越來越低,用戶的label越來越純。
2. 節(jié)點的分叉-信息增益
我們使用信息增益(IG)來判斷決策樹的分叉方式。
節(jié)點分叉規(guī)則:在每個節(jié)點嘗試按照不同特征變量的各種分組方式,選取信息增益最大(熵最小)的方式。
3. 在特定情況樹節(jié)點停止分叉
決策樹不會一直不停分叉,決策樹停止分叉的條件通常有:
- 樹的深度 — 如規(guī)定樹的深度不能超過3;
- 葉子結(jié)點樣本數(shù) — 如葉子結(jié)點樣本數(shù)不能小于10;
- 信息增益 — 如每一個分叉的信息增益不能小于0.2(R中的默認(rèn)值)。
停止分叉:再分叉會增加復(fù)雜度但是效果沒有提高,葉子越多越復(fù)雜,會加重解釋復(fù)雜性。
五、決策樹在數(shù)據(jù)分析中的實戰(zhàn)流程
我們了解了決策樹模型的算法原理,那么它如何應(yīng)用在日常的數(shù)據(jù)分析工作中呢?繼續(xù)我們剛才的案例,我們想探究分析用戶推薦程度的主要影響因素是什么?
——可以用決策樹模型將用戶按照推薦者比例高低進行分層。
一百條數(shù)據(jù),由公司員工隨機采訪100名用戶產(chǎn)生,采訪對象是北京市四個城區(qū)(西城區(qū)、東城區(qū)、海淀區(qū)、朝陽區(qū))的居民,組別分為實驗組和對照組。
1. 導(dǎo)入數(shù)據(jù)集
2. 切割自變量和因變量
3. 將分類變量轉(zhuǎn)換為啞變量
Python大多數(shù)算法模型無法直接輸入分類變量
4. 訓(xùn)練模型
圈出葉子點-最終劃分出的人群分層
5. 分析結(jié)果
通過人群特征取值的判斷,1、我們劃分出了推薦者比例有顯著區(qū)別的人群2、找出了區(qū)分推薦者人群的關(guān)鍵特征,例如:海淀區(qū)用戶、29歲及以上等。
6. 決策樹擴展
- 模型建立后,可以將模型用作分類預(yù)測;
- 決策樹不只可應(yīng)用于預(yù)測量為分類變量,還可應(yīng)用于數(shù)值型因變量,只需將熵改為連續(xù)變量的方差;
- 特征劃分的方法除了信息增益方法外,還可以用增益率(C4.5決策樹)、基尼指數(shù)(CART決策樹);
- 剪枝是決策樹算法中防止過擬合的主要手段,分為預(yù)剪枝與后剪枝。預(yù)剪枝指在決策樹生成過程中,對每個結(jié)點在劃分前進行估計,若當(dāng)前結(jié)點劃分不能使決策樹泛化能力提升則停止劃分。后剪枝指先從訓(xùn)練集生成一顆決策樹,自底向上對非葉結(jié)點進行考察,若該結(jié)點對應(yīng)的子樹替換為葉結(jié)點能使決策樹泛化能力提升,則該子樹替換為葉結(jié)點。
作者:趙小洛,公眾號:趙小洛洛洛
本文由 @趙小洛 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
- 目前還沒評論,等你發(fā)揮!