樹算法

信息增益的計算方法

https://blog.csdn.net/it_beecoder/article/details/79554388

決策樹--信息增益,信息增益比,Geni指數(shù)的理解

https://www.cnblogs.com/muzixi/p/6566803.html



熵可以表示樣本集合的不確定性,熵越大,樣本的不確定性就越大。

(1)ID3算法---信息增益

做法:計算使用所有特征劃分數(shù)據(jù)集D,得到多個特征劃分數(shù)據(jù)集D的信息增益,從這些信息增益中選擇最大的,因而當前結(jié)點的劃分特征便是使信息增益最大的劃分所使用的特征。

缺點:信息增益偏向取值較多的特征

原因:當特征的取值較多時,根據(jù)此特征劃分更容易得到純度更高的子集(極端:每個特征值只有1個),因此劃分之后的熵更低,由于劃分前的熵是一定的,因此信息增益更大,因此信息增益比較 偏向取值較多的特征。

(2)C4.5算法--信息增益比

信息增益比 = 懲罰參數(shù) * 信息增益

懲罰參數(shù):數(shù)據(jù)集D以特征A作為隨機變量的熵的倒數(shù)

缺點:信息增益比偏向取值較少的特征

原因:當特征取值較少時HA(D)的值較小,因此其倒數(shù)較大,因而信息增益比較大。因而偏向取值較少的特征。

使用信息增益比:基于以上缺點,并不是直接選擇信息增益率最大的特征,而是現(xiàn)在候選特征中找出信息增益高于平均水平的特征,然后在這些特征中再選擇信息增益率最高的特征。

(3)CART樹--基尼指數(shù)

http://www.lxweimin.com/p/b90a9ce05b28

https://www.cnblogs.com/yonghao/p/5135386.html

表示在樣本集合中一個隨機選中的樣本被分錯的概率。

Gini指數(shù)越小表示集合中被選中的樣本被分錯的概率越小,也就是說集合的純度越高,反之,集合越不純。



Xgboost

全名:eXtreme Gradient Boosting

https://www.cnblogs.com/zongfa/p/9324684.html

XGBoost是以分類回歸樹(CART樹)進行組合

模型預(yù)測:\tilde{y_i}=\sum_{k=1}^K f_k(x_i)

損失函數(shù):Obj(\theta )=\sum_{i=1}^n l(y_i,\tilde{y_i})+\sum\nolimits_{k=1}^K \Omega(f_k)

其中\Omega(f_k) 表示第k顆樹的正則項;K代表樹的總個數(shù)。

每次往模型中加入一棵樹,其損失函數(shù)便會發(fā)生變化。另外在加入第t棵樹時,則前面第t-1棵樹已經(jīng)訓(xùn)練完成,此時前面t-1棵樹的正則項和訓(xùn)練誤差都成已知常數(shù)項。

Obj(\theta )=\sum_{i=1}^n l(y_i,\tilde{y_i}^{(t-1)}+f_t(x_i))+\Omega(f_t) +C=\sum_{i=1}^n l(y_i,\tilde{y_i}^{(t-1)}+f_t(x_i))+\Omega(f_t) +C

如果損失函數(shù)采用均方差時,其目標損失函數(shù)變?yōu)椋?/p>

Obj(\theta )=\sum_{i=1}^n (y_i-(\tilde{y_i}^{(t-1)}+f_t(x_i)))^2+\Omega(f_t)+C \\=\sum_{i=1}^n [2(\tilde{y}^{(t-1)}-y_i)f_t(x_i)+f_t{(x_i)}^2]+\Omega(f_t)+C_1

對于其中每一棵回歸樹,其模型可以寫成:f_t(x)=w_{q(x)},w\in R^T

其中w為葉子節(jié)點的得分值,q(x)表示樣本x對應(yīng)的葉子節(jié)點,T為該樹的葉子節(jié)點個數(shù)。

樹的復(fù)雜度\Omega (f_t)=\gamma T+\frac{1}{2} \lambda \sum_{j=1}^T w_j^2

泰勒展開式:f(x+\Delta x)\approx f(x)+f^‘(x)\Delta x+\frac{1}{2}f^{‘‘} (x)\Delta x ^2

Obj(\theta )\approx \sum_{i=1}^n [l(y_i,\tilde{y}^{(t-1)} )+\partial _{\tilde{y}^{(t-1)}}l(y_i,\tilde{y}^{(t-1)} )f_t(x_i)+\frac{1}{2} \partial _{\tilde{y}^{(t-1)}}^2l(y_i,\tilde{y}^{(t-1)} )f_t(x_i)^2]+\gamma T+\frac{1}{2}\lambda? \sum_{j=1}^T w_j^2

