logo
Loading...

train / test split 資料切分問題 - Cupoy

請問Day30 中, 為什麼要特定多一組val_x , val_y 給Logistic model做...

ml100-2,ml100-2-d30

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 的關係可以參考這張圖:


     在真實的場景中,我們是拿不到測試資料的,所以通常都會把訓練資料切一塊當成測試來驗證用。