詳解決策樹

2021-09-12 19:59:59 字數 1719 閱讀 6595

本科人工智慧和研究生的高階人工智慧課中都學習到了決策樹,現在再來根據西瓜書中的內容詳細的總結一下。

決策樹學習的目的是為了產生一顆泛化能力強,即處理未見示例能力強的決策樹,其基本流程遵循簡單且直觀的「分而治之」策略:

輸入:訓練集d=;

屬性集a=.

過程:函式treegenerate(d,a)

1:生成結點node;

2:ifd中樣本全屬於同一類別cthen

3:    將node標記為c類葉結點;return

4:end if

5:ifa=ord中樣本在a上取值相同then

6:    將node標記為葉結點,其類別標記為d中樣本數最多的類;return

7:endif

8:從a中選擇最優劃分屬性

9:fordo

10:     為node生成乙個分支;令的樣本子集;

11:ifthen

12:       將分支結點標記為葉結點,其類別標記為d中樣本最多的類;return

13:else

14:        以treegenerate(dv,a\" class="mathcode" src=""/>})為分支結點

15:end if

16:end for

輸出:以node為根結點的一棵決策樹

由此可以看出,決策樹的生成是乙個遞迴的過程。在決策樹基本演算法中,有三種情景會導致遞迴返回:

(1)當前結點包含的樣本全屬於同一類別,無需劃分;

(2)當前屬性集為空,或是所有樣本在所有屬性上取值相同,無法劃分

(3)當前結點包含的樣本集合為空,不能劃分

決策樹學習的關鍵是如何選擇最優劃分屬性。一般而言,隨著劃分過程不斷進行,我們希望決策樹的分支結點所包含的樣本盡可能屬於同一類別,即結點的「純度」越來越高。

資訊增益(id3)

增益率(c4.5)

基尼指數(cart)

剪枝是決策樹學習演算法對付「過擬合」的主要手段。在決策樹學習中,為了盡可能正確分類訓練樣本,結點劃分過程將不斷重複,有時會造成決策樹分支過多,這時就可能因訓練樣本學得「太好」了,以致於把訓練集自身得一些特點當作所有資料都具有的一般性質而導致過擬合。因此,課通過主動去掉一些分支來降低過擬合的風險。

決策樹剪枝的基本策略有「預剪枝」和「後剪枝」。預剪枝是指在決策樹生成過程中,對每個結點在劃分前先進行估計,若當前結點的劃分不能帶來決策樹泛化效能提公升,則停止劃分並將當前結點標記為葉結點;後剪枝則是先從訓練集生成一顆完整的決策樹,然後自底向上地對非葉結點進行考察,若將該結點對應的子樹替換為葉結點能帶來決策樹效能提公升,則將該子樹替換為葉結點。

決策樹詳解

一 原理 決策樹是一種非引數的監督學習方法,它主要用於分類和回歸。決策樹的目的是構造一種模型,使之能夠從樣本資料的特徵屬性中,通過學習簡單的決策規則 if then規則,從而 目標變數的值。圖1 決策樹 例如,在某醫院內,對因心臟病發作而入院 的患者,在住院的前24小時內,觀測記錄下來他們的19個特...

決策樹詳解(三)

訓練決策樹有三個關鍵問題 為了避免這種情況的出現,我們設定先驗概率 例如根據今天的天氣,來 明天的天氣 異常出現的情況,我們人為進行增加,這樣決策樹就會被適當的增加。設qj為設定的第j個先驗概率,nj為該分類的樣本數,則考慮了樣本率並進行歸一化處理的先驗概率qj為 把先驗概率帶入到 可以得到 下面說...

決策樹原理詳解

決策樹是機器學習中一種基本的分類和回歸演算法,是依託於策略抉擇而建立起來的樹。其主要優點是模型具有可讀性,分類速度快,易於理解。決策樹的思想主要 於quinlan在1986年提出的id3演算法和1993年提出的c4.5演算法,以及有breiman等人在1984年提出的cart演算法。1.什麼是決策樹...