令:g_i=\partial _{\tilde{y}^{(t-1)}}l(y_i,\tilde{y}^{(t-1)} )h_i=\partial _{\tilde{y}^{(t-1)}}^2l(y_i,\tilde{y}^{(t-1)} )

去除常數(shù)項,得

Obj(\theta )\approx \sum_{i=1}^n [g_if_t(x_i)+\frac{1}{2} h_i f_t(x_i)^2]+\gamma T+\frac{1}{2}\lambda? \sum_{j=1}^T w_j^2 \\ =\sum_{i=1}^n [g_i w_{q(x_i)}+\frac{1}{2} h_i w_{q(x_i)}^2]+\gamma T+\frac{1}{2}\lambda? \sum_{j=1}^T w_j^2 \\ =\sum_{j=1}^T [(\sum_{i\in I_j} g_i)w_j+(\frac{1}{2}\sum_{i\in I_j}h_i )w_j^2]+\gamma T+\frac{1}{2}\lambda? \sum_{j=1}^T w_j^2 \\=\sum_{j=1}^T [(\sum_{i\in I_j} g_i)w_j+(\frac{1}{2}(\sum_{i\in I_j}h_i+\lambda ) )w_j^2]+\gamma T

令:G_j=\sum_{i\in I_j}g_iH_j=\sum_{i\in I_j} h_i

Obj(\theta )=\sum_{j=1}^T [G_jw_j+\frac{1}{2}(H_i+\lambda )w_j^2 ]+\gamma T

對wj求偏導(dǎo),令導(dǎo)函數(shù)=0,則:w_j^*=-\frac{G_j}{H_j+\lambda }

其目標函數(shù)為:Obj^*=-\frac{1}{2} \sum_{j=1}^T \frac{G_j^2}{H_j+\lambda } +\gamma T

根據(jù)目標函數(shù)分裂樣本數(shù)據(jù)

Obj代表了當我們指定一個樹的結(jié)構(gòu)的時候,我們在目標上面最多減少多少。叫做結(jié)構(gòu)分數(shù)(structure score)。這個代替gini系數(shù),更加一般地對樹結(jié)構(gòu)進行打分的函數(shù)。

Gain=\frac{1}{2} [\frac{G_L^2}{H_L+\lambda } +\frac{G_R^2}{H_R+\lambda}-\frac{(G_L+G_R)^2}{H_L+H_R+\lambda }]-\gamma


xgboost&gbdt區(qū)別

https://blog.csdn.net/wolf963/article/details/78508858

1)增加處理缺失值的方案(通過枚舉所有缺失值在當前節(jié)點是進入左子樹,還是進入右子樹更優(yōu)來決定一個處理缺失值默認的方向)

2)實現(xiàn)了利用分捅/分位數(shù)方法,實現(xiàn)了全局和局部的近似分裂點算法,降低了計算量,并且在eps參數(shù)設(shè)置合理的情況下,能達到窮舉法幾乎一樣的性能

3)xgboost損失函數(shù)是誤差部分是二階泰勒展開,GBDT 是一階泰勒展開。因此損失函數(shù)近似的更精準。

4)XGB加了正則項,普通GBDT沒有。為了防止過擬合








完畢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 簡單介紹 ??機器學(xué)習(xí)主要分為倆大類:分類問題和回歸問題。決策樹是常用的分類學(xué)習(xí)算法,當然也能用于處理回歸問題,同...
    Daoba閱讀 19,398評論 0 4
  • 運行平臺:Windows Python版本:Python3.x IDE:pycharm 一、決策樹 決策樹是什么?...
    ghostdogss閱讀 1,926評論 0 1
  • 基本概念 決策樹(decision tree)是一種常見的機器學(xué)習(xí)方法,它是基于樹結(jié)構(gòu)來進行決策的,這恰是人類在面...
    司馬安安閱讀 1,517評論 0 3
  • 一、通俗理解熵和基尼不純度 1.信息熵 熵度量事物的不確定性,越不確定的事物,它的熵就越大。隨機變量的熵的表達式如...
    阿ashang閱讀 932評論 0 0
  • 我這個人吧,活的“浪蕩”,隨性。 用一句話形容就是靜若處子,動若瘋兔。 這個文純粹是為了記錄我那九死一生的過去。 ...
    望糖閱讀 609評論 1 1