機器學習(三)決策樹學習

2021-07-27 12:30:02 字數 2714 閱讀 1624

決策樹學習是一種逼近離散值目標函式的方法,在這種方法中學習到的函式被表示為一棵決策樹。

決策樹通過把例項從艮節點排列到某個葉子結點來分類例項,葉子結點即為例項所屬的分類。樹上的每乙個結點指定了對例項的某個屬性的測試,並且該結點的每乙個後繼分支對應於該屬性的乙個可能值。分類例項的方法是從這棵樹的根節點開始,測試這個結點的屬性,然後按照給定例項的屬性值對應的樹枝向下移動。然後這個過程在以新結點的根的子樹上重複。

決策樹對應表示式:

通過自頂向下構造決策樹來進行學習。構造過程是從「哪乙個屬性將在樹的根結點被測試?」這個問題開始的。為了回答這個問題,使用統計測試來確定每乙個例項屬性單獨分類訓練樣例的能力。分類能力最好的屬性被選作樹的根結點的測試。然後為根節點屬性的每個可能值產生乙個分支,並把訓練樣例排列到適當的分支之下。然後重複整個過程,用每個分支結點關聯的訓練樣例來選取在該點被測試的最佳屬性。這形成了對合格決策樹的貪婪搜尋(greedy search),也就是演算法從不回溯重新考慮原來的選。

專門用於學習布林函式的id3演算法概要

id3(examples,target_attribute,attributes)

examples即訓練樣例集。target_attribute是這棵樹要測試的目標屬性。attributes是除目標屬性外供學習到的決策樹測試的屬性列表。返回一棵能正確分類給定examples的決策樹。

•如果examples都為正,那麼返回label=+的單結點樹root

•如果examples都為反,那麼返回label=+的單結點樹root

•如果attributes為空,那麼返回單結點樹root,label=examples中最普遍的target_attribute的值

•否則開始

•a←attributes中分類examples能力最好的屬性

•root的決策屬性←a

•對於a的每個可能值vi

•在root下加乙個新的分支對應測試a=vi

•令examples vi為examples中滿足a屬性值為vi的子集

•如果examples vi為空

•在這個新分支下加乙個葉子結點,結點的label=examples中最普遍的target_attribute值

•否則在這個新分支下加乙個子樹id3(examples vi,target_attribute,attributes-)

•結束•返回root

熵(entropy):刻畫了任意樣例集的純度(purity)。

熵確定了要編碼集合s中任意成員(即以均勻的概率隨機抽出的乙個成員)的分類所需要的最小二進位制位數。

如果目標屬性具有c個不同的值,那麼s相對c個狀態(c-wise)的分類的熵定義為:

pi是s中屬於類別i的比例。

資訊增益(information gain):乙個屬性的資訊增益就是由於使用這個屬性分割樣例而導致的期望熵降低。

values(a)是屬性a所有可能值的集合,sv 是s中屬性a的值為v的子集。

例如,假定s包含14個樣例-[9+,5-]。在這14個樣例中,假定正例中的6個和反例中的2個有wind=weak,其他的有wind=strong。由於按照屬性wind分類14個樣例得到的資訊增益可以計算如下。

首先計算四個屬性的資訊增益:

gain(s,outlook)=0.246

gain(s,humidity)=0.151

gain(s,wind)=0.048

gain(s,temperature)=0.029

根據資訊增益標準,屬性outlook在訓練樣例上提供了對目標屬性playtennis的最佳**。

id3演算法中的假設空間包含所有的決策樹,它是關於現有屬性的有限離散值函式的乙個完整空間。

當變了決策樹空間時,id3僅維護單一的當前假設。

基本的id3演算法在搜尋中不進行回溯。

id3演算法在搜尋的每一步都使用當前的所有訓練樣例,以統計為基礎覺得怎樣簡化以前的假設。

關於c4.5決策樹 可以參考 

機器學習筆記 三 決策樹

學習機器學習演算法之決策樹,這個大俠的文章寫得不錯 總結一下 1.對於資訊熵的理解 選假設有乙個離散型隨機變數x有4中可能的結果 a 1 2,b 1 4,c 1 8,d 1 8,後面的是每種結果的發生概率。那麼如果順序的去猜測x,就會有以下事件可能發生 問到a,命中a,用一次,問a b,命中b,用兩...

機器學習之三 決策樹

決策樹通過 分而治之 的策略,採用遞迴的方式學習得到樹結構,目標為學習乙個泛化能力強的決策樹。有三種情形會導致遞迴返回 1.當前節點包含的樣本均屬於同一類別 2.當前節點屬性集為空或所有樣本在所有屬性上取值相同 3.當前節點樣本集為空 出現以上三種情況中的任意一種,該節點標記為葉節點,對1來說,該葉...

機器學習實戰 決策樹(三)

構造決策樹之後,將用於實際資料的分類。執行資料分類時需要使用決策樹以及用於構造決策樹的標籤向量。如下 該函式的inputtree是已經生成的決策樹,是字典集,featlabels是要測試的資料特徵的列表,testvec是與featlabels的特徵列表中對應的特徵值,注意位置需要對應。輸入形式如 c...