Posts

Showing posts from January, 2021

Boosting vs Bagging? 別再胡亂用了!

Image
許多初接觸數據科學的朋友心裡都有一個疑問:什麼時候應該使用 XGBoost 或隨機森林這樣的模型?有些朋友也可能被面試官考問如何區分Boosting跟Bagging這種問題。無論您是否有這痛苦的 經歷 ,懂得區分兩者的分別也是十分 重要的,尤其在 我們選擇那一個預測模型 。 在了解 Boosting跟Bagging 之前,首先需要瞭解Bias和Varaince的概念。 如果讀者們沒有聽說過,筆者 建議您在我的舊文先了 解一下 。 首先,Boosting跟Bagging都屬於Ensemble Method,原理將數個基礎模型(Base Model) 放在一起,給出更準確的結果,展示出 團結就是力量 。以Random Forest Classifier ( 隨機森林分類器) 為例,它的基本模型應該是(Decision Tree Classifier)決策樹分類器,我們也稱之為 " 弱分類器 (Weak Classifier) " 。在大多的情況下,Boosting或者Bagging模型表現都勝於單個模型,不過我們還是需要知道哪時候使用 ,才不會白費功夫 。 Bagging 我們先談 談 袋裝, 因為它比Boosting原理更直觀和容易理解。Bagging全名為 Bootstrapping Aggregatingm,當中的 Bootstrap 是根據 N 個 Data Point,用隨機抽樣的方式,從N個抽出K個 Data Point,並 建立一組又一組的樣本,然後 Weak Learner 可以從建立好的樣本中進行學習。 隨機森林就 是一個典型 Bagging的例子 。而決策樹扮演著Weak Learner的角色。如果您對決策樹沒有任何瞭解,下面是建議的閱讀( TODO : URL )。 訓練數據會被 隨機抽樣,抽出部分的紀錄和部分的特徵,建立一組組的樣本,而 每棵樹便會學習對的樣本,這些獨立學習好的樹,都會產出一個預測結果,取 平均值,便是一個綜合的 預測結果 。現在,你可能知道為什麼它會被稱之為 " 隨機 " 和 " 森林 " 。實際上,其原理是使每一個基礎模型學習方法都是相互獨立,以儘可能減少 Variance,但同時也犧牲Bias。簡單地說,Bagging主要用作來解決Overfitting...