決策數演算法:
決策樹剪枝策略
決策樹:
樹的組成
根節點:第乙個選擇點
非葉子節點與分支:中間過程
葉子節點:最終的決策結果
如何切分特徵(選擇節點)
問題:根節點的選擇該用哪個特徵呢?接下來呢?如何切分呢?
目標:通過一種衡量標準,來計算通過不同特徵進行分支選擇後的分類 情況,找出來最好的那個當成根節點,以此類推。
從給定的訓練集構造出來一棵樹(從跟節點開始選擇特徵,如何進行特徵切分)資料的特徵相當於節點,決策樹中的節點相當於在資料上切了一刀,是不是節點或者特性越多越好呢?難點在於怎麼把決策樹構造出來?怎麼樣根據節點擊擇資料
根據構造出來的樹模型從上到下走一遍就好了
一旦構造好了決策數,那麼分類或者**任務就很簡單了,只需要走一遍就可以了,那麼難點就在於如何構造出來一棵樹,這就沒有那麼容易了,需要考慮的問題還有很多
資訊增益:使用熵值進行判斷,比較熵的變化,取熵變化也就是資訊增益較大的增益。資料越純,熵值越小,資訊增益越大。
資訊增益率:=資訊增益/自身的熵值。使用熵值進行判斷的同時,考慮自身的熵值,為了避免特徵稀疏且對最後的結果沒有什麼影響的特徵計算處出的資訊增益很大,但是不適合作為節點的特診。這一類特徵自身的熵值很大。
gart:使用gini係數(類似於熵的計算標準) =1-sum(pi^2) 資料越純,gini係數越接近於0,越小。
資料越純,熵值越小,資訊增益越大,gini係數越接近於0,越小。
注:資訊增益率——在資訊增益的基礎之上,考慮了自身的熵值 =資訊增益/自身的熵值
例如,如果存在唯一標識屬性id,則id3會選擇它作為**屬性,這樣雖然使得劃分充分純淨,但這種劃分對分類幾乎毫無用處。id3的後繼演算法c4.5使用增益率(gain ratio)的資訊增益擴充,試圖克服這個偏倚。
即:對於id這種特徵我們可以知道,其自身的熵值非常大,特徵稀疏算出來的增益比較大,但是這一類特徵對最後的結果影響很小,不適合作為根節點,因此引入公升級策略——資訊增益率
衡量標準-熵
**熵:**熵是表示隨機變數不確定性的度量
**id3 資訊增益:**表示特徵x使得類y的不確定性減少的程度。 (分類後的專一性,希望分類後的結果是同類在一起)
其中pi是s屬於類別i的比例,需要注意的是底數仍然為2,原因熵是以二進位制位的個數來度量編碼長度,同時注意,如果目標屬性具有c個可能值,那麼熵最大可能為log2(c)。
特徵值熵的計算:對於單個特徵的熵值計算,選擇大當家、二當家的準則,在全部樣本(剩下的樣本)中進行遍歷,選擇熵值較小的那個作為當前的節點特徵
根據單個特徵進行分類,對該特徵下每乙個分類下發生的全部試件的概率分別*對應概率的log,得到該特徵下每個分類的熵值
根據資料統計,計算處該特徵下,取到每個分類的概率值
將每個分類的熵*每個分類取到的概率值=該特徵值之下的熵值
為什麼要剪枝:決策樹過擬合風險很大,理論上可以完全分得開資料 (想象一下,如果樹足夠龐大,每個葉子節點不就乙個資料了嘛)
在決策樹學習中,為了盡可能正確分類訓練樣本,節點劃分過程不斷重複,有時會造成決策樹分支過多,這時就可能因訓練樣本學得「太好」了,以至於把訓練樣本自身的一些特點當作所有資料都具有的一般性質而導致過擬合。因此,可通過主動去掉一些分支來降低過擬合的風險。
預剪枝:邊建立決策樹邊進行剪枝的操作(更實用)
後剪枝:當建立完決策樹後來進行剪枝操作
決策樹剪枝的基本策略有「預剪枝」和「後剪枝」。預剪枝是指在決策樹生成的過程中,對每個節點在劃分前先進行估計,若當前節點的劃分不能帶來決策樹泛化效能的提公升,則停止劃分並將當前節點標記為葉節點;後剪枝則是先從訓練集生成一棵完整的決策樹,然後自底向上地對非葉節點進行考察,若將該節點對應的子樹替換為葉節點能帶來決策樹泛化效能提公升,則將該子樹替換為葉節點。
預剪枝使得決策樹的很多分支都沒有「展開」,這不僅降低了過擬合的風險,還顯著減少了決策樹的訓練時間開銷和測試時間開銷。但另一方面,有些分支的當前劃分雖不能提公升泛化效能,甚至可能導致泛化效能暫時下降,但在其基礎上進行的後續劃分卻有可能導致效能顯著提高;預剪枝基於「貪心」本質禁止了這些分支展開,給預剪枝決策樹帶來了欠擬合的風險。
後剪枝決策樹通常比預剪枝決策樹保留了更多的分支。一般情形下,後剪枝決策樹的欠擬合風險很小,泛化效能往往優於預剪枝決策樹。但後剪枝過程是在生成完全決策樹之後進行的,並且要自底向上地對樹中的所有非葉節點進行逐一考察,因此其訓練時間開銷比未剪枝決策樹和預剪枝決策樹都要大得多。
決策樹原理
目錄 決策樹基本知識 id3 與c4.5 cart 應用 1.我們遇到的選擇都是根據以往的選擇判斷,如果把判斷背後的邏輯整理成乙個結構圖,會是乙個樹狀圖,就是決策樹的本質.2.決策樹的階段 構造與剪枝 構造 選擇什麼屬性作為結點 1 根節點 樹的頂端 2 內部節點 中間節點 3 葉節點 決策節點 剪...
決策樹演算法原理簡介
1,決策樹概念簡介 不同的演算法模型適合於不同型別的資料。首先,在了解樹模型之前,自然想到樹模型和線性模型有什麼區別呢?其中最重要的是,樹形模型是乙個乙個特徵進行處理,之前線性模型是所有特徵給予權重相加得到乙個新的值。決策樹與邏輯回歸的分類區別也在於此,邏輯回歸是將所有特徵變換為概率後,通過大於某一...
SSAS決策樹演算法原理
microsoft 決策樹演算法是由 microsoft sql server analysis services 提供的分類和回歸演算法,用於對離散和連續屬性進行 性建模。對於離散屬性,該演算法根據資料集中輸入列之間的關係進行 對於連續屬性,該演算法使用線性回歸確定決策樹的拆分位置。如果將多個列設...