決策樹與隨機森林算法:可視化的決策過程

0 評論 2779 瀏覽 18 收藏 12 分鐘

決策樹既可以計算出結果,還能夠清晰地告訴我們得到這個結果的原因。那么在決策中,可以如何應用決策樹與隨機森林算法?本文對此進行了解析,一起來看看吧。

上篇文章我們介紹了邏輯回歸算法,今天我們接著來學習另一個基礎的分類和回歸方法,決策樹。

決策樹既可以輸出計算結果,還能很清楚的告訴我們為什么會得到這個結果。

如果對一棵決策樹的效果不夠滿意,還可以使用多棵決策樹來協同解決問題,這就是隨機森林,屬于集成學習的一種。

而隨機森林這樣的集成學習算法,融合了多個模型的優點,所以在遇到分類問題的場景時,決策樹和隨機森林常被當做機器學習的首選算法。

一、初識決策樹

舉個栗子,我們要判斷一個物體是否屬于鳥類,一般會看它是否會飛、是否有羽毛等條件,如果它既會飛又有羽毛,那么大概率就是鳥類了。

我整理了幾條樣本數據,如下表所示:

基于表格里的數據,我們可以根據每個條件的結果,畫出如下的決策樹:

如上圖所示,決策樹(Decision Tree)就是一種樹形結構的算法,每個節點對應了算法的一個特征(是否會飛等),節點上的每一個分支(會飛、不會飛)對應了特征的不同種類,最后綠色的葉子節點對應了最終決策結果(是否鳥類)

有了這個決策樹之后,再有新的數據進來,沿著決策樹自上而下的走一圈,就能得到決策結果,而且決策過程清晰明了。

二、信息熵

仔細觀察上圖的決策樹,我們可以發現,不同的決策條件會導致其得到的子節點數據是完全不同的,從而得到完全不同的決策樹結構,那么我們如何快速找到最優的決策條件,使決策樹的效率和準確率更高呢?

這里需要引入信息熵的概念了:信息熵(Entropy)是衡量一個節點內不確定性的度量。

怎么理解呢?我們對剛才的決策樹做一些改變,只保留兩層節點,去掉“是否有羽毛”條件,如下圖所示。那么最終的黃色葉子節點里,就會同時存在是鳥類和不是鳥類的樣本數據,這個節點的不確定性就增加了,也就是信息熵變高了。

我們肯定希望決策樹每次劃分的時候,最終的葉子節點信息熵更低,這樣每個葉子節點內的樣本純度也就越高,最終生成的決策樹的確定性更強,效率會更高。

在構建決策樹的時候,一般通過信息熵來篩選出更重要的特征,并把更重要的特征放到更靠前的節點上去。

三、如何生成決策樹?

生成決策樹包括特征選擇、決策樹生成、決策樹剪枝等三個步驟。

在特征選擇和決策樹生成階段,最重要的任務就是通過信息熵來篩選出更重要的特征,并把更重要的特征放到更靠前的節點上去。

決策樹會評估每一個特征劃分后系統的“信息熵指標”,“信息熵指標”最低的特征越靠近根節點,這樣一來,決策樹的復雜度和計算時間就會減少,模型就會更高效。

不同的決策樹算法,所謂的“信息熵指標”也不一樣,比如ID3算法使用的是信息增益,C4.5算法使用的是信息增益率,目前使用較多的CART算法使用的是Gini系數,這里不再贅述,感興趣的話可以自己查一下相關資料。

上圖的決策樹,根據“信息熵指標”優化后的結果如下:

由于決策樹很容易出現過擬合的現象,我們還需要對決策樹進行剪枝操作。

剪枝操作可以降低決策樹的復雜性,提升模型的泛化能力,基本原理就是判斷把某節點去掉之后,模型準確度是否大幅下降,如果沒有下降,就可以剪掉這個節點。

比如優化后的決策樹,把是否是動物節點去掉后,并不影響模型的準確度,那就可以對其做剪枝處理,從而得到新的決策樹。

四、應用場景

