機器學習01(決策樹)

2021-07-04 07:27:07 字數 2514 閱讀 8465

決策樹

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

2.決策樹的表示

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

3.id3演算法

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

4.確定能力最好的屬性(資訊增益,熵)

熵:刻畫了任意樣例集的純度。

設某個屬性s具有c個不同的值,則s相對c個狀態的分類的熵定義為:

其中:pi是所佔的比例(概率)

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

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

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

values(wind)=weak,strong

s=[9+,5-]

sweak←[6+,2-]

sstrong←[3+,3-] 

=entropy(s)-(8/14)entropy(sweak)-(6/14)entropy(sstrong)

=0.940-(8/14)0.811-(6/14)1.00

=0.048

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

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

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

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

5.剪枝

6.c4.5

c4.5克服了id3的2個缺點:

1.用資訊增益選擇屬性時偏向於選擇分枝比較多的屬性值,即取值多的屬性

2.不能處理連貫屬性

對於離散屬性v,id3中計算的是「資訊增益」,c4.5中則計算「資訊增益率」,見資料探勘概念與技術p220.

其他的決策樹如cart等都是在此基礎上的演變,此處不一一介紹了。

機器學習 決策樹

一 基本概念 決策樹 decision tree 是一種基本的分類與回歸方法。決策樹模型呈樹形結構,在分類問題中,表示屬於特徵對例項進行分類的過程,它可以認為是if then規則的集合,也可以認為是電議在特徵空間與類空空上的條件概率分布,其主要優點是模型具有可讀性,分類速度快。決策樹的學習通常包括3...

機器學習 決策樹

我覺得決策樹是機器學習所有演算法中最可愛的了 沒有那麼多複雜的數學公式哈哈 下圖是一棵決策樹,用來判斷西瓜是好瓜還是壞瓜 決策過程中提出的每個判定問題都是都對某個屬性的測試,每個測試結果要麼推導出最終結論,要麼匯出進一步判斷的問題,在上次決策結果限定的範圍內做進一步判斷。從上圖可以看出,葉節點對應決...

機器學習 決策樹

一 演算法簡介 決策樹一般都是自上而下來生成的,每個決策後事件 即自然狀態 都可能引出兩個或多個事件,導致結果的不同,把這種結構分支畫成形狀很像一棵樹的枝幹,故稱為決策樹。決策樹能夠讀取資料集合,並且決策樹很多任務都是為了資料中所蘊含的知識資訊,因此決策樹可以使用不熟悉的資料集合,並從中提取一系列規...