機(jī)器學(xué)習(xí)之決策樹(shù)算法
決策樹(shù)是歸納學(xué)習(xí)中的一種展示決策規(guī)則和分類結(jié)果的模型算法。在本文中,作者分享了決策樹(shù)的原理和構(gòu)造步驟,以及日常應(yīng)用場(chǎng)景,供各位參考。
一、什么叫決策樹(shù)?
決策樹(shù)(Decision Tree),又稱判斷樹(shù),它是一種以樹(shù)形數(shù)據(jù)結(jié)構(gòu)來(lái)展示決策規(guī)則和分類結(jié)果的模型,作為一種歸納學(xué)習(xí)算法,其重點(diǎn)是將看似無(wú)序、雜亂的已知實(shí)例,通過(guò)某種技術(shù)手段將它們轉(zhuǎn)化成可以預(yù)測(cè)未知實(shí)例的樹(shù)狀模型,每一條從根結(jié)點(diǎn)(對(duì)最終分類結(jié)果貢獻(xiàn)最大的屬性)到葉子結(jié)點(diǎn)(最終分類結(jié)果)的路徑都代表一條決策的規(guī)則。
二、決策樹(shù)的原理是什么?
決策樹(shù)(Decision Tree),是一種樹(shù)狀結(jié)構(gòu),上面的節(jié)點(diǎn)代表算法的某一特征,節(jié)點(diǎn)上可能存在很多的分支,每一個(gè)分支代表的是這個(gè)特征的不同種類(規(guī)則),最后葉子節(jié)點(diǎn)代表最終的決策結(jié)果。
決策樹(shù)的構(gòu)造只會(huì)影響到算法的復(fù)雜度和計(jì)算的時(shí)間,不會(huì)影響決策的結(jié)果。
為了更直觀地理解決策樹(shù),我們現(xiàn)在來(lái)構(gòu)建一個(gè)簡(jiǎn)單的郵件分類系統(tǒng),如圖:
- 首先檢測(cè)發(fā)送郵件域名地址;
- 如果地址為com,則放置于“無(wú)聊時(shí)需要閱讀的郵件”分類;
- 如果不是這個(gè)地址,那么再次檢測(cè);
- 檢查郵件是否有單詞“曲棍球”;
- 包含單詞“曲棍球”,則放置于“需要及時(shí)處理的朋友郵件”分類;
- 不包含單詞“曲棍球”,則放置于“無(wú)需閱讀的垃圾郵件”分類。
現(xiàn)在,我們來(lái)總結(jié)一下決策樹(shù)的構(gòu)成:
- 根節(jié)點(diǎn)。第一個(gè)需要判斷的條件,往往也是最具有特征的那個(gè)條件,我們稱為根節(jié)點(diǎn)。
- 中間節(jié)點(diǎn)。那個(gè)矩形總是要往下分,并不是最終的結(jié)果,它叫做中間節(jié)點(diǎn)(或內(nèi)部節(jié)點(diǎn))。
- 邊。那些帶有文字的線段(一般使用有箭頭的有向線段),線的一端連的是中間節(jié)點(diǎn)、另一端連的是另一個(gè)中間節(jié)點(diǎn)或葉節(jié)點(diǎn),然后線段上還有文字,它叫做邊。
- 葉節(jié)點(diǎn)。那個(gè)圓角矩形,它就已經(jīng)是最后的結(jié)果了,不再往下了,這一類東西呢,在決策樹(shù)里叫做葉節(jié)點(diǎn)。
三、決策樹(shù)的構(gòu)造步驟
- 數(shù)據(jù)準(zhǔn)備:首先對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,包括缺失值填充、異常值處理以及特征編碼等操作。
- 特征選擇:在每個(gè)內(nèi)部節(jié)點(diǎn)上,計(jì)算所有特征的基尼不純度(CART)或信息增益(ID3),選取具有最小不純度/最大增益的特征作為劃分標(biāo)準(zhǔn)。
- 生成分支:根據(jù)選定特征的最佳分割點(diǎn),將數(shù)據(jù)集劃分為子集,并為該節(jié)點(diǎn)創(chuàng)建分支。
- 遞歸生長(zhǎng):對(duì)每個(gè)子集重復(fù)上述過(guò)程,直至滿足停止條件,如達(dá)到預(yù)設(shè)的最大深度、葉子節(jié)點(diǎn)包含樣本數(shù)量少于閾值或者信息增益不再顯著提高等。
- 剪枝優(yōu)化:為了防止過(guò)擬合,可以通過(guò)后剪枝或預(yù)剪枝方法來(lái)簡(jiǎn)化決策樹(shù)結(jié)構(gòu),提升模型泛化能力。
四、決策樹(shù)的分類有哪些?
1. CART(Classification and Regression Tree)
Breiman.L.I等人在1984年提出了CART算法,即分類回歸樹(shù)算法。CART算法用基尼指數(shù)(Gini Index)代替了信息熵,用二叉樹(shù)作為模型結(jié)構(gòu),所以不是直接通過(guò)屬性值進(jìn)行數(shù)據(jù)劃分,該算法要在所有屬性中找出最佳的二元?jiǎng)澐?。CART算法通過(guò)遞歸操作不斷地對(duì)決策屬性進(jìn)行劃分,同時(shí)利用驗(yàn)證數(shù)據(jù)對(duì)樹(shù)模型進(jìn)行優(yōu)化。
處理問(wèn)題類型:分類或回歸
結(jié)構(gòu):二叉樹(shù)結(jié)構(gòu)
計(jì)算指標(biāo):分類問(wèn)題是基尼系數(shù),回歸問(wèn)題的指標(biāo)是偏差
特點(diǎn):可以處理缺失值,連續(xù)值,可以剪枝,避免過(guò)擬合。即可以處理分類問(wèn)題,也可以處理回歸問(wèn)題。
CART中用于選擇變量的不純性度量是Gini指數(shù),總體內(nèi)包含的類別越雜亂,GINI指數(shù)就越大(跟熵的概念很相似)。
基尼系數(shù)公式如下:
舉例:
數(shù)據(jù)集D的純度可用基尼值來(lái)度量:
屬性a的基尼指數(shù)定義為加權(quán)基尼指數(shù):
如何理解上面的公式呢?我們簡(jiǎn)單舉個(gè)例子:
樣例數(shù)據(jù)
簡(jiǎn)單解釋下為啥要這樣算。
首先工資有兩個(gè)取值,分別是0和1。當(dāng)工資=1時(shí),有3個(gè)樣本。
所以:
同時(shí),在這三個(gè)樣本中,工作都是好。
所以:
就有了加號(hào)左邊的式子:
同理,當(dāng)工資=0時(shí),有5個(gè)樣本,在這五個(gè)樣本中,工作有3個(gè)是不好,2個(gè)是好。
就有了加號(hào)右邊的式子:
同理,可得壓力的基尼指數(shù)如下:
平臺(tái)的基尼指數(shù)如下:
注意啦,在計(jì)算時(shí),工資和平臺(tái)的計(jì)算方式有明顯的不同。因?yàn)楣べY只有兩個(gè)取值0和1,而平臺(tái)有三個(gè)取值0,1,2。所以在計(jì)算時(shí),需要將平臺(tái)的每一個(gè)取值都單獨(dú)進(jìn)行計(jì)算。比如:當(dāng)平臺(tái)=0時(shí),將數(shù)據(jù)集分為兩部分,第一部分是平臺(tái)等于0,第二部分是平臺(tái)大于0。
根據(jù)基尼指數(shù)最小準(zhǔn)則,我們優(yōu)先選擇工資或者平臺(tái)=0作為D的第一特征。
我們選擇工資作為第一特征,那么當(dāng)工資=1時(shí),工作=好,無(wú)需繼續(xù)劃分。
當(dāng)工資=0時(shí),需要繼續(xù)劃分。當(dāng)工資=0時(shí),繼續(xù)計(jì)算基尼指數(shù):
當(dāng)平臺(tái)=0時(shí),基尼指數(shù)=0,可以優(yōu)先選擇。
同時(shí),當(dāng)平臺(tái)=0時(shí),工作都是好,無(wú)需繼續(xù)劃分,當(dāng)平臺(tái)=1,2時(shí),工作都是不好,也無(wú)需繼續(xù)劃分。直接把1,2放到樹(shù)的一個(gè)結(jié)點(diǎn)就可以。最終的決策樹(shù)如下:
2. ID3(Iterative Dichotomiser 3)
ID3采用香濃的信息熵來(lái)計(jì)算特征的區(qū)分度。選擇熵減少程度最大的特征來(lái)劃分?jǐn)?shù)據(jù),也就是“最大信息熵增益”原則。它的核心思想是以信息增益作為分裂屬性選取的依據(jù)。
處理問(wèn)題類型:多分類
結(jié)構(gòu):多叉樹(shù)結(jié)構(gòu)
計(jì)算指標(biāo):信息增益
特點(diǎn):簡(jiǎn)單易懂,無(wú)法剪枝、容易過(guò)擬合,無(wú)法處理連續(xù)值
存在的缺陷:該算法未考慮如何處理連續(xù)屬性、屬性缺失以及噪聲等問(wèn)題。
下面來(lái)介紹兩個(gè)與此有關(guān)的概念:
信息熵是一種信息的度量方式,表示信息的混亂程度,也就是說(shuō):信息越有序,信息熵越低。舉個(gè)列子:火柴有序放在火柴盒里,熵值很低,相反,熵值很高。它的公式如下:
信息增益: 在劃分?jǐn)?shù)據(jù)集前后信息發(fā)生的變化稱為信息增益,信息增益越大,確定性越強(qiáng)。
我們來(lái)看看代表之一 —— ID3算法。
在劃分?jǐn)?shù)據(jù)集之前之后信息發(fā)生的變化稱為信息增益,知道如何計(jì)算信息增益,我們就可以計(jì)算每個(gè)特征值劃分?jǐn)?shù)據(jù)集獲得的信息增益,獲得信息增益最高的特征就是最好的選擇。
這里又引入了另一個(gè)概念——熵。這里先不展開(kāi)說(shuō)了,我們記住他的概念:一個(gè)事情它的隨機(jī)性越大就越難預(yù)測(cè)。
具體來(lái)說(shuō)這個(gè)概率p越小,最后熵就越大(也就是信息量越大),如果極端情況一件事情概率為1,它的熵就變成0了。
比如,你如果能預(yù)測(cè)一個(gè)彩票的中獎(jiǎng)號(hào)碼就發(fā)達(dá)了。但是,如果你能預(yù)測(cè)明天太陽(yáng)從東邊升起來(lái)則毫無(wú)價(jià)值。這樣衡量一個(gè)信息價(jià)值的事,就可以由熵來(lái)表示。
聰明的你或許已經(jīng)發(fā)現(xiàn)了,決策樹(shù)算法其實(shí)就是為了找到能夠迅速使熵變小,直至熵為0的那條路徑,這就是信息增益的那條路。我們將對(duì)每個(gè)特征劃分?jǐn)?shù)據(jù)集的結(jié)果計(jì)算一次信息熵,然后判斷按照哪個(gè)特征劃分?jǐn)?shù)據(jù)集是最好的劃分方式。
舉個(gè)容易理解的例子:
解決問(wèn)題:預(yù)設(shè)4個(gè)自變量:天氣、溫度、濕度、風(fēng)速,預(yù)測(cè)學(xué)校會(huì)不會(huì)舉辦運(yùn)動(dòng)會(huì)?
步驟一:假設(shè)我們記錄了某個(gè)學(xué)校14屆校運(yùn)會(huì)按時(shí)舉行或取消的記錄,舉行或者取消的概率分別為:9/14、5/14,那么它的信息熵,這里也叫先驗(yàn)熵,為:
步驟二:我們同時(shí)記錄了當(dāng)天的天氣情況,發(fā)現(xiàn)天氣好壞和校運(yùn)會(huì)舉行還是取消有關(guān)。14天中,5次晴天(2次舉行、3次取消)、5次雨天(3次舉行、2次取消)、4次陰天(4次舉行)。相對(duì)應(yīng)的晴天、陰天、雨天的后驗(yàn)熵。
步驟三:我們計(jì)算知道天氣情況后的條件熵。
步驟四:我們計(jì)算在有沒(méi)有天氣情況這個(gè)條件前后的信息增益就是。
步驟五:我們依次計(jì)算在有沒(méi)有溫度、濕度、風(fēng)速條件前后的信息增益。
步驟六:根據(jù)設(shè)置的閾值,若信息增益的值大于設(shè)置的閾值,選取為我們的特征值,也就是我們上圖中的矩形節(jié)點(diǎn)。
步驟七:生成決策樹(shù)。選取信息增益最大的自變量作為根節(jié)點(diǎn)。其他的特征值依次選取為內(nèi)部節(jié)點(diǎn)。
比如上面的例子是這樣的過(guò)程:
經(jīng)過(guò)如上步驟,我們得到?jīng)Q策樹(shù)??梢钥吹剑罱K們只選取了3個(gè)特征值作為內(nèi)部節(jié)點(diǎn)。
3. C4.5
J.R.Quinlan針對(duì)ID3算法的不足設(shè)計(jì)了C4.5算法,引入信息增益率的概念。它克服了ID3算法無(wú)法處理屬性缺失和連續(xù)屬性的問(wèn)題,并且引入了優(yōu)化決策樹(shù)的剪枝方法,使算法更高效,適用性更強(qiáng)。
處理問(wèn)題類型:多分類
結(jié)構(gòu):多叉樹(shù)結(jié)構(gòu)
計(jì)算指標(biāo):信息增益
特點(diǎn):可以處理缺失值,連續(xù)值,可以剪枝,避免過(guò)擬合
同樣介紹一下信息增益率:在決策樹(shù)分類問(wèn)題中,即就是決策樹(shù)在進(jìn)行屬性選擇劃分前和劃分后的信息差值。
五、決策樹(shù)的優(yōu)勢(shì)與局限是什么?
優(yōu)勢(shì):
- 易于理解和解釋,生成的決策規(guī)則可以直接轉(zhuǎn)化為業(yè)務(wù)策略。
- 可處理分類問(wèn)題及回歸問(wèn)題,分類問(wèn)題可處理多分類問(wèn)題。
局限:
- 容易過(guò)擬合。決策樹(shù)傾向于生成復(fù)雜的模型,容易過(guò)擬合訓(xùn)練數(shù)據(jù),導(dǎo)致模型在新數(shù)據(jù)上的性能下降,缺乏泛化能力。為了解決這個(gè)問(wèn)題,可以通過(guò)剪枝、限制樹(shù)的最大深度或引入正則化等技術(shù)來(lái)控制模型復(fù)雜度。
- 對(duì)噪聲及不均衡數(shù)據(jù)非常敏感。噪聲數(shù)據(jù)可能導(dǎo)致錯(cuò)誤的分割點(diǎn),從而影響模型的準(zhǔn)確性。在不均衡數(shù)據(jù)集中,如果某個(gè)類別的樣本數(shù)目遠(yuǎn)遠(yuǎn)超過(guò)其他類別,則決策樹(shù)往往傾向于選擇該類別作為劃分點(diǎn),造成模型偏向該類別。
- 對(duì)輸入數(shù)據(jù)的微小變化敏感,可能導(dǎo)致完全不同的決策樹(shù)生成。
- 決策樹(shù)計(jì)算復(fù)雜。決策樹(shù)的構(gòu)建過(guò)程中,需要對(duì)每個(gè)特征進(jìn)行多次劃分,并計(jì)算信息增益、基尼系數(shù)等指標(biāo)。這導(dǎo)致了決策樹(shù)算法的計(jì)算復(fù)雜度較高,特別是在處理大規(guī)模數(shù)據(jù)集時(shí)。為了降低計(jì)算負(fù)擔(dān),可以采用一些優(yōu)化技術(shù),如特征選擇和剪枝。
六、 決策樹(shù)的日常應(yīng)用場(chǎng)景有哪些?
1. 信用評(píng)估
銀行或金融機(jī)構(gòu)在進(jìn)行個(gè)人或企業(yè)信貸審批時(shí),可以使用決策樹(shù)模型根據(jù)申請(qǐng)人的特征(如年齡、收入水平、職業(yè)、負(fù)債情況等)來(lái)預(yù)測(cè)其違約風(fēng)險(xiǎn),并據(jù)此制定貸款策略。
2. 市場(chǎng)營(yíng)銷
在市場(chǎng)細(xì)分中,公司可通過(guò)決策樹(shù)分析客戶的購(gòu)買行為、消費(fèi)習(xí)慣、地理位置等信息,以識(shí)別潛在的目標(biāo)群體并定制營(yíng)銷策略。
3. 醫(yī)療診斷
構(gòu)建疾病診斷模型,醫(yī)生可以根據(jù)病人的癥狀、體檢結(jié)果等因素快速得出可能的診斷結(jié)論,如心臟病發(fā)作的風(fēng)險(xiǎn)評(píng)估、腫瘤分類等。
4. 圖像識(shí)別
雖然深度學(xué)習(xí)在圖像識(shí)別方面表現(xiàn)優(yōu)異,但在某些簡(jiǎn)單場(chǎng)景下,基于像素強(qiáng)度值或其他提取出的圖像特征構(gòu)建的決策樹(shù)或隨機(jī)森林也能實(shí)現(xiàn)有效分類,比如醫(yī)學(xué)影像中的結(jié)節(jié)檢測(cè)。
5. 推薦系統(tǒng)
用于基于內(nèi)容的推薦,根據(jù)用戶的屬性和歷史行為數(shù)據(jù)建立模型,決定向用戶推薦何種類型的商品或服務(wù)。
參考:
七大機(jī)器學(xué)習(xí)常用算法精講:決策樹(shù)與隨機(jī)森林(三)-人人都是產(chǎn)品經(jīng)理-火粒產(chǎn)品
機(jī)器學(xué)習(xí)必修:決策樹(shù)算法(Decision Tree)-人人都是產(chǎn)品經(jīng)理-CARRIE
AI產(chǎn)品經(jīng)理必懂算法:決策樹(shù)-人人都是產(chǎn)品經(jīng)理-燕然未勒
作者:厚謙,公眾號(hào):小王子與月季
本文由@厚謙 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議。
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
- 目前還沒(méi)評(píng)論,等你發(fā)揮!
