周志華機器學習西瓜書速記第二章緒論模型評估與選擇(一)

2.1 經驗誤差與過擬合

錯誤率:m個樣本a個樣本分類錯誤,錯誤率爲E=a/m

精度 = 1 - 錯誤率,即:1-a/m

訓練誤差(經驗誤差):學習器在訓練集上的誤差。

泛化誤差:學習器在新樣本上的誤差。

通常來講,訓練誤差很小的學習器往往過擬合,這樣對新的樣本的泛化誤差回大很多。

於過擬合相對應的是欠擬合,這是指對訓練樣本的一般性質尚未學好。

2.2 評估方法

我們用一個測試集來測試學習器對新樣本的泛化能力,然後以測試集上的“測試誤差”作爲泛化誤差的近似。

注意:測試集應該與訓練集互斥。

2.2.1 留出法

留出法直接將數據集D劃分爲兩個相互斥的集合其中一個集合作爲訓練集S,另一個作爲測試集T,即D= S並T,S交T = 空集。在S上訓練出模型後,用T來測試,作爲對泛化誤差的估計。

2.2.2 交叉驗證法

先將數據集D劃分爲k個集合,D1,D2,D3...Dk,爲了保證每個子集與原數據集的分佈的一致性,故採用分層取樣的方法。

每次取k-1個集合作爲訓練集,另外剩餘的那個集合作爲測試集。這樣我們就得到K組測試/訓練集,返回結果爲K組結果的均值。

通常把稽查驗證法叫做“k折交叉驗證”,k通常取10.

對比留出法,同樣D劃分爲K個子集存在多種劃分方法,爲了極限因不同的劃分方法的所造成的誤差,我們隨機劃分p次,每次k組,被稱作p次k組交叉驗證法,返回值是p次的均值。

10次10折交叉驗證和100次留出法都是進行了100次訓練。

留一法

留一法是k折交叉驗證的特殊形式,若存在一個數據集D內含m個樣本令k = m,這樣每次訓練集只與原數據集少一個樣本,則訓練出的模型回與D訓練出的模型極大的相似,所以認爲留一法的精確度非常高。

但當訓練集的樣本量十分大的時候,留一法的開銷也同樣十分大,另外“沒有免費的午餐”告訴我們留一法估計結果也未必比其他的評估方法準確。

2.2.3 自助法  bootstrapping

以自助採樣爲基礎,給定包含m個樣本的集合D,對D進行m次自助採樣,生成一個包含m個樣本的新的集合D’。

自助採樣是一種有放回的均勻抽樣。

因此m次抽樣後D集合中有的樣本回多次出現在新數據集D'中,有的元素則始終不會被抽中。

始終不被抽中的概率爲(1-1/m)^m,對這個式子求極限可得到,當m趨近於無窮的時候,這個數趨近於1/e,約等於0.368,即通過大量的自助採樣法後,處死數據集D中約有36.8%的樣本仍未出現在採樣集合D'中。

因此,我們可以將D’作爲訓練集,D\D'作爲測試集,(\爲集合減法)這樣期望評估的模型和實際評估的模型都是使用m個樣本訓練得到的,而我們仍有36%的樣本未在訓練集中出現,用於測試,這樣的測試結果被叫做“包外估計”。

自助法的優缺點:

一、優點

1.自助法在數據集較小,難以郵箱劃分訓練集/測試集的時候很有用。

2.自助法能從初始數據集中產生多個不同的訓練集,對集成學習等方法有很大好處。

二、缺點

自助法產生的數據集甘比哪裏初始數據集的分佈,這會引入估計偏差。當數據量足夠時,一般使用留出法和交叉驗證法。

2.2.4 調參和最終模型

大多數學習算法都有些參數需要設定,參數對模型效果的影響巨大。

理論上調參的過程應當枚舉全部參數進行比較收益選擇,而實際上往往參數的取值是實數範圍內的取值,因此是無法窮舉全部參數可能的,而比較好的選擇是,首先對參數選定一個範圍和一個步長,最終候選參數可能是一個較少的數量,這往往是肌酸開銷與性能折中後的結果。

而大多性能比較好的算法,參數數量往往會比較多。例如,某算法需要三個參數,而每個參數的候選值有五個,就有125種調參方式,因此肌酸開銷是非常大的,以至於在很多應用中,調參對模型性能有關鍵的影響。

調參時往往訓練集D會留出部分數據進行評估。當一旦選定了最優的模型後則需要用全部的D訓練最終模型。

另外,我們把實際中遇到的數據成爲測試集,把評估模型時從訓練集中劃分出的數據集成爲驗證集。     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章