<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 3087字,需瀏覽 7分鐘

           ·

          2021-01-06 03:03


          ?什么是決策樹?

          決策樹模型本質(zhì)是一顆由多個判斷節(jié)點組成的樹。在樹的每個節(jié)點做參數(shù)判斷,進(jìn)而在樹的最末枝(葉結(jié)點)能夠?qū)λP(guān)心變量的取值作出最佳判斷。通常,一棵決策樹包含一個根結(jié)點,若干內(nèi)部節(jié)點和若干葉結(jié)點,葉結(jié)點對應(yīng)決策分類結(jié)果。分支做判斷,葉子下結(jié)論。
          ?
          我們看一個簡單的決策樹的模型,通過動物的一些特點來判斷它是否是魚類,在決策樹模型中,我們來看每一個節(jié)點是如何做判斷的。我們將所有要研究的動物作為樹最上端的起點,對它進(jìn)行第一個判斷,是否能脫離水生存?如果判斷為是的話,它不是魚類。如果為否的話,我們還要再進(jìn)行下一個判斷,是否有腳蹼?如果是的話,它就是非魚類,如果否的話就是魚類。

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

          決策樹是一種簡單高效并且具有強解釋性的模型,廣泛應(yīng)用于數(shù)據(jù)分析領(lǐng)域。
          • 簡單:邏輯相對簡單,整個算法沒有更復(fù)雜的邏輯,只是對節(jié)點進(jìn)行分叉;
          • 高效:模型訓(xùn)練速度較快;
          • 強解釋性:模型的判斷邏輯可以用語言清晰的表達(dá)出來,比如上述決策樹案例中的判斷,就可以直接用語言表述成:脫離水不能生存的沒有腳蹼的動物,我們判斷它是魚;
          ?
          決策樹模型應(yīng)用于數(shù)據(jù)分析的場景主要有三種:
          • 監(jiān)督分層;
          • 驅(qū)動力分析:某個因變量指標(biāo)受多個因素所影響,分析不同因素對因變量驅(qū)動力的強弱(驅(qū)動力指相關(guān)性,不是因果性);
          • 預(yù)測:根據(jù)模型進(jìn)行分類的預(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%的時候,進(jìn)行判斷的不確定性最??;E取最小值0當(dāng)女性占比為50%的時候,判斷的不確定性最大,E取最大值1;當(dāng)女性占比取0到50%,或者50%到100%之間的值的時候,E的取值介于0到1之間。并且取值相對女性占比50%是對稱的。
          ?
          熵即是用來描述以上這種不確定性,它的數(shù)學(xué)表達(dá)式為:

          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ū)分出推薦者。

          ?
          4.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越來越純。
          ??
          ?
          ?4.2節(jié)點的分叉-信息增益

          我們使用信息增益(IG)來判斷決策樹的分叉方式。
          節(jié)點分叉規(guī)則:在每個節(jié)點嘗試按照不同特征變量的各種分組方式,選取信息增益最大(熵最小)的方式。

          ?4.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ù)我們剛才的案例,我們想探究分析用戶推薦程度的主要影響因素是什么?可以用決策樹模型將用戶按照推薦者比例高低進(jìn)行分層。
          ?
          一百條數(shù)據(jù),由公司員工隨機采訪100名用戶產(chǎn)生,采訪對象是北京市四個城區(qū)(西城區(qū)、東城區(qū)、海淀區(qū)、朝陽區(qū))的居民,組別分為實驗組和對照組。

          ?5.1導(dǎo)入數(shù)據(jù)集
          5.2切割自變量和因變量


          5.3將分類變量轉(zhuǎn)換為啞變量
          Python大多數(shù)算法模型無法直接輸入分類變量

          5.4訓(xùn)練模型


          圈出葉子點-最終劃分出的人群分層


          ?5.5分析結(jié)果

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

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

          ?



          --------? ?往 期 推 薦??----------

          ? ??

          瀏覽 59
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄视频在线 | 天天撸在线不卡 | 国产69久久精品成人看 | 99免费精品 | 天堂资源网 |