iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 20
0
AI & Data

跟top kaggler學習如何贏得資料分析競賽 系列 第 20

[Day 20] Regularization 正規化 - part I

  • 分享至 

  • xImage
  •  

Regularization 正規化定義

插播一下林軒田老師對正規化(Regularization)的想法,就是 overfitting 發生時,有可能是因為訓練的假設模型本身就過於複雜,能不能讓複雜的假設模型退回至簡單的假設模型呢?這個退回去的方法就是正規化。

換言之, Regularization 正規化就是保留所有的特徵值,降低參數數字,減弱較不重要的特徵值。

回到 coursera 的教材, mean encoding 跟 label encoding 比較

mean encoding : 以自身對應目標平均數進行编碼, 範圍在 0 ~ 1, 對複雜或非線性的特徵目標,平均數編碼越有效, 此編碼是接下來重點

label encoding : 生成第二列數據, 無相關性

https://ithelp.ithome.com.tw/upload/images/20190920/20108719ujcKfb4ugh.png
截圖自Coursera


Regularization 正規化 4 個方法

  1. CV loop: training set 內部做 CV /Cross Validation loop, 在眾多的學習模型中做選擇的方法就是 Cross Validation.
  2. smoothing (較為平滑的限制)
  3. 增加隨機噪音/雜訊
  4. Sorting and calculating expanding mean

CV /Cross Validation loop : (請回頭看 Day13 的 validation)

  1. 使用 K-Fold 約 4~5 折 (4-5 folds different dataset)
  2. 使用 LOO / Leave-one-out

https://ithelp.ithome.com.tw/upload/images/20190921/20108719UtDyweuReP.png
截圖自 Coursera


smoothing (較為平滑的限制)

以 α 超参数控制正規化數量, α 為 0時無正規化, 當 α 趨近無窮大, 就變成 globalmean. 因此 α 可視為可信任的類别大小, 在逞罰類別的做法都可視為 smoothing.

https://ithelp.ithome.com.tw/upload/images/20190921/201087194u6V1GAGiT.png
截圖自 Coursera


增加隨機噪音/雜訊 : 較繁瑣, 要一直微調


Sorting and calculating expanding mean

通常搭配 LOO (Leave-one-out) 一起, 有 4 特點

  1. Least amount of leakage
  2. No hyper parameters
  3. Irregular encoding quality
  4. Built-in in CatBoost : 已被內建在 CatBoost library 中
cumsum = df_tr.groupby(col)['target'].cumsum() - df_tr['target']
cumcnt = df_tr.groupby(col).cumcount()
train_new[col + '_mean_target'] = cusum/cumcnt

上一篇
[Day 19] HW/ SW
下一篇
[Day 21] Regularization 正規化 - part II
系列文
跟top kaggler學習如何贏得資料分析競賽 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言