決策樹的可解釋性非常高,可以很容易的解釋清楚其計算邏輯,所以適合各種需要強解釋性的應用場景,比如咨詢、金融等領域。

  • 金融領域:決策樹可以用于信用評分、風險評估、欺詐檢測等金融領域的問題。
  • 醫療診斷:決策樹可以用于醫療診斷,如疾病診斷、藥物選擇等。
  • 市場營銷:決策樹可以用于市場營銷中的用戶分類、客戶細分等問題。
  • 生物醫學領域:決策樹可以用于基因表達數據分析、蛋白質結構預測等生物醫學領域的問題。
  • 電子商務:決策樹可以用于推薦系統、用戶行為分析等電子商務領域的問題。

五、優缺點

決策樹的優點:

  • 可解釋性強:決策樹的生成過程可以直觀地表示為一棵樹形結構,易于理解和解釋。每個節點代表一個特征,每個分支代表一個特征取值,葉子節點代表一個類別或一個決策結果。
  • 適用性廣泛:決策樹可以用于分類和回歸任務,可以處理離散型和連續型特征,也可以處理多分類和多輸出問題。
  • 數據預處理簡單:決策樹對于缺失值和異常值具有較好的容忍性,不需要對數據進行嚴格的預處理。
  • 特征選擇自動化:決策樹可以自動選擇最重要的特征進行分裂,能夠處理高維數據和特征選擇問題。
  • 處理非線性關系:決策樹可以處理非線性關系,不需要對數據進行線性化處理。

決策樹的缺點:

  • 容易過擬合:決策樹容易過度擬合訓練數據,特別是當樹的深度較大或訓練樣本較少時。過擬合會導致模型在新數據上的泛化能力較差。
  • 不穩定性:決策樹對于數據的微小變化非常敏感,即使數據發生輕微的變化,生成的決策樹可能完全不同。
  • 忽略特征間的相關性:決策樹在生成過程中只考慮了單個特征的重要性,忽略了特征之間的相關性。這可能導致決策樹在處理某些問題時效果不佳。
  • 難以處理連續型特征:決策樹對于連續型特征的處理相對困難,需要進行離散化或采用其他方法進行處理。
  • 生成過程不穩定:決策樹的生成過程是基于啟發式算法的,不同的啟發式算法可能生成不同的決策樹,導致結果的不穩定性。

六、隨機森林:三個臭皮匠,賽過諸葛亮

單棵決策樹容易出現過擬合的情況,并且結果也較不穩定,這時候我們可以使用多棵決策樹來共同解決問題,這就是就是隨機森林。

隨機森林(Random Forest)是一種集成學習方法,通過組合多個決策樹來進行分類或回歸任務

每棵決策樹都隨機抽取不同的樣本進行訓練,我們會得到三個不同的決策樹,再綜合考慮三棵樹的決策結果,就能得到最終的決策結果了。

由于是根據多個決策樹的結果共同決策,所以隨機森林具有“起點高、上限低”的特點。

與單棵決策樹相比,隨機森林具有以下優點:

  • 高準確性:隨機森林通過集成多個決策樹的預測結果,可以獲得更準確的分類或回歸結果。
  • 可處理大規模數據:隨機森林可以并行生成多棵決策樹,因此在處理大規模數據時具有較高的計算效率。
  • 不容易過擬合:隨機森林引入了隨機性,通過隨機選擇樣本和特征子集來生成決策樹,減少了過擬合的風險。

相應的,隨機森林也有以下缺點:

  • 計算復雜度高:隨機森林需要生成多棵決策樹,并且每棵決策樹都需要考慮隨機選擇的樣本和特征子集,因此計算復雜度較高。
  • 可解釋性相對較差:隨機森林生成的模型是一個集成模型,由多棵決策樹組成,因此模型的解釋性較差,不如單棵決策樹直觀。

七、總結

本文我們介紹了決策樹和隨機森林的原理、應用場景和優缺點,同時決策樹也有升級版本,比如XGBoost等,可以自己查一下。

下篇文章,我們來聊一聊支持向量機算法,敬請期待。

本文由 @AI小當家 原創發布于人人都是產品經理,未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!