## 訓練集 v.s. 驗證集 v.s. 測試集的差別 以下是 GPT-4O 對於訓練集、驗證集與測試集的介紹 1. 訓練集(Training set) 在訓練過程中,調整模型的權重、學習特徵,以便更好地擬合訓練資料。 ->學生在上課時學習知識的過程。 2. 驗證集(Validation set) 取自一部分的訓練集作為驗證集,調整模型的超參數、初步評估模型的能力。 ->學生在完成作業或模擬考試時,檢視自己的學習成果。 3. 測試集(Tetsing set) 在訓練與驗證完成後,用於評估模型在全新資料上的表現,測試模型的泛化能力。。 ->學生參加學測等大考時的測驗,用來評估最終的學習狀況。 ![image](https://hackmd.io/_uploads/SyfGC8d4A.png) ## 資料的劃分方法? 以下介紹兩種常用的資料劃分方法,分別是 Holdout validation 與 k-fold cross validation ### 1. Holdout method Step1. 將整個資料集分為訓練集、驗證集、測試集(如70%/15%/15%) Step2. 使用不同的機器學習演算法來訓練各種模型 Step3. 從驗證集上選擇表現最佳的模型 Step4. 在測試集上,測試該模型的最終能力 ### 2. k-fold cross validaiton 在 k-fold 的方法中,將資料切分為 k 等份,其中 k 是可以自行調整的,從下圖中可以看到,如果 k=3 也就是將訓練集切分成三等份,將二等份作為訓練資料、一等份作為驗證集,模型依序訓練共三次,最後把在驗證集上的 Error 例如 Mean Square Error(MSE) 全部加總並平均,即可當作對模型的評估方式。 ![image](https://hackmd.io/_uploads/SJzJ2LiER.png) ## 綜合,機器學習步驟一次看 在前面幾篇文章中,建立了模型挑選以及模型評估的概念,若還不清楚可以回去複習「如何訓練出好模型呢?」的文章,現在也建立了資料的劃分-訓練集、驗證集、測試集,能把機器學習的流程視為以下幾個步驟。 (前面還省略了收集資料、資料預處理等步驟...) Step1. 整個數據集劃分成訓練集、驗證集、測試集 Step2. 模型在訓練集上學習並「自動」調整參數(parameteres) Step3. 在驗證集上初步評估模型並「手動或自動」調整超參數(hyperparameters) Step4. 訓練結束後的模型在測試集上預測結果並評估泛化能力 其中,介紹了一個新名詞為「超參數(Hyperparameters)」,該數值是在訓練模型前就先自行設定完成,例如 batch size、learning rate 等;一般模型參數(parameters)是在訓練過程中根據訓練資料自動調整,例如權重(wieghts)、偏差(bias)等。 切記,如果不斷的使用驗證集和測試集會使其失去效果,也就是使用相同數據來決定超參數的設定或模型改進的次數越多次,即使在驗證集和測試集上表現優異,對模型的泛化能力而言(generalization)可能沒有太大的幫助。 ## 總結 在機器學習領域,必須清楚了解自己面對的問題屬於哪一種,例如分類或迴歸,對應到的輸入與輸出會有不同的表現形式,再根據演算法挑選適當的模型,也在上述介紹了資料的種類以及劃分方式,最後對於模型的建構以及每種資料扮演的角色有了基本的認識。 --- :::info 以上就是這篇文章「資料的劃分 - 訓練集、驗證集、測試集」的所有內容,第一次看的人會花比較多時間消化吸收,這是很正常的事情,若有任何問題,歡迎在下方與我聯繫、討論,接下來也會繼續分享相關文章,敬請期待。