機器學習(2) -- 模型評估與選擇

2.1 經驗誤差與過擬合

錯誤率:分類錯誤的樣本數佔總樣本數的比例

精度 = 1 - 錯誤率

 

誤差:學習器的實際預測輸出與樣本的真實輸出之間的“差異”

 學習器在訓練集上的誤差稱爲“訓練誤差”或“經驗誤差”

 在新樣本上的誤差稱爲“泛化誤差”

 

當學習器把訓練樣本學得太好的時候,很可能把訓練樣本自身的一些特點當作了所有潛在樣本都會具有的一般性質,會導致泛化性能下降,即過擬合,欠擬合指對訓練數據的一般性質尚未學好

過擬合:學習能力過於強大。過擬合是機器學習面臨的關鍵障礙,各類學習算法都必然帶有一些針對過擬合的措施,但是無法徹底避免。

機器學習面臨的問題通常是NP難甚至更難的問題,而有效的學習算法必然是在多項式時間內運行完成,若可避免過擬合,則通過經驗誤差最小化就能獲得最優解,這就意味着我們構造性地證明了“P=NP”;因此,只要相信“P≠NP”,過擬合就不可避免。

欠擬合:學習能力低下

學習能力是否過於強大,是由學習算法和數據內涵共同決定的

無法直接獲得泛化誤差,訓練誤差由於過擬合的存在不適合作爲標準,於是有了模型評估與選擇方法

 

2.2 評估方法

留出法:數據集D劃分爲兩個互斥集合,訓練集S,測試集T,D=S+T,S∩T=∅,

訓練/測試集的劃分要儘可能保持數據分佈的一致性。

單次使用留出法得到的估計結果不夠穩定可靠,一般採用若干次隨機劃分、重複進行實驗評估後取平均值作爲留出法的評估結果

測試集小時,評估結果的方差較大,訓練集小時,評估結果的偏差較大

2/3~4/5的樣本作爲訓練

 

交叉驗證--K折交叉驗證

常用10、5、20

 k折交叉驗證通常要隨機使用不同的劃分重複P次,最終的評估結果是這P次k折交叉驗證結果的均值;常見10次10折交叉驗證

留一法:D中m個樣本,當k=m時,留一法,評估結果比較準確,受樣本規模變化影響小,但是計算複雜度又太高

 

上面兩個方法,由於保留了一部分樣本用於測試,因此實際評估的模型所使用的訓練集比D小,必然會引入一些因訓練樣本規模不同而導致的估計偏差。

於是,想找一種減少訓練樣本規模不同造成的影響,同時能比較高效的進行實驗估計的方法,自助法

 

自助法:D有m個樣本,對D有放回抽樣m次,得到D',D'訓練集,D\D'測試集,測試集約36.8%。這樣的測試結果亦稱“外包估計”

自助法適合數據集小,難以有效劃分訓練/測試集時很有用;能從初始數據中產生多個不同的訓練集,對集成學習有很大好處,但是改變了數據集分佈,會引入估計偏差。

初始數據量足夠,留出法和交叉驗證法更常用

 

調參與最終模型

在模型選擇完後,學習算法和參數配置已選定。此時應該用數據集D重新訓練模型,使用了所有m個樣本,這個纔是最終模型

測試數據:學得的模型在實際使用中遇到的數據稱爲測試數據

驗證集:模型評估與選擇中用於評估測試的數據集稱爲驗證集

 

2.3性能度量

什麼樣的模型是好的,不僅取決於算法和數據,還決定於任務需求

迴歸任務:最常用的性能度量是“均方誤差”

一般表述:

分類任務:錯誤率,精度,查準率,查全率,F1

 

查準率:準確率預測爲對的那些有多少真對了

查全率:召回率原本是對的那些有多少預測對了

P-R曲線:查準率、查全率曲線,查準率爲縱軸,查全率爲橫軸

P-R圖

 

平衡點(BEP):查準率= 查全率時的取值

直觀顯示學習器在樣本總體上的查全率、查準率,若一個學習器的P-R曲線被另一個學習器的曲線完全包住,則後者性能優於前者

若發生交叉則無法判斷

比較P-R曲線下面積的大小,一定程度表徵了查全率、查準率雙高的比例

F1度量:F1=(2×P×R)/(P+R)= ( 2×TP)/(樣例總數+TP-TN)

Fβ = F1=((1+β2)×P×R)/((β2×P)+R)

 

 

多個混淆矩陣的情況:

先在各個混淆矩陣上分別計算查準率、查全率,再計算平均值,得到宏查準率等

宏查準率,宏查全率,宏F1

先將各混淆矩陣對應元素平均,再基於這些平均值計算微查準率等

微查準率,微查全率,微F1

 

 

ROC曲線:全稱“ 受試者工作特徵”曲線,真正例率微縱軸,假正例率橫軸,對角線對應於“隨機猜測”模型,點(0,1)對應於將所有正例排在所有反例之前的“理想模型”

一個學習器的ROC曲線被另一個完全包住,則後者比前者性能好

AUC:ROC曲線下的面積

 

代價敏感錯誤率與代價曲線

規範化”是將不同變化範圍的值映射到相同的固定範圍中,常見的是[0,1],此時亦稱歸一化

在非均等代價下,ROC曲線不能直接反映出學習器的期望總體代價,而“代價曲線”則可達到該目的

 

2.4 比較檢驗

根據測試錯誤率估推出泛化錯誤率的分佈。

2.5 偏差與方差

yD爲x在數據集中的標記,y爲真實標記,有可能出現噪聲使得yD≠y,f(x;D)爲訓練集D上學得模型f在x上的預測輸出,爲學習算法的期望預測,則:

樣本數相同的不同訓練集產生的方差

噪聲

期望輸出與真實標記的差別,偏差

於是

也就是說,泛化誤差可分解爲偏差、方差和噪聲之和。

 

偏差度量了學習算法的期望預測與真實結果的偏離程度,即刻畫了學習算法本身的擬合能力;

方差度量了同樣大小的訓練集的變動所導致的學習性能的變化,即刻畫了數據擾動所造成的影響;

噪聲則表達了在當前任務上任何學習算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度。

 

偏差-方差分解說明,泛化性能是由學習算法的能力、數據的充分性以及學習任務本身的難度所共同決定的。

給定學習任務,爲了取得好的泛化性能,則需使偏差較小,即能夠充分擬合數據,並且使方差較小,即使得數據擾動產生的影響小

偏差-方差窘境

 

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