一 實驗目的:
通過調(diào)參進一步熟悉GBDT的模型特性拷淘,方便下一步優(yōu)化模型做回歸的效能
二 實驗內(nèi)容:
1.觀察弱學習器個數(shù)(也就是決策樹的個數(shù))與GBDT模型預測的預測偏差(預測值與真實值的均方差MSE)以及模型運行速度的關系
2.觀察學習速率大蟹芍鳌(也就是步長)與GBDT模型的預測偏差以及模型運行速度的關系
3.觀察子采樣大小與GBDT模型的預測偏差以及模型運行速度的關系
4.觀察決策樹最大深度大小與GBDT模型的預測偏差以及模型運行速度的關系
三 實驗過程:
4月1號再次調(diào)參時并沒有采取網(wǎng)上的每每兩個參數(shù)同時調(diào)整來進行調(diào)參层亿,而是每次只調(diào)整一個參數(shù)颈娜,符合控制變量的思想,這樣以來病蛉,不再需要手動一個一個調(diào)整汽烦,定義了函數(shù),用for循環(huán)的方式遍歷給定的參數(shù)值屹篓,然后為了直觀的體現(xiàn)出參數(shù)變化與GBDT模型性能的關系疙渣,這里取了兩個指標:
(1)predict erorr :預測偏差 (這里不再像上次那樣取好幾個回歸指標,而是均方差MSE)
(2)latency :模型運行的時間(反應了模型的速度性能)
這兩個指標足以表現(xiàn)出一個模型基本的性能堆巧。
1.n_estimator昌阿,(弱學習器,決策樹)的個數(shù)對模型的影響
如圖我們可以看到恳邀,學習器的個數(shù)也很大程度的影響著模型的復雜度懦冰,
GBDT運行的時長與學習器的個數(shù)增長呈正相關
GBDT的預測偏差在一定范圍內(nèi)會隨著學習器的增多而顯著減少,而在數(shù)量過多之后漸漸趨于平穩(wěn)
2.learning_rate(學習速率)大小對模型的影響
如圖我們可以看到谣沸,GBDT模型在這個數(shù)據(jù)集上刷钢,模型的運行速度在學習速率(步長)小于0.2之前有兩個極大值點,意思是
GBDT的模型的運行速度在一定0.2~0.3之間某個點最大乳附,而后學習速率的增大甚至會緩慢減小GBDT的運行速率内地,在取得最大速率之前突變起伏,所以在調(diào)參時要反復嘗試赋除,才能找到模型運行速度的最大值點阱缓,
恰好,GBDT的預測偏差最小時也是模型運行速度最快時举农,也就是
存在一個學習速率使得預測準確率和模型運行速度同時達到最大值荆针。
3.subsample(子采樣)對模型的影響
子采樣的概念:當樣本全部使用,則沒有子采樣,即取值為1航背。
我們可以看到喉悴,GBDT模型在運行中預測偏差出現(xiàn)了兩個極小值,分別是子采樣值為0.6和1玖媚,在0.6之前箕肃,子采樣的數(shù)值太小,只有一小部分樣本去做GBDT模型擬合今魔,增加了樣本擬合的偏差勺像,所以子采樣的值不能太小。
但是在0.6~0.8的樣本去擬合GBDT模型的時候错森,預測偏差反而上升了吟宦。這個問題暫時還沒想到答案。
但是相比較其他參數(shù)而言问词,MSE均方差的變化范圍其實不太大督函,這點我們可通過觀察這幾幅圖的縱坐標軸來得出嘀粱。
至于模型的運行速度激挪,又恰好在子采樣0.6時最慢,
在0.6~0.8區(qū)間內(nèi)锋叨,模型的預測偏差與模型的運行速度同時增大垄分。
4.決策樹最大深度max_depth對模型的影響
我們可以看到?jīng)Q策樹深度這個值增大,而模型的誤差隨之增大娃磺,當然可能是采用的數(shù)據(jù)集不夠大薄湿,我們進一步觀察一下決策樹深度這個值小于1時的表現(xiàn),值小于一的意思是百分比偷卧,即每顆決策樹的深度小于1.
當這個值過小時豺瘤,每個學習器,也就是每顆決策樹的深度都太小听诸,基本上什么都沒有學到坐求,所欲預測誤差非常大,而運行時間也非常小
在這個數(shù)據(jù)集中晌梨,當這個值等于1時桥嗤,預測偏差取最小,當然當數(shù)據(jù)集非常大仔蝌,數(shù)據(jù)維度非常多時泛领,據(jù)說增大這個值是有很好的效果。
四 實驗總結(jié):
1.本次實驗取了6個參數(shù)敛惊,但是另外兩個min_samples_split渊鞋,min_samples_leaf,這兩個弱學習器(決策樹)參數(shù)的調(diào)整對模型影響幾乎沒有。
對此暫時沒有清楚原因篓像。需要加強對決策樹原理的進一步學習动知。
2.本次實驗暴露出對GBDT原理的理解還很淺,無法把算法的流程和算法的公式與某些參數(shù)的關系理清楚员辩,比如子采樣和學習速率這兩個值盒粮,
尚未理解這兩個值為什么對預測誤差有突變產(chǎn)生。
3.一個模型的評價指標當然不僅僅是速度和預測偏差兩個奠滑,所以本次實驗只是對GBDT算法進行了一個簡單的測試評估丹皱。
4.現(xiàn)有資料上對GBDT用于數(shù)據(jù)做回歸時,說的數(shù)據(jù)集大還是小宋税,數(shù)據(jù)維度多還是少摊崭,并沒有給出明確的界限,所以還存在一個很模糊問題杰赛。
本次采用的數(shù)據(jù)集是sklearn上的波士頓房價回歸數(shù)據(jù)集呢簸,樣本600行,12個維度乏屯。應該算是小數(shù)據(jù)集了根时。所以此次GBDT的表現(xiàn),應該算是
GBDT在數(shù)據(jù)量小維度少的數(shù)據(jù)集上的表現(xiàn)辰晕。