有人認為AI距離我們太過遙遠,現在談論為時尚早;有人認為AI時代已經到來,我們應該抓住時代的紅利。那麼,AI到底在春天還是寒冬?
Author Archive
訓練集、驗證集、測試集(附:分割方法+交叉驗證)
數據在人工智能技術里是非常重要的!本篇文章將詳細給大家介紹3種數據集:訓練集、驗證集、測試集。
同時還會介紹如何更合理的講數據劃分為3種數據集。最後給大家介紹一種充分利用有限數據的方式:交叉驗證法。
先用一個不恰當的比喻來說明3種數據集之間的關係:
- 訓練集相當於上課學知識
- 驗證集相當於課後的的練習題,用來糾正和強化學到的知識
- 測試集相當於期末考試,用來最終評估學習效果
什麼是訓練集?
訓練集(Training Dataset)是用來訓練模型使用的。
在《一文看懂機器學習》里我們介紹了機器學習的7個步驟,訓練集(Training Dataset)主要在訓練階段使用。
什麼是驗證集?
當我們的模型訓練好之後,我們並不知道他的表現如何。這個時候就可以使用驗證集(Validation Dataset)來看看模型在新數據(驗證集和測試集是不同的數據)上的表現如何。同時通過調整超參數,讓模型處於最好的狀態。
驗證集有2個主要的作用:
- 評估模型效果,為了調整超參數而服務
- 調整超參數,使得模型在驗證集上的效果最好
說明:
- 驗證集不像訓練集和測試集,它是非必需的。如果不需要調整超參數,就可以不使用驗證集,直接用測試集來評估效果。
- 驗證集評估出來的效果並非模型的最終效果,主要是用來調整超參數的,模型最終效果以測試集的評估結果為準。
什麼是測試集?
當我們調好超參數後,就要開始「最終考試」了。我們通過測試集(Test Dataset)來做最終的評估。
通過測試集的評估,我們會得到一些最終的評估指標,例如:準確率、精確率、召回率、F1等。
擴展閱讀:《分類模型評估指標——準確率、精準率、召回率、F1、ROC曲線、AUC曲線》
如何合理的劃分數據集?
下面的數據集劃分方式主要針對「留出法」的驗證方式,除此之外還有其他的交叉驗證法,詳情見下文——交叉驗證法。
數據劃分的方法並沒有明確的規定,不過可以參考3個原則:
- 對於小規模樣本集(幾萬量級),常用的分配比例是 60% 訓練集、20% 驗證集、20% 測試集。
- 對於大規模樣本集(百萬級以上),只要驗證集和測試集的數量足夠即可,例如有 100w 條數據,那麼留 1w 驗證集,1w 測試集即可。1000w 的數據,同樣留 1w 驗證集和 1w 測試集。
- 超參數越少,或者超參數很容易調整,那麼可以減少驗證集的比例,更多的分配給訓練集。
交叉驗證法
為什麼要用交叉驗證法?
假如我們教小朋友學加法:1個蘋果+1個蘋果=2個蘋果
當我們再測試的時候,會問:1個香蕉+1個香蕉=幾個香蕉?
如果小朋友知道「2個香蕉」,並且換成其他東西也沒有問題,那麼我們認為小朋友學習會了「1+1=2」這個知識點。
如果小朋友只知道「1個蘋果+1個蘋果=2個蘋果」,但是換成其他東西就不會了,那麼我們就不能說小朋友學會了「1+1=2」這個知識點。
評估模型是否學會了「某項技能」時,也需要用新的數據來評估,而不是用訓練集里的數據來評估。這種「訓練集」和「測試集」完全不同的驗證方法就是交叉驗證法。
3 種主流的交叉驗證法
留出法(Holdout cross validation)
上文提到的,按照固定比例將數據集靜態的劃分為訓練集、驗證集、測試集。的方式就是留出法。
留一法(Leave one out cross validation)
每次的測試集都只有一個樣本,要進行 m 次訓練和預測。 這個方法用於訓練的數據只比整體數據集少了一個樣本,因此最接近原始樣本的分布。但是訓練複雜度增加了,因為模型的數量與原始數據樣本數量相同。 一般在數據缺乏時使用。
k 折交叉驗證(k-fold cross validation)
靜態的「留出法」對數據的劃分方式比較敏感,有可能不同的劃分方式得到了不同的模型。「k 折交叉驗證」是一種動態驗證的方式,這種方式可以降低數據劃分帶來的影響。具體步驟如下:
- 將數據集分為訓練集和測試集,將測試集放在一邊
- 將訓練集分為 k 份
- 每次使用 k 份中的 1 份作為驗證集,其他全部作為訓練集。
- 通過 k 次訓練後,我們得到了 k 個不同的模型。
- 評估 k 個模型的效果,從中挑選效果最好的超參數
- 使用最優的超參數,然後將 k 份數據全部作為訓練集重新訓練模型,得到最終模型。
k 一般取 10 數據量小的時候,k 可以設大一點,這樣訓練集佔整體比例就比較大,不過同時訓練的模型個數也增多。 數據量大的時候,k 可以設小一點。
人工智能、機器學習、深度學習在2019年的重要發展和2020的趨勢(研究篇)
2019年AI,數據科學,深度學習和機器學習的主要發展是什麼?您預計2020年會有哪些主要趨勢?
人工智能、機器學習、深度學習在2019年的重要發展和2020的趨勢(技術篇)
2019年AI,數據科學,深度學習和機器學習的主要發展是什麼?您預計2020年會有哪些主要趨勢?
「41頁PDF免費下」AI賦能前需要做哪些評估?
這是一個系列文章,從4個角度來評估一個問題:“我的業務要不要用 AI ?能不能用 AI?”
我的業務要不要用人工智能?引入AI前你需要評估的(四)
這是一個系列文章,從各個角度來評估一個問題:“我的業務要不要用 AI ?能不能用 AI?”本期評估角度——黑箱
我的業務要不要用人工智能?引入AI前你需要評估的(三)
這是一個系列文章,從各個角度來評估一個問題:“我的業務要不要用 AI ?能不能用 AI?”本期評估角度——學習
準備好數據以進行建模:特徵工程,特徵選擇,降維(第二部分)
機器學習算法也無法在大量不需要的雜項數據上產生預期的結果。因此,讓我們深入探討所有用於優化數據的選項。
為建模做好數據準備:特徵工程,特徵選擇,降維(第1部分)
機器學習算法也無法在大量不需要的雜項數據上產生預期的結果。因此,讓我們深入探討所有用於優化數據的選項。
我的業務要不要用人工智能?引入AI前你需要評估的(二)
這是一個系列文章,從各個角度來評估一個問題:“我的業務要不要用 AI ?能不能用 AI?”本期評估角度——數據。