三、評估方法
1、留出法(hold-out)
直接將數據集D划分為兩個互斥的集合,其中一個集合作為訓練集S,另一個作為測試集T,即D = S ∪ T,S ∩ T = ø 。在 S 上訓練出模型后,用 T 來評估其測試誤差,作為對泛化誤差的估計。
舉例:
以二分類任務為例,假定 D 包含1000個樣本,將其划分為 S 包含700個樣本,T 包含300個樣本,用 S 進行訓練后,如果模型在 T 上有9個樣本分類錯誤,那么其錯誤率為(90/300)* 100% = 30%,相應的,精度為1 - 30% = 70% 。
注意點:
① 訓練/測試集的划分要盡可能保持數據分布的一致性,避免因數據划分過程引入額外的誤差而對最終結果產生影響,例如在分類任務中至少要保持樣本的類別比例相似。如果從采樣(sampling)的角度看待數據集的划分過程,則保留類別比例的采樣方式通常稱為“分層采樣”(stratified sampling)。若S 、T中樣本類別比例差別很大,則誤差估計將由於訓練/測試數據分布的比例而產生偏差。
② 即便在給定訓練/測試集的樣本比例后,仍存在多種划分方式對初始數據集 D 進行分割。不同的划分將導致不同的訓練/測試集,相應的,模型評估的結果也會有差別。因此,單次使用留出法得到的估計結果往往不夠穩定可靠,在使用留出法時,一般要采用若干次隨機划分、重復進行實驗評估后取平均值作為留出法的評估結果。
③ 我們希望評估的是用 D 訓練出的模型的性能,但留出法需划分訓練/測試集,這就會導致一個窘境:若令訓練集 S 包含絕大多數樣本,則訓練出的模型可能更接近於用 D 訓練出的模型,但由於 T 比較小,評估結果可能不夠穩定准確;若令測試集 T 多包含一些樣本,則訓練集 S 和 D 差別就更大了,被評估的模型與用 D 訓練出的模型相比可能有較大差別,從而降低了評估結果的保真性。
2、K折交叉驗證
由於驗證數據集不參與模型訓練,當訓練數據不夠⽤時,預留⼤量的驗證數據顯得太奢侈。⼀種改善的⽅法是 K 折交叉驗證。
在 K 折交叉驗證中,我們把原始訓練數據集分割成 K 個不重合的⼦數據集,然后我們做K次模型訓練和驗證。每⼀次,我們使⽤⼀個⼦數據集驗證模型,並使⽤其它 K−1 個⼦數據集來訓練模型。在這 K 次訓練和驗證中,每次⽤來驗證模型的⼦數據集都不同。最后,我們對這 K 次訓練誤差和驗證誤差分別求平均。
舉例:
k 的值由我們自己來指定,以上為 5 折交叉驗證。
還是以考試為例,解釋上圖內容。交叉驗證,相當於把平常的作業題和中期的測試題合並成一個題庫,然后等分成幾份。圖中所示,將題庫分成了五份,第一行的意思是,先讓學生做后面的四份訓練題,再用第一份題進行測試。以此類推,再重復四次,每一次相當於重新進行學習。最后,取五次的平均成績,平均成績高,說明老師的教學方法好,對應到模型,就是超參數更好。
假定數據集 D 中包含 m 個樣本,若令k = m ,則得到交叉驗證法的一個特例:留一法。
留一法——n折交叉驗證(n是數據集中樣本的數目),即每次用一個樣本做驗證集,其余的樣本做訓練集。留一法的一個優點是每次迭代中都使用了最大可能數目的樣本來訓練。另一個優點是該方法具有確定性。
3、自助法
統計學中,自助法是一種從給定訓練集中有放回的均勻抽樣,也就是說,每當選中一個樣本,它等可能地被再次選中並被再次添加到訓練集中。
自助法以自助采樣法為基礎,給定包含 m 個樣本的數據集 D,我們對它進行采樣產生數據集 D’;每次隨機從 D 中挑選一個贗本,將其拷貝放入 D’,然后再將該樣本放回初始數據集 D 中,使得該樣本在下次采樣時仍有可能被采到;這個過程重復執行 m 次后,就得到了包含m個樣本的數據集 D’,這就是自助采樣的結果。
自助法在數據集較小、難以有效划分訓練/測試集時很有用;此外,自助法能從初始數據集中產生多個不同的訓練集,這對集成學習等方法有很大的好處。然而,自助法產生的數據集改變了初始數據集的分布,這會引入估計偏差。
集成學習:在機器學習的有監督學習算法中,我們的目標是學習出一個穩定的且在各個方面表現都較好的模型,但實際情況往往不這么理想,有時我們只能得到多個有偏好的模型(弱監督模型,在某些方面表現的比較好)。集成學習就是組合這里的多個弱監督模型以期得到一個更好更全面的強監督模型。集成學習潛在的思想是即便某一個弱分類器得到了錯誤的預測,其他的弱分類器也可以將錯誤糾正回來。集成方法是將幾種機器學習技術組合成一個預測模型的元算法,以達到減小方差、偏差或改進預測的效果。