1. 程式人生 > >決策樹(CART)、隨機森林、GBDT(GBRT)新手導讀及資料推薦,附加python實現程式碼

決策樹(CART)、隨機森林、GBDT(GBRT)新手導讀及資料推薦,附加python實現程式碼

前言

關於決策樹、隨機森林、GBDT(GBRT),這裡記錄我的一些理解,詳細的資料已經非常多了,也有很多好的部落格,再寫沒必要。推薦幾個有代表性的部落格,網際網路資源太多,良莠不齊。看了推薦的文章,你應該會有一個清晰的思路的。

決策樹

在理解決策樹時,在腦海裡面有個二叉樹的樣子,或者在稿紙上畫一個。如下圖,表示一層的分割過程,全部的樹有很多層(也是模型的一個重要引數)。


不同的分割依據(也可以叫目標函式)對應不同的決策模型,主要是圖中這三種。

分割閾值也就是對應的特徵資料,第一層用這個特徵,第二層的節點用另一些特徵,類似這樣。

最後測試的時候,將資料輸進來,在每個節點上進行對比,直到最後的葉子節點(最後一層上),得到分類的型別,也就是它的標籤(label)。

詳細推薦閱讀這裡的文章,文中對應有程式碼,自己跑跑。

隨機森林

懂了決策樹,隨機森林就好理解了。隨機森林就是由很多棵決策樹組成,一般選取的就是CART樹。但有兩個不同的地方,一是訓練資料的取樣上(列取樣);二是分割時選取的特徵的取樣上(行取樣);具體的看這個文章,講的很詳細,還對應有程式碼。

GBDT也叫GBRT

全名gradient boosted decision tree,是一種新的思想。也是由很多棵決策樹(迴歸樹)組成,在每訓練一棵樹時,它的訓練資料是已經訓練好的模型(前面訓練好的樹)的殘差(目標函式的梯度)。也就是用迴歸樹來優化目標函式。詳細的看這裡的文章程式碼看另外一個作者的。

1、推薦一個xgboost作者的文章,說完有一個昇華。

2、大家找程式碼直接上github,在CSDN中有人直接從github上下載程式碼,然後放到自己那,很鄙視這種人。