如何構建決策樹?
決策樹是一種類似流程圖的樹形機制,其中每個內部節點表示對屬性的測試,每個分支定義測試的結果,葉節點描述類或類分佈。樹中最大的節點是根節點。
構建決策樹的問題可以遞迴地定義。首先,選擇一個屬性放在根節點,併為每個可能的值建立一個分支。這將示例集劃分為子集,每個子集對應於屬性的一個值。該過程可以遞迴地對每個分支重複,只使用到達該分支的例項。如果節點中的一些例項具有相似的分類,則停止建立該樹的元素。
我們將使用的純度度量稱為資訊,並以位元為單位進行測量。與樹的每個節點相關聯,它表示需要指定新例項是否應分類為“是”或“否”的預期資訊量,前提是例項到達該節點。
剪枝是減小決策樹大小的過程。它用於透過描述樹的大小或去除提供少量功效的樹區域來降低過擬合的風險。剪枝透過修剪由於噪聲或異常值而遵循訓練資料中異常的分支來實現,並以提高樹的泛化有效性的方式提供初始樹。
幾種方法經常使用統計度量來去除最不可靠的分支,這通常會導致更快的分類和提高樹準確分類獨立測試資料的能力。
學習決策樹的演算法
演算法 - 從給定的訓練資訊中建立一個決策樹。
輸入 - 由離散值屬性描述的訓練樣本;屬性集,屬性列表。
輸出 - 決策樹。
方法
建立一個節點N;
如果樣本都屬於同一個類C,則
返回N作為標記為類C的葉節點
如果屬性列表為空,則
返回N作為標記為樣本中最頻繁類的葉節點。// 多數投票
選擇測試屬性,即屬性列表中資訊增益最大的屬性。
用測試屬性標記節點N。
對於測試屬性的每個已知值ai //劃分樣本。
為條件測試屬性= ai 從節點N生長一個分支。
令si 為樣本中測試屬性= ai 的樣本集。
如果si 為空,則
它可以連線到標記為樣本中最常見類的葉節點。
否則附加由生成決策樹(si, 屬性列表 - 測試屬性)返回的節點
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP