決策樹(分類樹)是一種樹形結構,其中每個內部節點表示乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉節點代表一種類別。決策樹只需要構建一次,每一次**分類的最大計算次數不超過決策樹的深度。
決策樹學習演算法
id3演算法
通過自頂向下構造決策樹來進行學習,構造過程是從」選取分類能力最好的屬性作為根節點被測試」開始,然後為根節點屬性的每個可能值產生乙個分支。選擇合適的分割點,將分類的各個子集都很」純淨」。
id3演算法是一種貪心演算法,在每個節點擊取還尚未被用來劃分的具有最高資訊增益的屬性作為劃分標準。
量化純度
如果屬性被分為n類,每一類的比例p(i)=第i類的數目/總數目。
(1)gini不純度
(2)熵、資訊增益和資訊增益率
設d是樣本訓練集,d的熵為
假設按照屬性a劃分d中的樣本,屬性a將d劃分為v個不同的類。劃分之後,訓練集的熵為:
資訊增益為:
資訊增益的缺點是偏向具有較多屬性值的屬性,某個屬性所取的不同值的個數越多,越有可能拿它作為**屬性。
c4.5演算法採用資訊增益率。
選擇具有最大增益率的屬性作為**屬性。
(3)錯誤率
三個公式的值越大,表示越「不純」,分類效果越差。
停止條件
決策樹的構建過程是乙個遞迴的過程。一種最直觀的方式是當每個子節點只有一種型別的記錄時停止,這樣往往會使得樹的節點過多,導致過擬合問題。另一種方法就是當前節點中的記錄數低於乙個最小的閾值,就停止分割,將max(p(i))對應的分類(當前節點的記錄中最大概率的型別)作為當前節點的分類。
優化1.修剪枝葉
決策樹過擬合導致節點過多。剪裁枝葉的策略對決策樹的正確率影響很大,主要有兩種剪裁策略。
前置剪裁
後置剪裁
2.k-fold cross validation
3.隨機森林
隨機森林是用訓練資料隨機的計算出許多決策樹,形成乙個森林。然後用森林對未知資料進行**,選取投票最多的分類。隨機森林演算法能降低錯誤率。乙個決策樹**正確的概率可能不高,但是集體**正確的概率卻很高。
(1)隨機森林中的每一顆決策樹之間是沒有聯絡的。
(2)建立決策樹時,取樣與完全**。
首先是兩個隨機取樣過程,隨機森林對輸入的(樣本,特徵)進行行、列取樣。
對於行取樣,採用有放回的方式,在取樣得到的樣本集合中,可能有重複的樣本。假設輸入樣本為n個,那麼取樣的也為n個。這樣在每個決策樹訓練時,輸入的樣本都不是全部的樣本。這樣做相對不容易過擬合。
對於列取樣,從m個特徵中,選擇m個(m小於m)。
對取樣之後的資料使用完全**的方式建立決策樹,完全**的方式就是對於所有可能的分支都擴充套件。直到某個葉節點無法繼續**下去,裡面所有的樣本都屬於同一類。
一般的決策樹演算法都使用剪枝法進行優化,隨機森林的決策樹構建不需要進行剪枝,因為隨機取樣過程已經保證了隨機性。
2018 8 27 決策樹與隨機森林
首先,在了解樹模型之前,自然想到樹模型和線性模型有什麼區別呢?其中最重要的是,樹形模型是乙個乙個特徵進行處理,之前線性模型是所有特徵給予權重相加得到乙個新的值。決策樹與邏輯回歸的分類區別也在於此,邏輯回歸是將所有特徵變換為概率後,通過大於某一概率閾值的劃分為一類,小於某一概率閾值的為另一類 而決策樹...
決策樹和隨機森林
決策樹 建立決策樹的關鍵,是在當前狀態下選擇那個屬性作為分類依據。根據不同的目標函式,建立決策樹主要有三個演算法 id3 iterative dichotomiser c4.5 cart classification and regression tree 資訊增益 當熵和條件熵中的概率由資料統計得...
決策樹和隨機森林
c4.5 cart 2,工具 能夠將dot檔案轉換為pdf png 3,執行命令 缺點 改進 建立10顆決策樹,樣本,特徵大多不一樣 隨機又放回的抽樣 bootstrap boolean,optional default true 是否在構建樹時使用放回抽樣。隨機森林的優點 import panda...