决策树(西瓜书学习)
算法是死的,思想才是活的!
1. 基本流程
決策樹(decision tree):一般的,一棵決策樹包含一個根結點、若干個內部結點和若干個葉結點;葉結點對應于決策結果,其他每個結點則對應于一個屬性測試;每個結點包含的樣本集合根據根據屬性測試的結果劃分到子結點中;根結點包含樣本全集。
從根結點到每個葉結點的路徑對應了一個判定測試序列。決策樹的目的是為了產生一棵泛化能力強,即處理未見示例能力強的決策樹,基本流程遵循“分而治之”。
決策樹的生成是一個遞歸的過程,有三種情況會導致遞歸返回:
在情況2下,把當前結點標記為葉結點,并將其類別設定為該結點所含樣本最多的類別;
在情況3下,把當前結點標記為葉結點,將其類別設定為其父結點所包含樣本最多的類別。
2. 劃分選擇
2.1 信息增益
信息熵:度量樣本集合純度的最常用指標。
(大白話理解:樣本集合的分類分布越懸殊,集合的純度越高。)
(eg:樣本集合D中屬于好瓜類別的有99個,屬于壞瓜類別的有1個,說明集合D的純度很高)
信息增益:原樣本集合的信息熵減去用屬性 a 劃分后每個子集合信息熵的加權和。
信息增益越大,意味著用屬性 a 進行劃分獲得的純度提升越大。
(大白話理解:屬性 a 越是能把不同類別的樣本劃分開越好,劃分的越開就是純度越大)
(eg:集合D用屬性a(顏色)劃分為集合G(綠色)、B(藍色),其中G中99個好瓜,1個壞瓜,B中99個壞瓜,1個好瓜。說明用a(顏色)這個屬性劃分集合所獲得的信息增益很大)
【著名的ID3決策樹學習算法就是以信息增益為準則來選擇劃分屬性的】
信息增益的缺點:
若編號也作為劃分屬性,可知其信息增益最大,因為劃分后的每個分支結點僅包含一個樣本,純度最大,顯然這樣的決策樹不具有泛化能力。由此可知,信息增益對可取值多的屬性有所偏好,提出了增益率。
2.2 增益率
增益率:信息增益除以屬性 a 的固有值。
屬性 a 的可能取值數目越多,“固有值”通常會越大。故,增益率準則對可能取值數目較少的屬性有所偏好。
【著名的C4.5決策算法使用了一個啟發式:先從侯選屬性中找出信息增益高于平均水平的屬性,再從中選擇增益率最高的】
2.3 基尼指數
基尼指數:可以度量數據集的純度。
屬性 a 的基尼指數定義:
【著名的CART決策樹 就是選擇使得劃分后基尼指數最小的屬性作為最優劃分屬性】
3. 剪枝處理
決策樹中的過擬合: 為了盡可能正確分類訓練樣本,結點劃分過程將不斷重復,有時會造成決策樹分支過多,這時就可能因為訓練樣本學的“太好”,以至于把一些訓練樣本自身的特點當作所有數據都具有的一般性質而導致過擬合。
剪枝處理: 剪枝是決策樹對付“過擬合”的手段
剪枝手段:
1)預剪枝(prepruning)
定義:在決策樹生成過程中,對每個結點在劃分前進行估計,若當前結點的劃分不能帶來決策樹泛化性能的提升,則停止劃分并將當前節點標記為葉結點;
評價:預剪枝使得決策樹很多分支都沒有“展開”,降低了過擬合風險,但預剪枝這種基于”貪心“本質禁止分支展開卻帶來了欠擬合的風險。
2)后剪枝(post-pruning)
定義:決策樹生成后,自底向上對非葉結點進行考察,若將該葉結點對應的子樹替換為葉結點能帶來決策樹泛化性能的提升,則將該子樹替換為葉結點。
評價:后剪枝通常比預剪枝保留了更多的分支,一般情況下,后剪枝決策樹的欠擬合風險很小,泛化性能往往優于預剪枝決策樹,但后剪枝時間開銷要大很多。
泛化性能的判斷: 用性能評估方法,比如留出法。
總結
以上是生活随笔為你收集整理的决策树(西瓜书学习)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工业大数据全景解读和应用案例
- 下一篇: Android控件默认风格解析之Seek