決策樹與隨機(jī)森林算法:可視化的決策過程
決策樹既可以計算出結(jié)果,還能夠清晰地告訴我們得到這個結(jié)果的原因。那么在決策中,可以如何應(yīng)用決策樹與隨機(jī)森林算法?本文對此進(jìn)行了解析,一起來看看吧。
上篇文章我們介紹了邏輯回歸算法,今天我們接著來學(xué)習(xí)另一個基礎(chǔ)的分類和回歸方法,決策樹。
決策樹既可以輸出計算結(jié)果,還能很清楚的告訴我們?yōu)槭裁磿玫竭@個結(jié)果。
如果對一棵決策樹的效果不夠滿意,還可以使用多棵決策樹來協(xié)同解決問題,這就是隨機(jī)森林,屬于集成學(xué)習(xí)的一種。
而隨機(jī)森林這樣的集成學(xué)習(xí)算法,融合了多個模型的優(yōu)點,所以在遇到分類問題的場景時,決策樹和隨機(jī)森林常被當(dāng)做機(jī)器學(xué)習(xí)的首選算法。
一、初識決策樹
舉個栗子,我們要判斷一個物體是否屬于鳥類,一般會看它是否會飛、是否有羽毛等條件,如果它既會飛又有羽毛,那么大概率就是鳥類了。
我整理了幾條樣本數(shù)據(jù),如下表所示:
基于表格里的數(shù)據(jù),我們可以根據(jù)每個條件的結(jié)果,畫出如下的決策樹:
如上圖所示,決策樹(Decision Tree)就是一種樹形結(jié)構(gòu)的算法,每個節(jié)點對應(yīng)了算法的一個特征(是否會飛等),節(jié)點上的每一個分支(會飛、不會飛)對應(yīng)了特征的不同種類,最后綠色的葉子節(jié)點對應(yīng)了最終決策結(jié)果(是否鳥類)。
有了這個決策樹之后,再有新的數(shù)據(jù)進(jìn)來,沿著決策樹自上而下的走一圈,就能得到?jīng)Q策結(jié)果,而且決策過程清晰明了。
二、信息熵
仔細(xì)觀察上圖的決策樹,我們可以發(fā)現(xiàn),不同的決策條件會導(dǎo)致其得到的子節(jié)點數(shù)據(jù)是完全不同的,從而得到完全不同的決策樹結(jié)構(gòu),那么我們?nèi)绾慰焖僬业阶顑?yōu)的決策條件,使決策樹的效率和準(zhǔn)確率更高呢?
這里需要引入信息熵的概念了:信息熵(Entropy)是衡量一個節(jié)點內(nèi)不確定性的度量。
怎么理解呢?我們對剛才的決策樹做一些改變,只保留兩層節(jié)點,去掉“是否有羽毛”條件,如下圖所示。那么最終的黃色葉子節(jié)點里,就會同時存在是鳥類和不是鳥類的樣本數(shù)據(jù),這個節(jié)點的不確定性就增加了,也就是信息熵變高了。
我們肯定希望決策樹每次劃分的時候,最終的葉子節(jié)點信息熵更低,這樣每個葉子節(jié)點內(nèi)的樣本純度也就越高,最終生成的決策樹的確定性更強(qiáng),效率會更高。
在構(gòu)建決策樹的時候,一般通過信息熵來篩選出更重要的特征,并把更重要的特征放到更靠前的節(jié)點上去。
三、如何生成決策樹?
生成決策樹包括特征選擇、決策樹生成、決策樹剪枝等三個步驟。
在特征選擇和決策樹生成階段,最重要的任務(wù)就是通過信息熵來篩選出更重要的特征,并把更重要的特征放到更靠前的節(jié)點上去。
決策樹會評估每一個特征劃分后系統(tǒng)的“信息熵指標(biāo)”,“信息熵指標(biāo)”最低的特征越靠近根節(jié)點,這樣一來,決策樹的復(fù)雜度和計算時間就會減少,模型就會更高效。
不同的決策樹算法,所謂的“信息熵指標(biāo)”也不一樣,比如ID3算法使用的是信息增益,C4.5算法使用的是信息增益率,目前使用較多的CART算法使用的是Gini系數(shù),這里不再贅述,感興趣的話可以自己查一下相關(guān)資料。
上圖的決策樹,根據(jù)“信息熵指標(biāo)”優(yōu)化后的結(jié)果如下:
由于決策樹很容易出現(xiàn)過擬合的現(xiàn)象,我們還需要對決策樹進(jìn)行剪枝操作。
剪枝操作可以降低決策樹的復(fù)雜性,提升模型的泛化能力,基本原理就是判斷把某節(jié)點去掉之后,模型準(zhǔn)確度是否大幅下降,如果沒有下降,就可以剪掉這個節(jié)點。
比如優(yōu)化后的決策樹,把是否是動物節(jié)點去掉后,并不影響模型的準(zhǔn)確度,那就可以對其做剪枝處理,從而得到新的決策樹。
四、應(yīng)用場景
決策樹的可解釋性非常高,可以很容易的解釋清楚其計算邏輯,所以適合各種需要強(qiáng)解釋性的應(yīng)用場景,比如咨詢、金融等領(lǐng)域。
- 金融領(lǐng)域:決策樹可以用于信用評分、風(fēng)險評估、欺詐檢測等金融領(lǐng)域的問題。
- 醫(yī)療診斷:決策樹可以用于醫(yī)療診斷,如疾病診斷、藥物選擇等。
- 市場營銷:決策樹可以用于市場營銷中的用戶分類、客戶細(xì)分等問題。
- 生物醫(yī)學(xué)領(lǐng)域:決策樹可以用于基因表達(dá)數(shù)據(jù)分析、蛋白質(zhì)結(jié)構(gòu)預(yù)測等生物醫(yī)學(xué)領(lǐng)域的問題。
- 電子商務(wù):決策樹可以用于推薦系統(tǒng)、用戶行為分析等電子商務(wù)領(lǐng)域的問題。
五、優(yōu)缺點
決策樹的優(yōu)點:
- 可解釋性強(qiáng):決策樹的生成過程可以直觀地表示為一棵樹形結(jié)構(gòu),易于理解和解釋。每個節(jié)點代表一個特征,每個分支代表一個特征取值,葉子節(jié)點代表一個類別或一個決策結(jié)果。
- 適用性廣泛:決策樹可以用于分類和回歸任務(wù),可以處理離散型和連續(xù)型特征,也可以處理多分類和多輸出問題。
- 數(shù)據(jù)預(yù)處理簡單:決策樹對于缺失值和異常值具有較好的容忍性,不需要對數(shù)據(jù)進(jìn)行嚴(yán)格的預(yù)處理。
- 特征選擇自動化:決策樹可以自動選擇最重要的特征進(jìn)行分裂,能夠處理高維數(shù)據(jù)和特征選擇問題。
- 處理非線性關(guān)系:決策樹可以處理非線性關(guān)系,不需要對數(shù)據(jù)進(jìn)行線性化處理。
決策樹的缺點:
- 容易過擬合:決策樹容易過度擬合訓(xùn)練數(shù)據(jù),特別是當(dāng)樹的深度較大或訓(xùn)練樣本較少時。過擬合會導(dǎo)致模型在新數(shù)據(jù)上的泛化能力較差。
- 不穩(wěn)定性:決策樹對于數(shù)據(jù)的微小變化非常敏感,即使數(shù)據(jù)發(fā)生輕微的變化,生成的決策樹可能完全不同。
- 忽略特征間的相關(guān)性:決策樹在生成過程中只考慮了單個特征的重要性,忽略了特征之間的相關(guān)性。這可能導(dǎo)致決策樹在處理某些問題時效果不佳。
- 難以處理連續(xù)型特征:決策樹對于連續(xù)型特征的處理相對困難,需要進(jìn)行離散化或采用其他方法進(jìn)行處理。
- 生成過程不穩(wěn)定:決策樹的生成過程是基于啟發(fā)式算法的,不同的啟發(fā)式算法可能生成不同的決策樹,導(dǎo)致結(jié)果的不穩(wěn)定性。
六、隨機(jī)森林:三個臭皮匠,賽過諸葛亮
單棵決策樹容易出現(xiàn)過擬合的情況,并且結(jié)果也較不穩(wěn)定,這時候我們可以使用多棵決策樹來共同解決問題,這就是就是隨機(jī)森林。
隨機(jī)森林(Random Forest)是一種集成學(xué)習(xí)方法,通過組合多個決策樹來進(jìn)行分類或回歸任務(wù)。
每棵決策樹都隨機(jī)抽取不同的樣本進(jìn)行訓(xùn)練,我們會得到三個不同的決策樹,再綜合考慮三棵樹的決策結(jié)果,就能得到最終的決策結(jié)果了。
由于是根據(jù)多個決策樹的結(jié)果共同決策,所以隨機(jī)森林具有“起點高、上限低”的特點。
與單棵決策樹相比,隨機(jī)森林具有以下優(yōu)點:
- 高準(zhǔn)確性:隨機(jī)森林通過集成多個決策樹的預(yù)測結(jié)果,可以獲得更準(zhǔn)確的分類或回歸結(jié)果。
- 可處理大規(guī)模數(shù)據(jù):隨機(jī)森林可以并行生成多棵決策樹,因此在處理大規(guī)模數(shù)據(jù)時具有較高的計算效率。
- 不容易過擬合:隨機(jī)森林引入了隨機(jī)性,通過隨機(jī)選擇樣本和特征子集來生成決策樹,減少了過擬合的風(fēng)險。
相應(yīng)的,隨機(jī)森林也有以下缺點:
- 計算復(fù)雜度高:隨機(jī)森林需要生成多棵決策樹,并且每棵決策樹都需要考慮隨機(jī)選擇的樣本和特征子集,因此計算復(fù)雜度較高。
- 可解釋性相對較差:隨機(jī)森林生成的模型是一個集成模型,由多棵決策樹組成,因此模型的解釋性較差,不如單棵決策樹直觀。
七、總結(jié)
本文我們介紹了決策樹和隨機(jī)森林的原理、應(yīng)用場景和優(yōu)缺點,同時決策樹也有升級版本,比如XGBoost等,可以自己查一下。
下篇文章,我們來聊一聊支持向量機(jī)算法,敬請期待。
本文由 @AI小當(dāng)家 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!