決策樹學習基決策樹學習基本算法


決策樹學習基本算法

輸入:訓練集;

     屬性集.

過程:函數

1: 生成結點node;

2: if 中樣本全屬於同一類別 then

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

4: end if

5: if 中樣本在上取值相同 then

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

7: end if

8: 從中選擇最優化分屬性

9: for 的每一個值 do

10: 為node生成一個分支; 令表示中在上取值為的樣本子集;

11:     if 為空 then

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

13:     else

14:        以為分支結點

15:      end if

16: end for

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

Table3 天氣數據集

No.

outlook

temperature

humidity

windy

play

1

sunny

85.0

85.0

FALSE

no

2

sunny

80.0

90.0

TRUE

no

3

overcast

83.0

86.0

FALSE

yes

4

rainy

70.0

96.0

FALSE

yes

5

rainy

68.0

80.0

FALSE

yes

6

rainy

65.0

70.0

TRUE

no

7

overcast

64.0

65.0

TRUE

yes

8

sunny

72.0

95.0

FALSE

no

9

sunny

69.0

70.0

FALSE

yes

10

rainy

75.0

80.0

FALSE

yes

11

sunny

75.0

70.0

TRUE

yes

12

overcast

72.0

90.0

TRUE

yes

13

overcast

81.0

75.0

FALSE

yes

14

rainy

71.0

91.0

TRUE

no

 

信息增益

假定當前樣本集合中第類樣本所占的比例為,則的信息熵定義為:

    假定離散屬性有個可能的取值,若使用來對樣本集合進行划分,則會產生個分支結點,其中第個分支結點包含了中所有在屬性上取值為的樣本,記為. 計算出的信息熵,再考慮到不同的分支結點所包含的樣本數不同,給分支結點賦予權重,即樣本數越多的分支結點的影響越大,於是可計算出用屬性對樣本集進行划分所獲得的"信息增益"

ID3算法選擇屬性.

以天氣數據集為例,在決策樹學習開始時,根結點包含中的所有樣例,其中正例占,反例占.於是可計算出根結點的信息熵為

我們要計算出當前屬性集合{outlook, temperature, humidity, windy}中每個屬性的信息增益。以屬性"outlook"為例,它有3個可能的取值:{sunny, overcast, rainy}.若使用該屬性對D進行划分,則可得到3個子集,分別記為:(outlook = sunny),(outlook = overcast),(outlook = rainy).

子集包含編號為{1,2,8,9,11}的5個樣例,其中正例占,反例占包含編號為{3,7,12,13}的4個樣例,其中正、反例分別占,反例占包含編號為{4,5,6,10,14}的5個樣例,其中正、反例分別占.根據公式計算出用"outlook"划分之后所獲得的3個分支結點的信息熵為

可計算出屬性"outlook"的信息增益為

類似的,我們可計算出其他屬性的信息增益。

對連續屬性"temperature",C4.5采用二分法對連續屬性進行處理。

首先找出訓練樣本在"temperature"屬性上的最大和最小值,在最大和最小值限定的取值區間上設置多個等分斷點;分別計算以這些斷點為分裂點的信息增益值,並比較;具有最大信息增益的斷點及最佳分裂點,自該分裂點把整個取值區間划分為兩部分,相應的依據記錄在該屬性上的取值,也將該記錄集划分為兩部分。

以64.5為例,屬性"temperature"可看做有兩個取值

 

增益率

信息增益准則對可取值數目較多的屬性有所偏好,為減少這種偏好可能帶來的不利影響,C4.5算法使用"增益率"來選擇最優划分屬性. 采用相同的符號表示,增益率定義為:

,

其中

稱為屬性的"固有值"。屬性的可能取值數目越多(即越大),則值通常會越大。

對天氣數據集,以屬性"outlook"為例,

圖 在天氣數據集上基於信息增益率生成的決策樹

 

基尼指數

CART決策樹使用"基尼指數"來選擇划分屬性。采用相同的符號,數據集D的純度可用基尼值來度量:

 

反映了從數據集中隨機抽取兩個樣本,其類別標記不一致的概率。因此,越小,則數據集D的純度越高。

屬性a的基尼指數定義為

最優划分屬性

剪枝處理

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

