集成方法中的梯度提升回歸樹(梯度提升機)模型


集成方法中的梯度提升回歸樹(梯度提升機)模型

一、總結

一句話總結:

合並多個決策樹:梯度提升回歸樹是另一種集成方法,通過合並多個決策樹來構建一個更為強大的模型。
回歸和分類:雖然名字中含有“回歸”,但這個模型既可以用於回歸也可以用於分類。
每顆樹都試圖糾正前一棵樹的錯誤:與隨機森林方法不同,梯度提升采用連續的方式構造樹,每顆樹都試圖糾正前一棵樹的錯誤。默認情況下,梯度提升采用連續的方式構造樹,每棵樹都試圖糾正前一棵樹的錯誤。
強預剪枝:默認情況下,梯度提升回歸樹中沒有隨機化,而是用到了強預剪枝。梯度提升樹通常使用深度很小(1到5之間)的樹,這樣模型占用的內存更少,預測速度也更快。

 

 

1、梯度提升背后的主要思想?

不斷添加樹可以不斷迭代提高性能:梯度提升背后的主要思想是合並許多簡單的模型(在這個語境中叫做弱學習器),比如深度較小的樹。每顆樹只能對部分數據做出很好的預測,因此,添加的樹越來越多,可以不斷迭代提高性能。

 

 

2、梯度提升機學習率特點?

學習率:除了預剪枝與集成中樹的數量之外,梯度提升的另外一個重要參數是learning_rate(學習率),用於控制每棵樹糾正前一棵樹的錯誤的強度。較高的學習率意味着每棵樹都可以做出較強的修正,這樣模型更為復雜。

 

 

3、梯度提升和隨機森林選擇?

隨機森林魯棒性:由於梯度提升和隨機森林兩種方法在類似的數據上表現的都很好,因此一種常用的方法就是先嘗試隨機森林,它的魯棒性很好。
隨機森林->梯度提升:如果隨機森林效果很好,但預測時間太長,或者機器學習模型精度小數點后第二位的提高也很重要,那么切換成梯度提升通常會有用。

 

 

4、梯度提升主要缺點?

需要仔細調參:梯度提升主要缺點是需要仔細調參,而且訓練時間可能會比較長。與其他基於樹的模型類似,這一算法不需要對數據進行縮放就可以表現的很好,而且也適用於二元特征與連續特征同時存在的數據集。
不適用於高維稀疏矩陣:與其他基於樹的模型相同,它也通常不適用於高維稀疏矩陣。

 

 

 

二、第六個模型:集成方法中的梯度提升回歸樹(梯度提升機)模型

轉自或參考:第六個模型:集成方法中的梯度提升回歸樹(梯度提升機)模型
https://blog.csdn.net/az9996/article/details/86617885


1、梯度提升回歸樹(梯度提升機)
梯度提升回歸樹是另一種集成方法,通過合並多個決策樹來構建一個更為強大的模型。雖然名字中含有“回歸”,但這個模型既可以用於回歸也可以用於分類。與隨機森林方法不同,梯度提升采用連續的方式構造樹,每顆樹都試圖糾正前一棵樹的錯誤。默認情況下,梯度提升采用連續的方式構造樹,每棵樹都試圖糾正前一棵樹的錯誤。默認情況下,梯度提升回歸樹中沒有隨機化,而是用到了強預剪枝。梯度提升樹通常使用深度很小(1到5之間)的樹,這樣模型占用的內存更少,預測速度也更快。

梯度提升背后的主要思想是合並許多簡單的模型(在這個語境中叫做弱學習器),比如深度較小的樹。每顆樹只能對部分數據做出很好的預測,因此,添加的樹越來越多,可以不斷迭代提高性能。

梯度提升樹經常是機器學習競賽的優勝者,並且廣泛應用於業界。與隨機森林相比,它通常對參數設置更為敏感,但如果參數設置正確的話,模型精度會更高。

除了預剪枝與集成中樹的數量之外,梯度提升的另外一個重要參數是learning_rate(學習率),用於控制每棵樹糾正前一棵樹的錯誤的強度。較高的學習率意味着每棵樹都可以做出較強的修正,這樣模型更為復雜。通過增大n_estimators來向集成中添加更多的樹,也可以增加模型復雜度,因為模型有更多機會糾正訓練集上的錯誤。

2、分析梯度提升樹

可以看到,梯度提升樹的特征重要性與隨機森林的特征重要性有些類似,不過梯度提升完全忽略了某些特征

由於梯度提升和隨機森林兩種方法在類似的數據上表現的都很好,因此一種常用的方法就是先嘗試隨機森林,它的魯棒性很好。如果隨機森林效果很好,但預測時間太長,或者機器學習模型精度小數點后第二位的提高也很重要,那么切換成梯度提升通常會有用。

如果想將梯度提升應用在大規模問題上,可以研究一下xgboots包機器Python接口,這個庫在許多數據集上的速度都比scikit-learn對梯度提升的實現要快(有時調參也更簡單)。

3、優點、缺點和參數
梯度提升決策樹是監督學習中最強大也最常用的模型之一。其主要缺點是需要仔細調參,而且訓練時間可能會比較長。與其他基於樹的模型類似,這一算法不需要對數據進行縮放就可以表現的很好,而且也適用於二元特征與連續特征同時存在的數據集。與其他基於樹的模型相同,它也通常不適用於高維稀疏矩陣。

參數n_estimators和learning_rate兩者之間高度相關,因為learning_rate越低,就需要更多的樹來構建具有相似復雜度的模型。隨機森林的n_estimators值總是越大越好,但梯度提升不同,增大n_estimators會導致模型更加復雜,進而可能導致過擬合。通常的做法是根據時間和內存的預算選擇合適的n_estimators,然后對不同的learning_rate進行遍歷。

另一個重要參數是max_depth(或max_leaf_nodes),用於降低每棵樹的復雜度。梯度提升模型的max_depth通常都設置的很小,一般不超過5。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM