Ensemble === ###### tags: `李宏毅` ## 教材 * [pdf](https://drive.google.com/file/d/1epR5B2AC-3ptS_EWGZHXW43eptGIjZZe/view?usp=sharing) * [youtube](https://www.youtube.com/watch?v=tH9FH1DH5n0&ab_channel=Hung-yiLee) ## Bagging 把 N 個 Training Data 取樣 N' 成多個 Set,然後針對這四個 Set 分別訓練一個模型。  最後再取平均或 Voting,做 Bagging 是為了減緩 Overfitting。  Decision Tree 很容易 Overfitting,因為它一定可以 Fit 出任何一種 Training Data,所以 Random Forest 就是 Bagging of Decision Tree。  ## Boosting 跟 Bagging 用在很複雜的 Model 相反,Boosting 是用在 Weak Classifier。Boosting 保證只要能產生 Error Rate 小於 50% 的 Classifier,在 Boosting 後就可以拿到 0% Error Rate。  取得不同的 Classifier 的方式是使用不同 Training Data Set 訓練,可以 Re-sampling 或 Re-weighting。  ## Adaboost 基於 f1 訓練 f2。  把 f1 訓練錯的資料的 Weight 放大,所以一開始 Error Rate 會增加。  實際上做 Re-weighting 的方法,就是在 f1 答錯時,就把那筆資料的權重乘以 d1,反之除以 d1。  總之最後要讓 Error Rate 等於 0.5,推導如下。   ## Adaboost 數學推導 證明 Weak Classifier 越多,會讓 Error Rate 越低。    Adaboost 有個神奇的現象,Training Data 的 Error Rate 可能很早就會變 0,但是 Testing Data 的 Error Rate 卻可以持續下降。這是因為在算 H(x) 會希望 $α_tf_t(x)$ 越大越好,所以雖然 Training Data 的 Error Rate 一樣,但是 Testing Data 的卻可以持續下降。  Adaboost 之所以可以讓 Testing Data 的 Error Rate 持續下降是因為 Adaboost 的 $\hat{y}^ng(x^n)$ 相乘像是 Logistic Regression 一樣越來越低,而不是跟 ReLU 一樣到了正值之後都一樣。  ## Gradient Boosting Loss Function 如下。  把 L(g) 對 g 做偏微分。    ## Voting 除了用來訓練各個 Classifier 的 Training Data 外,還要有個 Training Data 用來訓練 Final Classifier。 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up