# Day 48-50 ###### tags: `cupoy`, `ML100` :::info + + 2022-05-5 20:00 ::: [TOC] ## Day 48 Kaggle 競賽平台介紹 https://lemon-dolomite-062.notion.site/Day-48-Kaggle-a1a7944ecf254c568a142051fc57339a ## Day 49 混合泛化(Blending) + 資料工程中的集成 + 資料集成 v.s. 模型與特徵集成 + 混合泛化 ( Blending ) ### 什麼是集成(ensemble)? 優點為何? + 集成(ensemble) + 使用不同方式,結合多個/多種不同分類器,作為綜合預測的做法統稱 + 將模型截長補短,也可說是機器學習裡的 和議制 / 多數決 (當然可以將每個模型的結果加上weighting 記得 weighting 總和為1) +  + 資料面集成以及模型與特徵集成 ### 資料面集成 + 裝袋法( Bagging ) + 裝袋法顧名思義,是將資料放入袋中抽取,每回合結束後全部放回袋中重抽再搭配弱分類器取平均/多數決結果,最有名的就是前面學過的隨機森林 + + 提升法 ( Boosting ) + 希望能夠由後面生成的樹,來修正前面樹學不好的地方要怎麼修正前面學錯的地方呢?計算 Gradient!每次生成樹都是要修正前面樹預測的錯誤,並乘上 learning rate 讓後面的樹能有更多學習的空間  ### 模型與特徵集成 Voting / Blending / Stacking + 使用同一資料 + 不同模型,合成出不同預測結果  + 混合泛化 ( Blending ) 混合泛化就是將不同模型的預測值加權合成,權重和為 1 如果取預測的平均 or 一人一票多數決(每個模型權重相同),則又稱為 投票泛化(Voting)  reference: https://is.gd/kcENjL 作業: https://is.gd/LDwUyo ## Day 50 集成方法 堆疊泛化(Stacking) ### 重點 + 堆疊泛化(Stacking)的原理? + 先使用不同m個模型(base learners)訓練,模型間無關連性 + 將模型的輸出當成新模型(meta learner)的輸入(把模型當作下一階的**特徵編碼器**來使用),另外在訓練一個模型 + 訓練 m 個 base learners 的訓練資料和訓練 meta learner 的資料兩者的訓練資料要不同  + mlxtend 套件提供Stacking 實作 + [StackingClassifier類別](http://rasbt.github.io/mlxtend/user_guide/classifier/StackingClassifier/) + [StackingCVClassifier類別](http://rasbt.github.io/mlxtend/user_guide/classifier/StackingCVClassifier/) ### 作業 https://colab.research.google.com/drive/1yiTrKr5RQm6Gg4WwEU8iEiq4xghC8VVO ### 參考資料 + [如何在 Kaggle 首战中进入前 10%](https://dnc1994.github.io/2016/04/rank-10-percent-in-first-kaggle-competition/) http://rasbt.github.io/mlxtend/ midterm information https://lemon-dolomite-062.notion.site/Day-51-Kaggle-ML-5a369712800144c0bf2b8556fb9863a7
×
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