機器學習(三) 決策樹(構建方法與分析泛化)

2021-08-25 11:02:25 字數 2200 閱讀 4307

決策樹學習是應用最廣泛的歸納推理演算法之一,學習一種逼近離散值目標函式的方法;樹上每個節點指定了對例項的某個屬性的測試,該節點的每乙個後繼分支對應於該屬性的乙個可能值;分類能力越強,越靠近根節點;任何屬性在樹的任意路徑上最多僅出現一次。

優點:

1)對雜訊有很好的健壯性且能夠學習析取表示式;

2)可以表示為if-then的規則,邏輯性直觀,可讀性高,具有清晰的可解釋性;

3)每一步都適用當前所有樣例,大大降低了對個別樣例錯誤的敏感性;

4)能處理不均一的資料,無需對資料進行標準量化,能夠對缺少屬性值的樣例進行分類;

5)搜尋假設完整空間,避免了搜尋不完整空間的風險;

缺點:

只維護單一的當前分支假設;

搜尋過程無回溯,屬於爬山搜尋,易得到區域性最優而非全域性最優

容易過擬合,需要在訓練中設定限定條件或者訓練後對樹進行修剪

歸納偏置:優先選擇最短的樹(優選偏置)

核心問題:選取在每個節點要測試的屬性

適用範圍:

例項由「屬性-值」對表示;2)目標函式具有離散的輸出值;3)可能需要析取描述;4訓練資料報含有錯誤;5)訓練資料可以包含缺少屬性值的例項

一、id3演算法:根據資訊增益來衡量給定的屬性區分訓練樣例的能力

演算法步驟:

1)初始化屬性集合和資料集合

2)計算資料集合和每乙個候選屬性資訊熵,選擇資訊增益最大的屬性作為當前決策節點

3)更新資料集合和屬性集合(刪除掉上一步中使用的根節點屬性,將上一步選擇的最佳節點作為根節點)

4)依次對當前根節點下的每種可能屬性重複第二步

5)若子集只包含單一屬性,則為葉子節點,根據其屬性值標記。

6)完成所有屬性集合的劃分(所有屬性都被包括;每個葉子節點屬性值相同(熵為0))

特點:對可取值數目較多的屬性有所偏好

二、c4.5演算法:根據增益率衡量分類能力

增益率:增益率用資訊增益gain(s,a)和**資訊度量splitinformation(s,a)來共同定義:

**資訊度量被定義為(**資訊用來衡量屬性**資料的廣度和均勻):

特點:對可取值數目較少的屬性有所偏好

三、基尼係數(cart決策樹使用)

基尼係數衡量資料集純度,值越小,資料純度越高

四、決策樹評價

假定樣本的總類別為k個,對於決策樹的某葉結點,假定該葉結點含有樣本數目為n,其中第k類的樣本數目為nk,k=1,2,...,k。

(1)若該結點中某類樣本nj=n,而n1,...nj−1,nj+1,...nk=0,則該結點的熵hp=0,最小;

(2)若該結點中各類樣本數目n1=n2=...=nk=n/k,則該結點熵hu=lnk,最大。

對所有葉結點的熵求和,該值越**明對樣本的分類越精確。各個葉結點包含的樣本數目不同,可以使用樣本數加權求熵和。因此,評價函式:

該評價函式值越小越好,所以,可以稱為「損失函式」。

五、處理(降低複雜度,增加泛化能力)

1、過擬合問題

1)預剪枝(訓練過程中設定)提早停止樹增長

(1)每乙個結點所包含的最小樣本數,如10,則該結點總樣本數小於10時,則不再分;

(2)指定樹的高度或者深度,例如樹的最大深度為4;

(3)指定結點的熵小於某個值,不再劃分。

2)後剪枝(訓練完成後,對已知決策樹)

錯誤率降低修剪(減節點,替換成乙個葉子節點,用最大分類屬性替代);

規則後修剪(減規則前件,以最大提高決策精度)

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

決策樹學習是一種逼近離散值目標函式的方法,在這種方法中學習到的函式被表示為一棵決策樹。決策樹通過把例項從艮節點排列到某個葉子結點來分類例項,葉子結點即為例項所屬的分類。樹上的每乙個結點指定了對例項的某個屬性的測試,並且該結點的每乙個後繼分支對應於該屬性的乙個可能值。分類例項的方法是從這棵樹的根節點開...

機器學習筆記 三 決策樹

學習機器學習演算法之決策樹,這個大俠的文章寫得不錯 總結一下 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來說,該葉...