《從機器學習到深度學習》筆記(4)劃分數據集

任何機器學習算法都是基於對已有數據集或環境的信息挖掘,要求將從現有數據學習獲得的模型可以適配於將來的新數據。算法

1. 訓練集(Training set)與測試集(Test set)網絡

很天然的,在評估模型能力的時候須要採用與模型訓練時不一樣的數據集,所以在訓練模型以前須要將已有數據集劃分紅如圖1-13的兩部分。app

圖1-13 訓練集與測試集dom

顧名思義,圖中的訓練集用於在訓練模型時使用,測試集用於評估模型準確率。通常訓練集與測試集一旦劃分就無需再變更,由於只有穩定的測試集才能用來衡量不一樣模型的準確率。一旦從新劃分兩個集合,那麼須要從新訓練全部模型並在新的測試集上進行評估。機器學習

2. 隨機採樣(Random Sampling)性能

通常來講兩個集合的劃分需加入隨機因子,使得每一個數據項有相等的機會被分到任一集合中。如不加入隨機因子,可能出現相似這樣的問題:學習

數據總體是一年的按時間排序的皮大衣銷售數據。不用隨機採樣策略的話,劃分後訓練集中只包括春、夏兩季的用戶數據;而測試集中是秋、冬季的數據。此時用春、夏季數據訓練的模型明顯沒法很好地預測秋、冬季銷售狀況。測試

同理,若是醫療診斷系統中訓練集與測試集有不一樣的病人年齡層分佈,那也沒法訓練出適配全部年齡層次人的診斷模型。優化

3. 分層採樣(Stratified Sampling)spa

劃分數據集時的另外一個常見陷阱是每種標籤的數據沒有均勻的被劃分到訓練集與測試集中。好比在醫療診斷系統中,若是將健康人羣都分到了訓練集,而有病況的人羣都被分到了測試集,那麼訓練出的模型確定會漏診,即將有病況的人預測爲健康人。

所謂的分層採樣就是一種在劃分訓練/測試集時保持標籤數據比例的採樣規則,如圖1-14所示。

圖1-14 分層採樣

圖中圓形、三角形、菱形分別表明三種數據標籤,分層採樣的要求是將全部類型的標籤等比例的劃分到不一樣數據集中。

4. 驗證集(Validation set)

驗證集是在某個模型的學習過程當中用來調試超參數的數據集。由於大多數算法有可配超參數(如神經網絡層數、EM類算法的最大迭代數等),因此驗證集在機器學習領域也很常見,其做用如圖1-15所示。

圖1-15 訓練集、驗證集與測試集

圖1-15中將圖1-13的訓練集又拆分紅兩部分,成爲訓練集和驗證集。驗證集的做用是在調試算法參數的不斷「訓練-驗證」迭代中驗證參數的性能,以達到選擇正確超參數的目的。由於驗證集只在備選算法學習時內部使用,能夠對每一個備選算法選取各自獨立的驗證集。

若有足夠多的已有數據,劃分三個子集的總體數量保持以下不等式關係能夠提升模型的泛化能力:

訓練集數量< 驗證集數量 < 測試集數量

也就是說當從小數據集訓練出的模型可以適配比其大的數據集時,才能更有把握的相信其學習到了一個廣泛適用的知識。

從機器學習,到深度學習

從深度學習,到強化學習

從強化學習,到深度強化學習

從優化模型,到模型的遷移學習

一本書搞定!

相關文章
相關標籤/搜索