決策樹演算法是機器學習中最經典的演算法之一。大家可能聽過一些高深的演算法,例如在競賽中經常使用的xgboost、各種整合演算法等,他們都是基於樹模型來建立的,所以掌握那些模型,首先我們需要掌握決策樹。
樹:有乙個根節點,由根結點開始,不斷的擴充套件,最終到達葉子結點,葉子結點就是最終的點,後面就無法擴充套件了。(相關資料結構可以自行補齊)
決策樹的原理和搜尋二叉樹的原理差不多,從根結點開始,每次經過乙個結點,都需要判斷走左邊還是右邊,最終目標結點,那麼達到目標結點的過程就是決策的過程。
根節點:資料的聚集地,第一次劃分資料集的地方
非葉子節點與分支:代表中間過程的每個節點
葉子節點:資料最終的決策結果。
決策樹的優點:簡單,視覺化容易,易於理解。多個樹模型可以bagging,boosting,stacking來提高最終的模型效果。
缺點:容易出現過擬合現象,所以需要有剪枝策略來提高模型的泛化能力。
首先,我們需要知道怎麼衡量乙個特徵拆分後的好壞,以及使用什麼條件進行拆分(可能是列舉值,也可能是連續值)。如果是連續值,那麼需要做迭代優化的過程,來選擇最合適的閾值,使得最終拆分後的效果最好。
熵:指物體內部的混亂程度。根據熵的定義,熵值越高,混亂程度越高。
那麼如何衡量拆分的好壞呢?
衡量的標準有:資訊增益,資訊增益率,基尼係數等。
這三種從不同的方面衡量了資料在劃分前後的變換,找到最好的效果,也就是變化最大的方向,那麼就選擇這個特徵作為我們的決策樹的乙個節點。
有id3演算法、c4.5演算法等。
id3:在構建決策樹的過程中,使用資訊增益來判斷這個特徵拆分後,通過熵的變化(資訊增益)來判斷效果,按照這個方式知道構建一棵決策樹。
c4.5:和id3類似,只是在構建決策樹的時候,使用資訊增益率來判斷特徵的好壞, 資訊增益率 = 資訊增益/自身熵值
當樣本資料很大的時候,如果我們不採取措施,那麼這棵樹就會特別的龐大,在我們的訓練集上,模型的效果會展現的很好,但是一旦到了測試集,效果就差了,這就是過擬合現象。
決策樹很容易出現過擬合現象,所以我們需要採取措施防止過擬合現象的發生。
在決策樹中,我們稱這種方法為剪枝。
1)預剪枝:在構造決策樹的同時進行剪枝,目的是限制決策樹的複雜程度。常用的停止條件有樹的層數、葉子結點的個數、資訊增益閾值等指標,這些都是決策樹演算法的輸入引數,當決策樹的構建達到停止條件後就會自動停止。
2)後剪枝:決策樹構建完成之後,通過一定的標準對其中的節點進行判斷,可以自己定義標準。
後剪枝比較複雜,我們一般使用預剪枝。
機器學習基礎學習 決策樹
決策樹是一種基本的分類與回歸方法,它是基於樹的結構進行決策的。決策樹分為分類樹和回歸樹兩種,分類樹對離散變數做決策樹,回歸樹對連續變數做決策樹。決策樹分類器就像判斷模組和終止塊組成的流程圖,終止塊表示分類結果 也就是樹的葉子 判斷模組表示對乙個特徵取值的判斷 該特徵有幾個值,判斷模組就有幾個分支 一...
機器學習基礎學習 決策樹
決策樹是一種基本的分類與回歸方法,它是基於樹的結構進行決策的。決策樹分為分類樹和回歸樹兩種,分類樹對離散變數做決策樹,回歸樹對連續變數做決策樹。決策樹分類器就像判斷模組和終止塊組成的流程圖,終止塊表示分類結果 也就是樹的葉子 判斷模組表示對乙個特徵取值的判斷 該特徵有幾個值,判斷模組就有幾個分支 一...
機器學習基礎學習 決策樹
決策樹是一種基本的分類與回歸方法,它是基於樹的結構進行決策的。決策樹分為分類樹和回歸樹兩種,分類樹對離散變數做決策樹,回歸樹對連續變數做決策樹。決策樹分類器就像判斷模組和終止塊組成的流程圖,終止塊表示分類結果 也就是樹的葉子 判斷模組表示對乙個特徵取值的判斷 該特徵有幾個值,判斷模組就有幾個分支 一...