通常,在訓練有監督的機器學習模型的時候,會將資料劃分為訓練集、驗證集和測試集,
劃分比例一般為0.6 : 0.2 : 0.2
對原始資料進行三個集合的劃分,是為了能夠選出效果(可以理解為準確率)最好的、泛化能力最佳的模型。
訓練集(training set)
作用是用來擬合模型,通過設定分類器的引數,訓練分類模型。後續結合驗證集作用時,會選出同一引數的不同取值,擬合出多個分類器。
驗證集(cross validation set)
作用是當通過訓練集訓練出多個模型後,為了能找出效果最佳的模型,使用各個模型對驗證集資料進行**,並記錄模型準確率。選出效果最佳的模型所對應的引數,即用來調整模型引數。如svm中的引數c和核函式等。
測試集(test set)
通過訓練集和驗證集得出最優模型後,使用測試集進行模型**。用來衡量該最優模型的效能和分類能力。即可以把測試集當做從來不存在的資料集,當已經確定模型引數後,使用測試集進行模型效能評價。
對原始資料進行三個資料集的劃分,也是為了防止模型過擬合。當使用了所有的原始資料去訓練模型,得到的結果很可能是該模型最大程度地擬合了原始資料,亦即該模型是為了擬合所有原始資料而存在。當新的樣本出現,再使用該模型進行**,效果可能還不如只使用一部分資料訓練的模型。
參考:
機器學習 訓練集 驗證集 測試集
為什麼要將資料集分為訓練集 驗證集 測試集三部分?對於很多機器學習的初學者來說,這個問題常常令人很迷惑,特別是對於驗證集和測試集的區別更讓人摸不到頭腦。下面,我談一下這三個資料集的作用,及必要性 訓練集 顯然,每個模型都需要訓練集,訓練集的作用很明顯,就是直接參與模型的訓練過程。測試集 測試集完全不...
機器學習中的訓練集 驗證集 測試集
訓練集用來訓練模型,即確定模型的權重和偏置這些引數,通常我們稱這些引數為學習引數。而驗證集用於模型的選擇,更具體地來說,驗證集並不參與學習引數的確定,也就是驗證集並沒有參與梯度下降的過程。驗證集只是為了選擇超引數,比如網路層數 網路節點數 迭代次數 學習率這些都叫超引數。比如在k nn演算法中,k值...
機器學習中的訓練集 驗證集 測試集
用來訓練分類器中的引數,擬合模型。會使用超引數的不同取值,擬合出多個分類器,後續再結合驗證集調整模型的超引數。當通過訓練集訓練出多個模型後,為了能找出效果最佳的模型,使用各個模型對驗證集資料進行 並記錄模型準確率。選出效果最佳的模型所對應的超引數,即用來調整模型超參。通過訓練集和驗證集得出最優模型後...