logo
Loading...

Day49_HW_Blending:對於模型結果上傳Kaggle後的疑問(文長) - Cupoy

大家好,我個人在做完 Day49 之後對於結果有些疑問:這要從 Day22 開始說起。當時還在進行特...

day49,cross validation,kaggle,titanic

Day49_HW_Blending:對於模型結果上傳Kaggle後的疑問(文長)

2020/07/23 下午 06:37
機器學習共學討論版
張天恩
觀看數:117
回答數:2
收藏數:1
day49
cross validation
kaggle
titanic

大家好,我個人在做完 Day49 之後對於結果有些疑問:


這要從 Day22 開始說起。當時還在進行特徵工程的介紹,延續 Day21 的內容,該次作業是以鐵達尼號生存預測為例,讓我們初步了解何謂特徵工程(如下圖)


在該次作業的最後,有做出預測結果的範例程式碼供上傳 Kaggle


當時是用 Logistic Regression 當作 Baseline,得到的預測分數如下(另一個是我嘗試用隨機森林跑一遍的結果),可以看到精簡版的 Public Score 有大概 0.7416,與 Cross Validation 的分數 0.7979 沒有相差太多。


------------------------------------------------------------------------------

回到 Day49,內容是利用 Blending 的方法組合各種模型,讓預測能力更上一層樓。


稍微比較就能知道,這邊做的特徵工程顯然更為詳細,也將特徵從原本 10 個增加到 66 個,雖然說增加特徵有 Overfitting 的風險,但是從 Cross Validation 的結果看來,結果應該是有比較好(見下圖),在切分五份的情況下,各等分都能得到比之前稍微好一點的結果,約在 0.81 左右。(其他模型也都有超過 0.8 的分數)


然而在上傳 Kaggle 之後,得到的結果卻有點出乎意料。精心調整、做特徵工程的模型竟然遠比精簡版來的差。而且三個模型看起來做的都不好,也無法體現出模型 Blending 彼此互補的特性(也可能比例調得不好,但是倒也不置於三個 0.6 的模型調一調變成 0.8 吧)。


-----------------------------------------------------------------------------------------------------------------------

這邊想要問:

1. Day49 的特徵工程是否有用?如果有,可能是什麼原因造成 CV score 變好,但是 Public Score 卻變差?


* 我覺得一部份的原因可能是 Public Score 只使用了一半的 Test data 來評分,所以常造成在公佈 Private Score 後多數參賽者名次更動。但是分數實在差太多了,分數幾乎下降了 0.1,想知道是否有其他人有遇到這樣的問題,或者只是我自己搞錯了。

* 更正,Titanic: Machine Learning from Disaster 已經改成使用 100% 的訓練資料


2. 承接上面的問題,在訓練模型時,是否該以手上資料的 CV score 作為訓練的方向呢?


煩請同學/專家回答!

回答列表

  • 2020/07/24 下午 06:38
    Felix Pei
    贊同數:2
    不贊同數:0
    留言數:1

    同學您好,

    這個問題很好,Cross Validation的結果是依照目前的訓練資料集產生的結果,但如果官方

    Test data的性質與訓練資料相差太多時就會發生你提到的狀況 (做特徵工程的模型遠比精簡版來的差)。

    在實務競賽上大致有兩派主流作法:

    1- 用Public leaderboard score當成Blending權重參考

    2- 用Cross Validation當作Blending權重參考


    從機器學習的角度,應該用2,但如果官方的Test Data的性質與Train Data差異很大時,用1的方式分數可能會比較高。

    這種差異在競賽中是實際存在的,所以要用那一種就看實際狀況了。

  • 2020/07/27 下午 08:58
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    1. Day49 的特徵工程是否有用?如果有,可能是什麼原因造成 CV score 變好,但是 Public Score 卻變差?


    * 我覺得一部份的原因可能是 Public Score 只使用了一半的 Test data 來評分,所以常造成在公佈 Private Score 後多數參賽者名次更動。但是分數實在差太多了,分數幾乎下降了 0.1,想知道是否有其他人有遇到這樣的問題,或者只是我自己搞錯了。

    * 更正,Titanic: Machine Learning from Disaster 已經改成使用 100% 的訓練資料


    2. 承接上面的問題,在訓練模型時,是否該以手上資料的 CV score 作為訓練的方向呢?


    => Score 基本上都會受到採用的資料集影響,所以這個問題比較難回答。那一般來說,就是以 CV score  為目標啦,盡量讓模型可以有比較彈性/通用的的效果。