決策樹演算法梳理

2022-05-06 08:24:07 字數 4501 閱讀 4447

學習內容:

1. 資訊理論基礎(熵 聯合熵 條件熵 資訊增益 基尼不純度)

2.決策樹的不同分類演算法(id3演算法、c4.5、cart分類樹)的原理及應用場景

3. 回歸樹原理

4. 決策樹防止過擬合手段

5. 模型評估

6. sklearn引數詳解,python繪製決策樹

1. 資訊理論基礎(熵 聯合熵 條件熵 資訊增益 基尼不純度)

2.決策樹的不同分類演算法(id3演算法、c4.5、cart分類樹)的原理及應用場景

3. 回歸樹原理

4. 決策樹防止過擬合手段

5. 模型評估

6. sklearn引數詳解,python繪製決策樹

1. 資訊理論基礎

資訊熵:資訊熵是度量樣本的集合純度最常用的一種指標。在資訊理論和概率統計中,熵是表示隨機變數不確定性的度量。公式為:$ent(d) = - \sum\limits_^p_log_p_ $,ent(d)越小,則d的純度越高。

聯合熵:兩個隨機變數x,y的聯合分布,可以形成聯合熵joint entropy,用h(x,y)表示。

條件熵:設有隨機變數(x, y),其聯合概率分布為$p ( x = x_i , y = y_i ) = p_ij ,   i = 1 , 2 ,  ... n ; j = 1 , 2, ... , m $

條件熵h(y|x) 表示在已知隨機變數x的條件下隨機變數y的不確定性。隨機變數x給定條件下隨機變數y的條件熵h(y|x),定義為x給定條件下y的條件概率分布的熵對x的數學期望$$h(y|x ) = \sum\limits_^np_h(y|x=x_) $$

這裡,$p_ = p(x=x_),i = 1,2,...,n $

資訊增益:考慮到不同的分支所包含的樣本數不同,給分支節點賦予權重$|d^v|/|d| $,即樣本數越多的分支節點影響越大,於是計算出用屬性$\alpha $對樣本集$d $進行劃分所獲得的資訊增益。$$ gain(d,\alpha) = ent(d) - \sum\limits_^v\frac|}ent(d_) $$

基尼不純度:從乙個資料集中隨機選取子項,度量其被錯誤的劃分到其他組裡的概率。$$i_g(f) = \sum\limits_^mf_i(1-f_i) = \sum\limits_^m(f_i - f_i^2) = \sum\limits_^mf_i - \sum\limits_^mf_i^2 = 1 - \sum\limits_^mf_i^2 $$

2.決策樹的不同分類演算法(id3演算法、c4.5、cart分類樹)的原理及應用場景

id3演算法的核心是在決策樹各個結點上應用資訊增益準則選擇特徵,遞迴地構建決策樹。

具體方法是:從根節點(root node)開始,對結點計算所有可能的特徵資訊增益,選擇資訊增益最大的特徵作為結點特徵,由該特徵的不同取值建立子結點;再對子結點遞迴地呼叫以上方法,構建決策樹;直到所有特徵的資訊均很小或沒有特徵可以選擇為止。

c4.5演算法與id3演算法相似,c4.5演算法對id3演算法進行了改進。c4.5在生成過程中,用資訊增益比來選擇特徵。

cart是在給定輸入隨機變數$x $條件下輸出隨機變數$y $的條件概率分布的學習方法。

cart演算法由一下兩步組成:

1)決策樹生成:基於訓練資料集生成決策樹,生成的決策樹要盡量大;

2)決策樹剪枝:用驗證資料集對已生成的樹進行剪枝病選擇最優子樹,這時用損失函式最小作為剪枝的標準。

銀行貸款申請、房產開發商房子的選址。

3. 回歸樹原理

決策樹的生成就是遞迴地構建二叉決策樹的過程,對於回歸樹用平方誤差最小化準則。

4.決策樹防止過擬合手段

剪枝是決策樹學習演算法對付過擬合的主要手段。決策樹剪枝的基本策略有「預剪枝」和「後剪枝」。

預剪枝是指在決策樹生成過程中,對每個結點在劃分前先進行估計,若當前結點的劃分不能帶來決策樹泛化效能提公升,則停止劃分並將當前結點標記為葉節點。

