交叉檢驗 訓練資料,驗證資料和測試資料

2021-09-06 08:31:22 字數 983 閱讀 7980

最近在coursera上學習data analysis課程,課程論壇中有個帖子針對交叉檢驗(cross validation)中訓練資料集(train dataset),驗證資料集(validate dataset)和測試資料集(test dataset)展開討論,內容挺好的,記錄到這裡,作為備忘。

交叉檢驗(cross validation)

在資料分析中,有些演算法需要利用現有的資料構建模型,比如貝葉斯分類器,決策樹,線性回歸等,這類演算法統稱為監督學習(supervisied learning)演算法。構建模型需要的資料稱之為訓練資料(train data)。

模型構建完後,需要利用資料驗證模型的正確性,這部分資料被稱為測試資料(test data)。測試資料不能用於模型構建之中,只能用於最後檢驗模型的準確性。

訓練資料,驗證資料和測試資料

一般做**分析時,會將資料分為兩大部分。一部分是訓練資料,用於構建模型,一部分是測試資料,用於檢驗模型。但是,有時候模型的構建過程中也需要檢驗模型,輔助模型構建,所以會將訓練資料在分為兩個部分:1)訓練資料;2)驗證資料(validation data)。驗證資料用於負責模型的構建。典型的例子是用k-fold cross validation裁剪決策樹,求出最優葉節點數,防止過渡擬合(overfitting)。下面形式的描述一下前面提到的3類資料:

k次交叉檢驗(k-fold cross validation)

k次交叉檢驗的大致思想是將資料大致分為k個子樣本,每次取乙個樣本作為驗證資料,取餘下的k-1個樣本作為訓練資料。模型構建後作用於驗證資料上,計算出當前錯誤率。重複k次,將k次錯誤率平均,得到乙個總體的錯誤率。可以通過整體錯誤率,估計當前整體資料用於建模的錯誤率。

舉個例子,k = 10(常見情況),求出總體錯誤率為8.7%。那麼將當前的所有資料全部作為訓練資料,得到的模型的錯誤率90%的可能在9.7%左右。

參考資料

將資料集切分成「訓練 測試資料集」和交叉驗證

把資料集分為兩部分 分別用於訓練和測試 sklearn提供乙個將資料集切分成訓練集和測試集的函式。from sklearn.cross validation import train test splitxd train,xd test,y train,y test train test split...

訓練集 測試集 驗證集與交叉驗證

當我們訓練好乙個模型時,我們不只希望這個模型只在訓練集上表現的好,更重要的是希望這個模型後續能表現的好,這時候就需要測試集,用於評估這個模型的泛化能力。通常情況下,我們將資料以8 2的比例分割訓練集和測試集。在演算法模型中,我們還要使用正則化技術,避免過擬合。其中乙個做法就是使用100個不同超引數訓...

訓練集 測試集 驗證集與交叉驗證

初學者對於訓練集 train set 測試集 test set 驗證集 validation set 這三個概念和應用非常容易搞混,這裡我結合各種博文和書籍上的講解進行總結 參與訓練,模型從訓練集中學習經驗,從而不斷減小訓練誤差。這個最容易理解,一般沒什麼疑惑。不參與訓練,用於在訓練過程中檢驗模型的...