機器學習的訓練集 驗證集和測試集

2021-09-20 21:15:39 字數 517 閱讀 3306

在機器學習中,最佳的資料分類情況是把資料集分為三部分,分別為:訓練集(train set),驗證集(validation set)和測試集(test set)。

訓練集很好理解就是訓練我們的模型。那麼驗證集和測試集有什麼作用?

首先需要了解的是在乙個機器學習模型中,模型的引數分為普通引數和超引數,普通引數比如神經網路的權重矩陣等等,是可以被訓練集所訓練出來的(也就是梯度下降演算法求出)。超引數比如網路的層數、網路結點數、學習速率等,這些引數不在梯度下降演算法的更新範圍內,需要使用驗證集來調參。

那也就是說,從狹義來講,驗證集沒有參與梯度下降的過程,也就是說是沒有經過訓練的;但從廣義上來看,驗證集卻參與了乙個「人工調參」的過程,我們根據驗證集的結果調節了迭代數、調節了學習率等等,使得結果在驗證集上最優。因此,我們也可以認為,驗證集也參與了訓練。那麼就很明顯了,我們還需要乙個完全沒有經過訓練的集合,那就是測試集,我們既不用測試集梯度下降,也不用它來控制超引數,只是在模型最終訓練完成後,用來測試一下最後準確率,以看看我們訓練出來的模型的泛化能力怎麼樣。

參考:

機器學習 訓練集 驗證集 測試集

為什麼要將資料集分為訓練集 驗證集 測試集三部分?對於很多機器學習的初學者來說,這個問題常常令人很迷惑,特別是對於驗證集和測試集的區別更讓人摸不到頭腦。下面,我談一下這三個資料集的作用,及必要性 訓練集 顯然,每個模型都需要訓練集,訓練集的作用很明顯,就是直接參與模型的訓練過程。測試集 測試集完全不...

機器學習中的訓練集 驗證集 測試集

訓練集用來訓練模型,即確定模型的權重和偏置這些引數,通常我們稱這些引數為學習引數。而驗證集用於模型的選擇,更具體地來說,驗證集並不參與學習引數的確定,也就是驗證集並沒有參與梯度下降的過程。驗證集只是為了選擇超引數,比如網路層數 網路節點數 迭代次數 學習率這些都叫超引數。比如在k nn演算法中,k值...

機器學習中的訓練集 驗證集 測試集

用來訓練分類器中的引數,擬合模型。會使用超引數的不同取值,擬合出多個分類器,後續再結合驗證集調整模型的超引數。當通過訓練集訓練出多個模型後,為了能找出效果最佳的模型,使用各個模型對驗證集資料進行 並記錄模型準確率。選出效果最佳的模型所對應的超引數,即用來調整模型超參。通過訓練集和驗證集得出最優模型後...