train / test split 資料切分問題
2019/05/17 下午 07:25
機器學習共學討論版
Ray Xie
觀看數:8
回答數:2
收藏數:0
ml100-2
ml100-2-d30
請問Day30 中, 為什麼要特定多一組val_x , val_y 給Logistic model做training?
感覺最後都是利用test_x來做predict, 應該不會重疊到?
還是說有什麼原因需要將GradientBoostingClassifier 和 Logistic model 的training data分開呢?
謝謝!
回答列表
-
2019/05/17 下午 08:01陳明佑 (Ming You Chen)贊同數:2不贊同數:0留言數:1
因為所謂葉編碼+LR, 是需要兩階段的編碼
這邊需要用 train 來訓練梯度提升機, 讓梯度提升機當葉編碼的編碼器
然後再用 val 來訓練 Logistic Regression, 重新分配這些類別該對應多少機率
這兩個階段, 都必須要堅守 train / test split 的精神, 不然會是無效的驗證
(註 : train / test split 精神會在 Day34中說明, 同學可以理解成 : 訓練模型就像準備考試,
準備考試(train)與準備完後驗證(test)的兩組資料, 一定要分開(不然就是洩題, 考試就沒用了))
如果只有切成 train 與 test, 因為 train 已經用在葉編碼當中,
因此 Logistic Regression 再用 train, 就會造成學到的權重無效
(因為葉編碼的分法已經反映過 train 的資料特性, LR就學不到正確的權重了)
train / test split 的精神很重要, 也很容易忽略掉, 同學一定要謹記在心
-
2019/05/21 下午 02:15張維元 (WeiYuan)贊同數:不贊同數:留言數:
val_x , val_y 的關係可以參考這張圖:
在真實的場景中,我們是拿不到測試資料的,所以通常都會把訓練資料切一塊當成測試來驗證用。