日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

训练集,测试集和验证集

發布時間:2023/12/31 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 训练集,测试集和验证集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Training Set, ?Test Set and Validation Set

在機器學習中我們大家一定都接觸過這三個數據集,那他們有什么區別,又分別應用于什么場景呢,接下來發表一下我個人的觀點。


訓練集與測試集

剛接觸機器學習的小伙伴肯定是最早使用的是訓練集和測試集,訓練集測試集加模型可以構成一個很初級的機器學習項目,那他們使用來干什么的呢。

訓練集,顧名思義它是用來訓練模型的,為了減少泛化誤差,我們需要通過訓練集不斷的訓練來使得我們的模型能夠更好的接近真實數據。

測試集,用來測試模型的準確性,我們將測試集應用于訓練集訓練好的模型,會得到一個模型的得分,例如混淆矩陣(Consufion Matrix),recall,f1等得分。

這里有幾個點需要注意

  • 一般我們劃分訓練集和測試集的比例是8:2
  • 為了防止數據窺探偏誤和數據污染,我們需要去保證訓練集和測試集的數據純潔性,也就是在工作流程中,我們不能使用在測試數據集上計算的得到的任何結果。我們在訓練時需要把測試集當成完全不存在的數據。

驗證集

當小伙伴更加進一步了解機器學習后,他們會發現還有一個叫驗證集的東西,聽起來和測試集差不多,就會有很多小伙伴很困惑,這里我來簡單介紹下我的看法。

我們知道我們在搭建一個模型之前會對模型的一些參數進行設置,我們稱之為超參數(HyperParameter)例如神經網絡的層數和每層的節點數,隨機森林的決策樹樹量等,這些參數也會極大的影響我們的模型得分,有專門的算法可以用來調整這些超參數,例如網格搜索、隨機搜索,貝葉斯優化等這些我們以后再提。

我們知道模型會通過訓練集的loss function,使用梯度下降來調節模型的參數,而超參數一旦確定要想更改就幾乎等于重新訓練一個模型,驗證集的其中一個作用就是,調節超參數使得模型泛化能力最強,根據幾組模型驗證集上的表現決定哪組超參數擁有最好的性能。


驗證集與測試集

驗證集(validation set): 查看模型訓練的效果是否朝著壞的方向進行。驗證集的作用是體現在訓練的過程。舉個栗子:通過查看訓練集和驗證集的損失值隨著epoch的變化關系可以看出模型是否過擬合,如果是可以及時停止訓練,然后根據情況調整模型結構和超參數,大大節省時間。

測試集(test set): 用來評估模最終模型的泛化能力。但不能作為調參、選擇特征等算法相關的選擇的依據。測試集的作用是體現在測試的過程。

對原始數據進行三個數據集的劃分,也是為了防止模型過擬合。當使用了所有的原始數據去訓練模型,得到的結果很可能是該模型最大程度地擬合了原始數據,亦即該模型是為了擬合所有原始數據而存在。當新的樣本出現,再使用該模型進行預測,效果可能還不如只使用一部分數據訓練的模型。

一般我們劃分數據集比例是訓練集:驗證集:測試集 = 6:2:2

當數據集很大時也可以訓練集:驗證集:測試集 = 98:1:1

總結

以上是生活随笔為你收集整理的训练集,测试集和验证集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。