拿到機器學習數據后,該如何對數據進行划分?


在處理機器學習任務時,我們都需要使用數據,當然,有時候數據集可以很大,有時候數據集數量不是很理想,那么如何針對這些數據得出更加有效的模型呢?


大型數據集

Idea #1: 當我們拿到數據集后,如果將所有數據進行訓練的話

這樣會導致模型見過所有的數據,如果再用這些數據進行測試的話,效果會非常好,但我們知道,這其實是一種過擬合現象,我們的模型在當前數據集中,永遠表現很好。

Idea #2: 當我們拿到數據集后,將數據集划分成訓練集(train set)和測試集(test set)的話

這樣我們使用訓練集訓練模型,使用測試集來找到最佳超參數時,其實,這個test不能代表在全新的未見過的數據上的表現,這樣會導致,我們選擇的超參數,可能只是在這個測試集上表現良好。

 

最佳方案!!)Idea #3: 當我們拿到數據集后,將數據集划分成訓練集(train set)、驗證集(validation set)和測試集(test set)的話

我們可以使用訓練集來訓練模型,並使用驗證集來選擇合適的超參數,最后使用全新的測試集來衡量模型的泛化能力。


數據集不是很充分

當我們沒有大量數據時,沒辦法做上面那種任性的操作,我們可以嘗試一種新的辦法。

交叉驗證,這個時候就登場了,它其實和上面的思想差不多,就是我們單獨把測試集先抽出來,然后把剩余的部分切分,循環當訓練集和驗證集,上圖中黃色的就是驗證集,綠色的是訓練集。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM