1

經過一段時間研究決策樹後,我注意到有一種叫做boosting的小技巧。我發現在正常情況下,它會提高決策樹的準確性。關於決策樹的問題

所以我只是想知道,爲什麼我們不只是簡單地將這種提升融入到我們構建的每個決策樹中呢?由於目前我們作爲一項單獨的技術離開,因此我思考:使用提升比使用單個決策樹有什麼缺點?

感謝您幫助我在這裏!

回答

4

提升是一種可以放在任何學習算法上的技術。當您建立的原始分類器執行的功能剛剛超過隨機數時,它是最有效的。如果你的決策樹已經相當不錯了,提升可能沒有太大的區別,但是會有性能損失 - 如果你運行100次迭代提升,你將不得不訓練和存儲100個決策樹。

通常情況下,人們通過決策樹(只有一個節點的決策樹)進行提升,並獲得與完全決策樹一樣好的結果。

我已經做了一些experiments增強,發現它相當健壯,比單個樹分類器更好,但也更慢(我過去10次迭代),並沒有一些更簡單的學習者(要公平的,這是一個非常嘈雜的數據集)

1

有幾個disadvatages用於增加: 1-難以實現 2,他們需要大量的培訓與訓練將超過決策樹確實 3-糟糕的是,所有的增強算法需要的閾值 這在大多數情況下不容易理解,因爲它需要廣泛的試驗和錯誤測試,因爲知道提升算法的整體性能取決於此閾值

+0

你是在談論權重閾值,決定了多少數據集用於訓練弱學習者?據我所知,這是一個性能增強器,如果不確定,可以將其設置爲100%。 Weka的AdaBoost實現沒有任何其他可調整的權重閾值 - http://weka.sourceforge.net/doc/weka/classifiers/meta/AdaBoostM1.html#getWeightThreshold() – 2010-11-24 08:56:20