後剪枝是指先從訓練集生成一顆完整的決策樹,然後自底向上地對非結點進行考察,若講該結點對應的子樹替換成葉節點能帶來決策樹泛化效能的提公升,則將該子樹替換成葉節點。

5. 模型評估

自助法(bootstrap):

訓練集是對於原資料集的有放回抽樣,如果原始資料集$n$, 可以證明,大小為$n$的自助樣本大約包含原資料63.2%記錄。當$n$充分大的時候,$1 - (1 - \frac)^n$概率逼近$1 - e^ = 0.632 $。抽樣$b$次,產生$b$個bootstrap樣本,則總準確率為($acc_s$為包含所有樣本的準確率):$$ acc_=\frac\sum_^(0.632\times\varepsilon _+0.368\times acc_)$$

準確度的區間估計:

將分類問題看做二項分布,則有:

令 $x $為模型正確分類,$p$ 為準確率,$x $服從均值 $np$、方差 $np(1-p)$的二項分布。$acc=\frac$為均值 $p$,方差 $\frac$ 的二項分布。$acc$ 的置信區間:

$$ p\left(-z_} \leq \frac} \leq z_}\right)=1-\alpha$$ $$ p\in\frac}^\pm z_}\sqrt}^+4\times n \times acc-4\times n \times acc^}}}^)}$$

6. sklearn引數詳解,python繪製決策樹

classsklearn.tree.decisiontreeclassifier(criterion=』gini』,splitter=』best』,max_depth=none,min_samples_split=2,min_samples_leaf=1,min_weight_fraction_leaf=0.0,max_features=none,random_state=none,max_leaf_nodes=none,min_impurity_decrease=0.0,min_impurity_split=none,class_weight=none,presort=false)

引數詳解:

criterion=』gini』, string, optional (default=」gini」),衡量分支好壞的標準

splitter=』best』, string, optional (default=」best」),選擇分支的策略

max_depth=none, int or none, optional (default=none),樹的最大深度

min_samples_split=2, int, float, optional (default=2),分支時最小樣本數

min_samples_leaf=1, int, float, optional (default=1),葉子最少樣本

min_weight_fraction_leaf=0.0, float, optional (default=0.),葉子結點的最小權重

max_features=none, int, float, string or none, optional (default=none),生成樹時考慮的最多特徵點數

random_state=none,  int, randomstate instance or none, optional (default=none),打亂樣本時所用的隨機種子

max_leaf_nodes=none,  int or none, optional (default=none),生成樹時採用的最大葉子結點

min_impurity_decrease=0.0, float, optional (default=0.),當產生分支時,增加的純度

min_impurity_split=none,  float, (default=1e-7),樹停止生長的閾值

class_weight=none,  dict, list of dicts, 「balanced」 or none, default=none,分支權重預設定

presort=false,bool, optional (default=false),提前對資料排序,加快樹的生成

決策樹演算法梳理

熵 entropy 在資訊理論與概率統計中,熵 entropy 是表示隨機變數不確定性的度量。設x是乙個取有限個值的離散隨機變數,其概率分布為 則隨機變數x的熵定義為 熵只依賴於x的分布,而與x的取值無關,所以也可將x的熵記作h 即 熵取值最大,隨機變數不確定性最大。條件熵 設有隨機變數 x,y 其...

決策樹演算法梳理

熵 又稱為自資訊,度量隨機變數的不確定性。純度 聯合熵 聯合熵是描述一對隨機變數平均所需要的資訊量 條件熵 h y x 表示在已知隨機變數 x 的條件下,隨機變數 y 的不確定性 資訊增益 以某特徵劃分資料集前後的熵的差值 基尼不純度 指將來自集合中的某種結果隨機應用在集合中,某一資料項的預期誤差率...

決策樹演算法梳理

1.資訊理論基礎 資訊熵 資訊熵是度量樣本的集合純度最常用的一種指標。在資訊理論和概率統計中,熵是表示隨機變數不確定性的度量。聯合熵 兩個隨機變數x,y的聯合分布,可以形成聯合熵joint entropy,用h x,y 表示。條件熵 設有隨機變數 x,y 其聯合概率分布為 條件熵h y x 表示在已...