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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

训练集,验证集,测试集分别是什么

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

一、前言

訓練集、驗證集和測試集這三個名詞在機器學習領域極其常見,但很多人并不是特別清楚,尤其是后兩個經常被人混用。

在有監督(supervise)的機器學習中,數據集常被分成2~3個,即:訓練集(train set),驗證集(validation set),測試集(test set)。

二、訓練集、驗證集、測試集

如果給定的樣本數據充足,我們通常使用均勻隨機抽樣的方式將數據集劃分成3個部分——訓練集、驗證集和測試集,這三個集合不能有交集,常見的比例是8:1:1。需要注意的是,通常都會給定訓練集和測試集,而不會給驗證集。這時候驗證集該從哪里得到呢?一般的做法是,從訓練集中均勻隨機抽樣一部分樣本作為驗證集。

訓練集
訓練集用來訓練模型,即確定模型的權重和偏置這些參數,通常我們稱這些參數為學習參數。

驗證集
而驗證集用于模型的選擇,更具體地來說,驗證集并不參與學習參數的確定,也就是驗證集并沒有參與梯度下降的過程。驗證集只是為了選擇超參數,比如網絡層數、網絡節點數、迭代次數、學習率這些都叫超參數。比如在k-NN算法中,k值就是一個超參數。所以可以使用驗證集來求出誤差率最小的k。

測試集
測試集只使用一次,即在訓練完成后評價最終的模型時使用。它既不參與學習參數過程,也不參數超參數選擇過程,而僅僅使用于模型的評價。
值得注意的是,千萬不能在訓練過程中使用測試集,而后再用相同的測試集去測試模型。這樣做其實是一個cheat,使得模型測試時準確率很高。

三、為何需要劃分

簡而言之,為了防止過度擬合。如果我們把所有數據都用來訓練模型的話,建立的模型自然是最契合這些數據的,測試表現也好。但換了其它數據集測試這個模型效果可能就沒那么好了。就好像你給班上同學做校服,大家穿著都合適你就覺得按這樣做就對了,那給別的班同學穿呢?不合適的概率會高吧。總而言之訓練集和測試集相同的話,模型評估結果可能比實際要好。

四、交叉驗證

之所以出現交叉驗證,主要是因為訓練集較小。無法直接像前面那樣只分出訓練集,驗證集,測試就可以了(簡單交叉驗證)。
需要說明的是,在實際情況下,人們不是很喜歡用交叉驗證,主要是因為它會耗費較多的計算資源。一般直接把訓練集按照50%-90%的比例分成訓練集和驗證集。但這也是根據具體情況來定的:如果超參數數量多,你可能就想用更大的驗證集,而驗證集的數量不夠,那么最好還是用交叉驗證吧。至于分成幾份比較好,一般都是分成3、5和10份。

交叉驗證的實現

首先我們給出下面的圖

圖上面的部分表示我們擁有的數據,而后我們對數據進行了再次分割,主要是對訓練集,假設將訓練集分成5份(該數目被稱為折數,5-fold交叉驗證),每次都用其中4份來訓練模型,粉紅色的那份用來驗證4份訓練出來的模型的準確率,記下準確率。然后再次在這5份中取另外4份做訓練集,1份做驗證集,再次得到一個模型的準確率。(五選四的話,只用做五遍就ok了) 直到所有5份都做過1次驗證集,也即驗證集名額循環了一圈,交叉驗證的過程就結束。算得這5次準確率的均值。留下準確率最高的模型,即該模型的超參數是什么樣的最終模型的超參數就是這個樣的。

好像Keras就是用的交叉驗證或者固定超參數(知乎鏈接)

參考鏈接:

1、
https://blog.csdn.net/cczx139/article/details/80266101

2、https://blog.csdn.net/jmh1996/article/details/79838917tdsourcetag=s_pctim_aiomsg

轉載自https://www.cnblogs.com/lfri/p/10546147.html

總結

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

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