logo
Loading...

請問Day30的說明是什麼意思: 因為擬合(fit)與編碼(transform)需要分開, 因此不使用.get_dummy, 而採用 sklearn 的 OneHotEncoder - Cupoy

因為擬合(fit)與編碼(transform)需要分開, 因此不使用.get_dummy, 而採用 ...

ml100-2,ml100-2-d30

請問Day30的說明是什麼意思: 因為擬合(fit)與編碼(transform)需要分開, 因此不使用.get_dummy, 而採用 sklearn 的 OneHotEncoder

2019/05/18 下午 04:27
機器學習共學討論版
董景哲
觀看數:19
回答數:1
收藏數:0
ml100-2
ml100-2-d30

回答列表

  • 2019/05/20 下午 01:11
    陳明佑 (Ming You Chen)
    贊同數:1
    不贊同數:1
    留言數:0

    因為 Pandas 中的 .get_dummy, 

    相當於 OneHotEncoder 做了 fit_transform() : fit 與 transform 同時做

    (OneHotEncoder 的 fit : 調查出現過哪幾種值, 列順序 /transform : 將資料對上述值與順序做編碼)

    例如 [A,C,D,C,B,A,C], fit 就是算出 [A,C, D, B] 這個序列, transform 是轉獨熱編碼


    而葉編碼需要保留這個 fit 的序列, 拿去幫其他的資料算獨熱編碼, 

    不然即使同樣是出現ABCD, 順序也不同, 編出來的意義也不同, 這樣就出問題了

    所以我們需要用 sklearn 的 OneHotEncoder, 來做到分階段這件事情