---
# System prepended metadata

title: Day 48-50
tags: [cupoy, ML100]

---

# 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)
    + ![](https://i.imgur.com/ydLHdY7.png)

      +    資料面集成以及模型與特徵集成
### 資料面集成
+   裝袋法( Bagging )
      +    裝袋法顧名思義，是將資料放入袋中抽取，每回合結束後全部放回袋中重抽再搭配弱分類器取平均/多數決結果，最有名的就是前面學過的隨機森林
      +    
+ 提升法 ( Boosting )
     + 希望能夠由後面生成的樹，來修正前面樹學不好的地方要怎麼修正前面學錯的地方呢？計算 Gradient!每次生成樹都是要修正前面樹預測的錯誤，並乘上 learning rate 讓後面的樹能有更多學習的空間
![](https://i.imgur.com/Q6VbxQm.png)

### 模型與特徵集成 Voting / Blending / Stacking
+ 使用同一資料 + 不同模型，合成出不同預測結果
![](https://i.imgur.com/1EQRYwz.png)

+ 混合泛化 ( Blending )
    混合泛化就是將不同模型的預測值加權合成，權重和為 1 如果取預測的平均 or 一人一票多數決(每個模型權重相同)，則又稱為 投票泛化(Voting)
    
   ![](https://i.imgur.com/STYYW3K.png)








reference:
https://is.gd/kcENjL

作業:
https://is.gd/LDwUyo

## Day 50 集成方法 堆疊泛化(Stacking)
### 重點

+ 堆疊泛化(Stacking)的原理?
	+ 先使用不同m個模型(base learners)訓練，模型間無關連性
	+ 將模型的輸出當成新模型(meta learner)的輸入(把模型當作下一階的**特徵編碼器**來使用)，另外在訓練一個模型
	+ 訓練 m 個 base learners 的訓練資料和訓練 meta learner 的資料兩者的訓練資料要不同

	![](https://i.imgur.com/8B2ILKZ.png)
    
+ 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