2

我現在正在參加幾個Kaggle機器學習比賽,我只是有一個快速問題。爲什麼我們使用交叉驗證來評估我們算法在這些比賽中的有效性?爲什麼使用交叉驗證?

當然,在這些比賽中,您在公共排行榜中的得分,您的算法在哪裏與實際實時數據進行測試,可以讓您更準確地表示算法的有效性?

+6

此問題似乎是脫離主題,因爲它屬於http://stats.stackexchange.com/ – sashkello

回答

2

交叉驗證是模型構建的必要步驟。如果交叉驗證給你帶來不好的結果,那麼即使在實時數據上嘗試交叉驗證也沒有意義。你正在訓練和驗證的套件也是實時數據,不是嗎?所以,結果應該是相似的。沒有驗證你的模型,你對它的性能沒有任何瞭解。對訓練集提供100%準確性的模型可以在驗證集上給出隨機結果。

讓我重新迭代,交叉驗證不是替代實時數據測試,它是模型構建過程的一部分。

+0

感謝您的迴應。所以我的總體行動計劃應該是對我的模型進行初步的CV測試。如果這表現的很好,那麼我應該把它插入現場測試。如果它在CV中表現很好,而且在現場測試中表現不佳,那麼我很可能是過度配合。這兩個指標都需要給我一個模型如何運行的好主意。我理解正確嗎? –

+0

@SimonKiely這是一個粗略的想法,但它有很多(http://en.wikipedia.org/wiki/Cross-validation_(statistics))。一些技巧在這裏http://stats.stackexchange.com/questions/19048/what-is-the-difference-between-test-set-and-validation-set我也建議你瀏覽一些文獻,因爲它不是就像看起來一樣簡單...... – sashkello

+2

@SimonKiely如果你在訓練集上表現得非常好,那麼你已經成功地找到了將你的訓練集分開的功能。我們執行交叉驗證來「驗證」我們的訓練實例是真實世界數據集的*代表*。這是關鍵 - 如果我們可以在我們的訓練集上建立一個模型,並使用該模型成功預測一個獨立集(測試集),我們可以很有信心地說這個模型將推廣到現實世界的一套數據。 – willwest