預剪枝使得決策樹的很多分支都沒有"展開",這不僅降低了過擬合的風險,還顯著減少了決策樹的訓練時間開銷和測試時間開銷。但另一方面,有些分支的當前划分雖不能提升泛化性能、甚至可能導致泛化性能暫時下降,但在其基礎上進行的后續划分卻有可能導致性能顯著提高;預剪枝基於"貪心"本質禁止這些分支展開,給預剪枝決策樹帶來了欠擬合的風險。

一般情形下,后剪枝決策樹的欠擬合風險很小,泛化性能往往優於預剪枝決策樹。但后剪枝過程是在生成完全決策樹之后進行的,並且要自底向上地對樹中的所有非葉結點進行逐一考察,因此其訓練時間開銷比未剪枝決策樹和預剪枝決策樹都要大得多。

 

缺失值處理

  1. 如何在屬性缺失的情況下進行划分屬性選擇?

    將信息增益的計算式推廣為

其中表示D中在屬性上沒有缺失值的樣本子集,表示中在屬性a上取值為的樣本子集,對屬性a,表示無缺失值樣本所占的比例,表示無缺失值樣本中第類所占的比例,則表示無缺失值樣本中在屬性a上取值為的樣本所占的比例。

 

  1. 給定划分屬性,若樣本在該屬性上的值缺失,如何對樣本進行划分?
  • 若樣本x在划分屬性a上的取值已知,則將x划入與其取值對應的子結點,且樣本權值在子結點中保持為.
  • 若樣本在划分屬性上的取值未知,則將x同時划入所有子結點,且樣本權值在與屬性值對應的子結點中調整為;

在決策樹學習開始階段,根結點中各樣本的權重初始化為1.

隨機森林

簡單地說,隨機森林就是用隨機的方式建立一個森林,森林里面有很多的決策樹組成,隨機森林的每一棵決策樹之間是沒有關聯的。在得到森林之后,當有一個新的輸入樣本進入的時候,就讓森林中的每一棵決策樹分別進行一下判斷,看看這個樣本應該屬於哪一類(對於分類算法),然后看看哪一類被選擇最多,就預測這個樣本為那一類。

隨機森林主要包括4個部分:隨機選擇樣本;隨機選擇特征;構建決策樹;隨機森林投票分類。

  1. 隨機選擇樣本

給定一個訓練樣本集,數量為N,使用有放回采樣到N個樣本,構成一個新的訓練集。注意這里是有放回的采樣,所以會采樣到重復的樣本。詳細來說,就是采樣N次,每次采樣一個,放回,繼續采樣。即得到了N個樣本。然后我們把這個樣本集作為訓練集,進入下面的一步。

  1. 隨機選擇特征

從總量為M的特征向量中,隨機選擇m個特征,其中m可以等於sqrt(M),然后計算m個特征的增益,選擇最優特征(屬性)。注意,這里的隨機選擇特征是無放回的選擇!

  1. 構建決策樹

有了上面隨機產生的樣本集,我們就可以使用一般決策樹的構建方法,得到一棵分類(或者預測)的決策樹。需要注意的是,在計算節點最優分類特征的時候,我們要使用上面的隨機選擇特征方法。而選擇特征的標准可以是我們常見的Information Gain(ID3) 或者 Gain Ratio(C4.5)。

4. 隨機森林投票分類

  通過上面的三步走,我們可以得到一棵決策樹,我們可以重復這樣的過程T次,就得到了T棵決策樹。然后來了一個測試樣本,我們就可以用每一棵決策樹都對它分類一遍,得到了T個分類結果。這時,我們可以使用簡單的投票機制,或者該測試樣本的最終分類結果。

按照1生成t個決策樹之后,對於每個新的測試樣例,綜合多個決策樹的分類結果來作為隨機森林的分類結果。

  (1)目標特征為數字類型:取t個決策樹的平均值作為分類結果。

  (2)目標特征為類別類型:少數服從多數,取單棵樹分類結果最多的那個類別作為整個隨機森林的分類結果。

 

5. 優缺點分析

  優點:

它能夠處理很高維度(feature很多)的數據,並且不用做特征選擇;

由於隨機選擇樣本導致的每次學習決策樹使用不同訓練集,所以可以一定程度上避免過擬合;

  缺點:

隨機森林已經被證明在某些噪音較大的分類或回歸問題上會過擬合;

對於有不同級別的屬性的數據,級別划分較多的屬性會對隨機森林產生更大的影響,所以隨機森林在這種數據上產出的屬性權值是不可信的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM