基礎概念
- 錯誤率:分類錯誤的樣本數占總數的比例。
- 准確率/精度:分類正確的樣本占總數的比例。
- 誤差:學習器的實際預測輸出與樣本的真實輸出之間的差異。
- 訓練誤差/經驗誤差:學習器在訓練集上的誤差。
- 泛化誤差:在新樣本上的誤差。
- 測試集:測試學習器對新樣本的判別能力。測試集應該盡量與訓練集互斥,即測試樣本盡量不在訓練集中出現、未在訓練過程中使用過。
- 測試誤差:作為泛化誤差的近似。
- 驗證集:模型評估與選擇中用於評估測試的數據集常稱為驗證集。用來進行模型選擇和調參(挑選超參數)。
- 超參數:開始學習過程之前設置值的參數,不是通過學習算法本身學習出來的。
- 過擬合:把訓練樣本自身的特點當作所有潛在樣本都會有的一般性質,導致泛化能力下降。過擬合同樣指的是訓練誤差和測試誤差之間的差距過大。
- 欠擬合:對訓練樣本的一般性質尚未學好。模型不能在訓練集上獲得足夠低的誤差。
留出法
- 概念:將數據集D划分為兩個互斥的集合,其中一個集合為訓練集S,另一個為測試集T,在S上訓練出模型后,用T來評估其測試誤差,作為對泛化誤差的估計。
- 訓練/測試集的划分要盡可能保持數據分布的一致性(即類別比例相似),避免因數據划分過程中引入的額外的偏差而對最終結果產生影響。如果從采樣的角度來看待數據集的划分過程,則保留類別比例的采樣方式通常稱為分層采樣。
- 在使用留出法的時候,一般要采用若干次隨即划分、重復進行實驗評估后取平均值作為留出法的結果。
- 一般來說,大約2/3~4/5的樣本用於訓練,其余用於測試。
交叉驗證法/k折交叉驗證
- 概念:先將數據集D划分為k個大小相似的互斥子集。每一次用k-1個子集的並集作為訓練集,剩下的一個子集作為測試集;這樣就可以獲得k組訓練/測試集,從而可進行k次訓練和測試,最終返回的是這k個測試結果的均值。
- 每一個子集Di都盡可能保持數據分布的一致性,即從D中通過分層采樣得到。
- k折交叉驗證通常要隨機使用不同的划分重復p次,最終的評估結果是這p次k折交叉驗證結果的均值。目的是減小因為樣本不同而引入的差別。
- 特例:留一法LOO
- 假定數據集D中包含m個樣本,若令k=m,則為交叉驗證法的一個特例,留一法。
- 優點:留一法不受隨機樣本划分方式的影響,因為m個樣本只有唯一的方式划分為m個子集,即每一個子集包含一個樣本;留一法使用的訓練集與初始數據集相比只少了一個樣本,也就是說留一法中被實際評估的模型與期望評估的用D訓練出的模型很相似。
- 缺點:在數據集比較大的時候,訓練m個模型的計算開銷可能是難以忍受的;留一法的估計結果也未必永遠比其他評估方法准確。
自助法/可重復采樣/有放回采樣
- 概念:以自主采樣法為基礎,給定包含m個樣本的數據集D,對它進行采樣產生數據集D’:每次隨機從D中挑選一個樣本,將其拷貝放入D',然后將該樣本放回數據集D中,使該樣本在下次采樣時仍優可能被;重復m次后,得到包含m個樣本的數據集D’。
- 樣本不被采到的概率:
\[\lim_{m\rightarrow\infty}(1-\frac{1}{m})^m = \frac{1}{e} ≈ 0.368 \]
- 包外估計:有一部分沒有在訓練集中出現的樣本用於測試產生的結果稱為包外估計。
- 優點:自助法在數據集較小、難以有效划分訓練/測試集時很有用;自助法能從初始數據集中產生多個不同的訓練集,這對集成學習等方法有很大的好處。
- 缺點:自助法產生的數據集改變了初始數據集的分布,這會引入估計偏差。
調參與最終模型
機器學習的兩類參數
- 算法的參數,也稱為超參數。數目一般在十個以內。通常由人工設定多個參數候選值后產生模型。
- 模型的參數。數目一般很多。通常是通過學習來產生多個候選模型。
調參的常規做法:對每一個參數選定一個范圍和變化步長,例如在[0,0.2]范圍內以0.05為步長,則實際要評估的候選參數值有5個。
最終提交的模型:給定包含m個樣本的數據集,為了進行評估測試,事實上我們只用了一部分的數據訓練模型。當模型選擇完畢后,應該用數據集D重新訓練模型,使用所有的m個樣本,這就是最終提交的模型。