此筆記根據《machine learning in action》和周志華教授的《機器學習》所作。
缺點:可能會產生過度匹配問題。
適用資料型別:數值型和標稱型
《machine learning in action》:
if so return 類標籤;
else
尋找劃分資料集的最好特徵
劃分資料集
建立分支節點
for每個劃分的子集
呼叫函式createbranch並增加返回結果到分支節點中
return 分支節點
上面的偽**createbranch是乙個遞迴函式,在倒數第二行呼叫了它自己。
《機器學習》:
收集資料:可以使用任何方法。
準備資料:樹構造演算法只適用於標稱型資料(標稱型目標變數的結果只在有限目標集中取值,如真與假[標稱型目標變數主要用於分類]),因此數值型資料必須離散化。
分析資料:可以使用任何方法,構造書完成之後,我們應該檢查圖形是否符合預期。
訓練演算法:構造樹的資料結構。
測試演算法:使用經驗樹計算錯誤率。
決策樹的變數可以有兩種:
數字型(numeric):變數型別是整數或浮點數,如「年收入」。用「>=」,「>」,「
名稱型(nominal):類似程式語言中的列舉型別,變數只能重有限的選項中選取,比如「婚姻情況」,只能是「單身」,「已婚」或「離婚」。使用「=」來分割。
一些決策樹演算法採用二分法劃分資料,本文並不採用這種方法,而採用id3演算法。
參考prml:
熵的含義:
考慮乙個集合,包含n個完全相同的物體,這些物體要被分到m個箱子裡,使得第i個箱子中有ni
個物體。考慮把物體分配到箱子中的不同方案的數量,有n種方式選擇第乙個物體,有(n-1)種方式選擇第二個物體,以此類推。因此總共有n!種方式把n個物體分配到箱子中(也可以如此考慮:將n個物體先進行全排列,然後選前n1
個放入第1個箱子,選前n2
個放入第2個箱子,依次類推,則放入箱子的方案有n!種)。然而,我們並不想區分每個箱子內部物體的排列。所以上述的方案數量需要除以每個箱子內部排列的數量,即在第i個箱子中,有ni
! 種方案對物體進行全排列,因此,把n個箱子分配到箱子中的總方案數量為:
這被稱為乘數。
熵被定義為通過適當的引數放縮後的對數乘數,即
在下面的推導中,將會用到stirling公式的估計:
熵的推導:
決策樹演算法中比較有代表性的是id3[quinlan,1979,1986],c4.5[quinlan,1993]和cart[breiman et al.,1984]
維基百科解釋:
id3是以「資訊增益」為準則來選擇劃分屬性的。
c4.5演算法主要以「資訊率」來選擇最優劃分屬性。
cart決策樹是以「基尼指數」為準則來選擇劃分屬性。此演算法不僅可用於分類還可以用於回歸。
決策樹原理
目錄 決策樹基本知識 id3 與c4.5 cart 應用 1.我們遇到的選擇都是根據以往的選擇判斷,如果把判斷背後的邏輯整理成乙個結構圖,會是乙個樹狀圖,就是決策樹的本質.2.決策樹的階段 構造與剪枝 構造 選擇什麼屬性作為結點 1 根節點 樹的頂端 2 內部節點 中間節點 3 葉節點 決策節點 剪...
決策樹和CART決策樹
首先簡單介紹下決策樹 說到決策樹肯定離不開資訊熵 什麼是資訊熵 不要被這名字唬住,其實很簡單 乙個不太可能的時間居然發生了,要比乙個非常可能的時間發生提供更多的資訊。訊息說 今天早上太陽公升起 資訊量是很少的,以至於沒有必要傳送。但另一條訊息說 今天早上日食 資訊量就很豐富。概率越大資訊量就越少,與...
決策樹(二)決策樹回歸
回歸 決策樹也可以用於執行回歸任務。我們首先用sk learn的decisiontreeregressor類構造一顆回歸決策樹,並在乙個帶雜訊的二次方資料集上進行訓練,指定max depth 2 import numpy as np quadratic training set noise np.r...