logo
Loading...

請問下列程式中, 使用均值編碼, 驗證分數為1, 是不是太高了 - Cupoy

在HW23之中,我嘗試用均值編碼以及LogisticRegression做分析,跑出來的score卻...

ml100,均值回歸,ml100-d23

請問下列程式中, 使用均值編碼, 驗證分數為1, 是不是太高了

2019/03/27 下午 03:15
機器學習共學討論版
馮啟倫
觀看數:11
回答數:3
收藏數:1
ml100
均值回歸
ml100-d23

回答列表

  • 2019/03/28 下午 02:45
    陳明佑 (Ming You Chen)
    贊同數:2
    不贊同數:0
    留言數:1

    這個問題發生的原因, 在於其中兩個欄位 'Name' 與 'Ticket'

    這兩個欄位中的值, 因為幾乎沒有重複

    所以拿來做均值編碼時, 就會出現嚴重 overfitting 的情況

    也正因為如此, 在範例解答中, 我們會將這兩個欄位的均值編碼拿掉

    用在實際應用上時, 課程中的 smoothing (平滑化) 可以稍微平緩這樣的狀況

    但即使加上這些方式, 均值編碼還是很經常 overfitting 的

    所以使用上需要謹慎

  • 2019/04/03 下午 00:56
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:1
    留言數:0

  • 2019/04/03 下午 03:29
    陳明佑 (Ming You Chen)
    贊同數:1
    不贊同數:0
    留言數:0

    在訓練資料與目標資料有類似性質的特徵時, 就會很有用

    例如 :

    1. 訓練資料數量龐大, 或在樣本中很有代表性

    2. 原本的 test 資料, 就是將母體資料分群按比例抽取, 那麼兩者性質也會接近


    但是這些都是取決於資料的屬性, 所以需要比較驗證後才能得知

    此外, 性質不同的屬性, 就算各別 overfitting 了, 集成後也可能互相抵消


    如果不好用, Catboost 就不會拿來當作 categorical 欄位的預設編碼方式了