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訓練最終模型。
另外,我們把實際中遇到的數據成爲測試集,把評估模型時從訓練集中劃分出的數據集成爲驗證集。