天天看點

《機器學習》西瓜書讀書筆記2

2.1:經驗誤差與過拟合

通常我們把分類錯誤的樣本數占樣本總數的比例稱為“錯誤率”,相應的。精度即“1-錯誤率”。更一般的,我們把學習器的實際預測輸出和樣本的真實輸出之間的差異稱為“誤差”。

*需要注意,這裡所說的誤差均是指的是誤差期望。

學習器在訓練集上的誤差稱為“訓練誤差”或者“經驗誤差”,在新樣本上的誤差稱之為“泛化誤差”。

我們現在努力做得是把經驗誤差最小化。我們實際希望的,是在樣本上能表現出來的很好的學習器。為了達到這個目的,應該從訓練樣本上盡可能的學出适用于所有潛在樣本的“普遍規律”,這樣才能在遇到新樣本時做出正确的判别。但是當訓練樣本在訓練的時候已經把自身的一些特點當做了所有潛在樣本的一個普遍規律時,這樣就會導緻泛化能力的下降。這樣的問題在機器學習中就叫做“過拟合”。

李航在《統計機器學》中的過拟合定義:

過拟合是指在學習時選擇模型所包含的參數過多,以至于出現這一模型對已知資料預測的很好,但是對未知資料預測的很差的現象。可以說模型的選擇旨在避免過拟合并且提高模型的預測能力。對于模型的選擇,理想的解決方案當然是對候選模型的泛化能力進行評估,去選擇泛化誤差最小的那個模型。

有很多的因素導緻過拟合,最常見的情況是因為學習能力太過于強大,以至于把訓練樣本所包含的不太一般的資料都可以學到了,而欠拟合則是因為學習能力低下所造成的。而學習能力是否“過于強大”。是由學習算法和資料内涵共同決定的。

現在來說過拟合是機器學習面臨的關鍵障礙,各類學習算法都必然帶有一個針對過拟合的措施;然而必須認識到,過拟合是無法徹底避免的,我們所做的隻是緩解,或者說減少風險。

在書中提到了機器學習面臨的問題是NP難甚至更難。這裡的NP:一個能在多項式時間内驗證證明是否正确題目的難度。這裡的P顧名思義:一個能在多項式内證明題目的難度。并且NP是多年來無法解決的問題的總和,如果解決一個這個集合的問題,所有的問題也都解決了。

2.2:評估方法

通常情況下,我們可以通過實驗測試來對學習器的泛化誤差評估進行評估并進一步作出選擇。但是在現實任務中往往還會考慮時間開銷,存儲開銷,可解釋性等方面的因素。在這裡隻考慮泛化的誤差。

在實際情況下,我們一般會使用一個測試集來測試學習器對新樣本的判别能力,然後以測試機上的“測試誤差”作為泛化誤差的近似。

*應該注意,測試集應該盡可能與訓練集互相排斥,即訓練樣本盡量不在訓練集中出現,未在訓練過程中使用過。

當我們隻有一個包含m個樣例的資料集D時,即需要訓練,又要測試,應該通過對D的處理,從中産生訓練集S和測試集T。

2.2.1:留出法

“留出法”是直接将資料集D劃分為兩個互斥的集合,其中一個作為訓練集S,另一個作為測試集T,即D包括S和T,但是S和T的之間為空集。在S訓練處模型後,用T來評估測試誤差,對于泛化誤差的估計。

*需要注意的是,訓練或測試集的劃分要盡可能的保持資料分布的一緻性,避免因資料劃分過程引入額外的偏差進而對最終結果産生影響。因為如果S,T的樣本類别比例差别很大,則誤差估計将由于訓練/測試資料的分部的差異而産生差異。

*另一個要注意的問題是,即便在給定訓練/測試集樣本比例後,仍然産生多種的劃分方式對初始的資料D進行分割,因為這些不同的劃分将導緻不同的訓練/測試集,相應的,模型的評估的使用也會有差别,是以在單次使用留出法得到的估計結果往往不夠穩定可靠,在做出留出法時,一般要采用若幹次随機劃分,重複進行實驗評估後取平均值作為留出法的評估結果。同時可以得到估計結果的标準差。現在常用的方法是将大約60-70%的資料進行訓練,剩下的進行測試。一般而言,測試集至少包括30個樣例。

2.2.2:交叉驗證法

這個就是我們經常使用的K倍交叉驗證法,其實很大程度上,交叉驗證法評估結果的穩定性和保真性很大程度上取決于K的取值。

與留出法相似,将資料集D劃分為K個子集同樣存在于多種劃分方式,為減少因樣本劃分不同而引入的差别,K折交叉驗證通常要随機使用不同的劃分P次,最終的評估結果就是這次P次K折交叉驗證的結果的均值。

*10次10折交叉驗證與100次留出法都是進行了100次的訓練測試

留一法優缺點:

優點:留一法不受随機樣本劃分方式的影響,因為m個樣本隻有唯一的方式劃分為m個子集,并且每個子集中包含一個樣本;留一法的使用的訓練集和初始的資料集隻少了一個樣本。這就使得在絕大多數情況下,留一法中被實際評估的模型和用D期望評估的訓練模型很相似。是以留一法的評估結果往往被認為比較準确的。然而在資料比較大的時候,訓練M個資料模型的計算開銷是難以忍受的,并且根據NFL定理,留一法的估計結果也未必永遠比其他方法準确。

2.2.3:自助法

自助法在資料集小,難以有效劃分訓練測試集時很有用,此外,自助法能從初始資料集中産生多個不同的訓練集,這對內建學習等方法有很大的好處。然而,自助法産生的資料集改變了初始資料集的分步,這樣就會引入估計偏差。是以在資料量充足時,常用留出法和交叉驗證法。