目錄
2.1 經驗誤差與過擬合
2.1.1 誤差相關概念
錯誤率(error rate) :即分類錯誤的樣本數佔樣本總數的比例,即如果在 m 個樣本中有 a 個樣本分類錯誤,則錯誤率 E= α/m.
精度:1-a/m 稱爲"精度" (accacy) ,即"精度=1 一錯誤率".常寫成百分比形式(1-a/m)*100%.
誤差:學習器的實際預測輸出與樣本的真實輸出之間的差異.
訓練誤差(經驗誤差):學習器在訓練集上的誤差.
泛化誤差(generalization error):在新樣本上的誤差
測 試數據:學得模型在實際使用中遇到的數據
驗證集 (validation set):模型評估與選擇中用於評估測試的數據集
2.1.2 過擬合(過配)與欠擬合(欠配)
過擬合:當學習器把訓練樣本學得"太 好"了的時候,很可能巳經把訓練樣本自身的一些特點當作了所有潛在樣本都會具有的一般性質,從而導致泛化性能下降的現象.-------不易克服,無可避免.(若可徹底避免過擬合, 則通過經驗誤差最小化就能獲最優解,這就意味着我們構造性地證 明瞭“ P=NP" ;因此 只要相信 "P≠NP ”,過擬合不可避免).
欠擬合:與過擬合相對,是指對訓練樣本的一般性質尚未學好.-------易克服.
產生原因:有多種因素可能導致過擬合,其中最常見的情況是由於學習能力過於強大, 以至於把訓練樣本所包含的不太一般的特性都學到了,而欠擬合則通常是由 於學習能力低下而造成的.
二者對比如圖所示:
2.2、評估方法
通常, 我們可通過實驗測試來 學習器的泛化誤差進行評估並進而做出選擇, 爲此, 需使用一個 "測試集 (testing set) 測試學習器對新樣本的判別 ,然後 測試 上的"測試誤差" (testing error) 作爲泛化誤差的近似,通常,我們假設測試樣本也是從樣本真實分佈 中獨立同分布採樣而得,但需注意 是,測試集應該儘可能與訓練 斥, 即測試樣本儘量不在訓練集中出現、未在練習過程中使用過.(好比同平常練習的題目拿去測驗一樣,這很可能檢測不出學生的真實水平)
2.2.1 留出法
"留出法" (hold-out) 直接將數據集D劃分爲兩個互斥的集合,其中一個 集合作爲訓練集 S,另一個作爲測試集 T,即D=S∪T ,S∩T=∅,在S上訓 練出模型後,用T來評估其測試誤差,作爲對泛化誤差的估計.
以二分類任務爲例,假定 包含 1000 個樣本,將其劃分爲 包含 700 個樣本,T包含 300 個樣本,用 進行訓練後,如果模型在 上有 90 個樣本分類錯 誤,那麼其錯誤率爲 (90/300) x 100% 30% ,相應的,精度爲 1- 30% = 70%.
注:訓練/測試集的劃分要儘可能保持數據分佈的一致性,則保留類別比例的採樣方式通常稱爲"分層採樣" .常見做法是將大約2/3~ 4/5 樣本用於訓練,剩餘樣本用 測試.
2.2.2 交叉驗證法
"交叉驗證法" (cross alidation) 將數據 集D分爲 個大小相似的 互斥子集,即D = D1 ∪D2∪... U Dk, Di n∩Dj = ∅ (í ≠j) .每個子集 Di儘可保持數據分佈的一致性,即從D中 通過分層採樣得到。 然 後,每次用 k-1 子集的並集作爲訓練集,餘 的那個子集作測試集;這樣就可獲得k
組訓練 /測試集,從而可進行k 次訓練和測試,最終返回的是這k個 測試結果 的均值.
注:交叉驗證法評估結果的穩定性和保真性在很大程 度上取決於k的取值,爲強調這一點,通常把交叉驗證法稱爲 “k折交叉驗證" (k-fold cross validation)
留一法:
假院定數據集 D中包含m個樣本 ,若令k=m 則得到了交叉驗證法的 一個特例: 留 一法(Leave- One-Out, 簡稱 LOO).
- 留一法的評估結果往往被認爲比較準確
- 缺陷是計算複雜度高.
2.2.3 自助法
在留出法和交叉驗證法中,由於 保留了一部分樣本用於測試,因此實際評估的模型所使用的訓練集比 小,這 必然會引入一些因訓練樣本規模不同而導致的估計偏差.留一法受訓練樣本規 模變化的影響較小,但計算複雜度又太高了,爲了減少訓練樣 本規模不同造成的影響,同時還能比較高效地進行實驗估計,提出了自助法.
原理:給定包含m個樣 本的數據集A我們對它進行採樣產生數據集 B: 每次隨機從A中挑選一個 樣本 將其拷貝放入 B 然後再將該樣本放回初始數據集 A中,使得該樣本在 下次採樣時仍有可能被採到;這個過程重複執行m次後,我們就得到了包含 m個樣本的數據集 B.以B作爲訓練,而沒被採樣(不包含在B)的樣本用來測試.
樣本在m次採 樣中始終不被採到的概率取極限得到:
- 自助法在數據集較小、難以有效劃分訓練/測試集時很有用
- 自助法產生的數據集改變了初始數據集的分佈,這會引入估計偏差
2.2.4 調參與最終模型
- 大多數學習算法都有些參數(parameter) 需要設定,參數配置不同,學得模 型的性能往往有顯著差別. 即調參.
- 學習算法的很多參數是在實數範圍內取值,因此,對每種參數 配置都訓練出模型來是不可行的.現實中常用的做法?是對每個參數選定一個 範圍和變化步長,例如在 [0 0.2] 範圍內以 0.05 爲步長,則實際要評估的候選參 數值有5 個.
- 先用一部分數據集訓練,另一部分測試,在得出模型後後(算法和參數),再用所有樣本進行訓練得出最終模型.
- 訓練數據另外劃分 爲訓練集和驗證集,基於驗證集上的性能來進行模型選擇和調參.
- 基於驗證集上的性能來進行模型選擇和調參.
2.3、性能度量
2.3.1 迴歸任務性能度量(待續)
要評估學習器 的性能,就要把學習器預測結果 f(x) 與真實標記 進行比較.
如均方誤差
即樣本值(yi,即真實標記)與平均值之差的平方的平均值
更一般的,對於數據分佈D和概率密度函數 p(.) 均方誤差可描述爲:
2.3.2 分類任務的性能度量
錯誤率與精度 :
錯誤率是分類錯誤的樣本數佔樣 本總數的比例,精度則是分類正確的樣本數佔樣本總數的比例,
對樣例集D,分類錯誤率定義爲:
注:II:表示示性函數,表示當括號內條件成立時取值爲1,否則爲0.常用於查準率和查全率等
精度則定義爲:
更一般的,對於數據分佈 D和概率密度函數 p(.) 錯誤率與精度可分別描 述爲:
查準率、查全率與Fl:
通俗來講,以挑選西瓜爲例:
- 查準率(準確率):即選出的好瓜中真正是好瓜的比率,即檢索出的信息中有多少比例是用戶感興趣的.
- 查全率(召回率):所有瓜中好瓜被選出的比率,即戶感興趣的信息中有多少被檢索出來了.
假設二分類問題分類結果混淆矩陣如下:
則查準率P 與查全率R 分別定義爲:
查準率和查全率是一對矛盾的度量,一般來說,查準率高時,查全率往往 偏低; 而查全率高時,查準率往往偏低,解讀如下:
若希望將好瓜儘可能多地選出來, 則可通過增加選瓜的數量來實現,如果將所有西瓜都選上,那麼所有的好瓜也必然都被選上了,但這樣查準率就會較低;若希望選 的瓜中好瓜比例盡可能 高,則可只挑選最有把握的瓜 但這樣就難免會漏掉不少好瓜,使得查全率較 低.
P- R 與 P-R圖:
在很多情形札我們可根據學習器的預測結果對樣例進行排序,排在前面 的是學習器認爲"最可能 "是正例的樣本,排在最後的則是學習器認爲"最 不可能"是正例的樣本.按此順序逐個把樣本作爲正例進行預測,則每次可以 計算出當前的查全率、 查準率以查準率爲縱軸、查全率爲橫軸作圖 ,就得到 了查準率 查全率曲線,簡稱 P- R曲線,顯示該 曲線的圖稱爲 P-R圖,如下圖:
- 若一個 習器的 P-R 曲線被另一個學習器的曲線完全"包住 則可斷言 後者的性能優於前者, 如圖學習器A的性能優於學習器 C.
- 如果兩個 學習器 P-R 曲線發生了交叉 ,例如圖中的A和B ,則難以一般性地斷 言兩者孰優孰劣.一個比較合理的判據 是比較 P-R 曲線下面積的大小.
- 而基於 BEP 的比較,可認爲學習器A優於B
"平衡點 (Break-Event Point ,簡稱 BEP)就是這樣一個度量,它是" 查準率= 查全率".
F1 度量:
但BEP 還是過於簡化了些,更常用的是 F1 度量:
注:P:查準率 R:查全率 TP:真正例 TN:真假例
F1 度量的一般形式 -Fß' 能讓我們表達出對查準率/查全率的不同偏 好,它定義爲
ß>O 度量了查全率對查準率的相對重要性.
- ß = 1 時退化爲標準的 F1.
- ß > 1時查全率有更大影響.
- ß < 1時查準率有更大影響.
當我們希望在 個二分類混淆矩陣上綜合考察查準率和查全率時.
一種直接的做法是先在各混淆矩陣上分別計算出查準率和查全率,再計算平均值,這樣就得到"宏查準 率" (macro-P)、"宏查全率" (macro-R) 、以及相應的"宏F1" (macro-F1).
還可先將各淚淆矩陣的對應元素進行平均,得到 TP,FP, TN ,FN的平均值,再基於這些平均值計算出"微查準 "(micro P) 、"微查全率" (micro-R) 和"微F1" (micro-F1):
2.3.3 ROC與 AUC
ROC
ROC 曲線的縱軸是"真正例率" (True Positive Rate ,簡稱 TPR) ,橫軸是"假正例率" (False Positive Rate ,簡稱 FPR) ,兩者分別定義爲:
AUC:
與P-R 圖相似:
- 一個學習器的 ROC 曲線被另一個學習器的曲線完全"包住", 則可斷言後者的性能優於前者;
- 若兩個學習器的ROC 曲線發生交叉,則難以-般性地斷言兩者孰優孰劣 此時如果一定要進 行比較 則較爲合理的判據是 比較 ROC 線下 的面積,即AUC (Area Under ROC Curve)
從定義可知, AUC 通過對 ROC 線下各部分的面積求和而得,假定ROC 曲線是由座標爲 {(Xl yl), (X2, Y2) , . . . , (xm, Ym)} 的點按序連接而形成(X1 =0, Xm = 1) 上圖(b) ,則 AUC 可估算爲:
形式化地看, AUC 考慮的是樣本預測的排序質量,因此它與排序誤差有緊 密聯繫.給定 M+個正例和M-個反例,令 D+ 和D-分別表示正、反例集合, 則排序"損失" (loss) 定義爲:
即考慮每一對正、反例,若正例的預測值小於反例,則記一個"罰分,若相等等,則記0.5 個"罰分"容易看出 損失(Lrank) 對應的是 ROC 曲線之上的面積:若 一個正例在 ROC 曲線上對應標記點的座標爲 (x,y),則x 恰是排序在其之前的 反例所佔的比例,即假正例率。因此有:
2.3 .4代價敏感錯誤率與代價曲線
爲權衡不同類型錯誤所造成的不同損失,可爲錯誤賦予"非均等代價" (unequal cost)。
比如:在現實任務中常會遇到這樣的情況:不同類型的錯誤所造成的後果不同。例如在醫療診斷中,錯誤地把患者診斷爲健康人與錯誤地把健康人診斷爲患者, 看起來都是犯了"一次錯誤"但後者的影響是增加了進→步檢查的麻煩,前 者的後果卻可能是喪失了拯救生命的最佳時機。
一般來說重要的是代價比值而非絕對值,比如5:1和50:10是一樣的。
代價敏感" (cost-sensitive) 錯誤率:就是在非均等代價下,考慮了代價的錯誤率。
代價曲線:
在非均等代價下, ROC 曲線不能直接反映出學習器的期望總體代價,而 "代價曲線" (cost curve) 則可達到該目的。代價曲線圖的橫軸是取值爲 [0 1] 的正例概率代價。
其中 是樣例爲正例的概率;縱軸是取值爲 [0 1] 的歸一化代價
其中 FPR 是假正例率, FNR == 1 - TPR 是假反例率.
代價曲線的繪製很簡單: ROC 由線上每一點對應了代價平面上的二條線段 ,設ROC曲線上點的座標爲 (TPR,FPR) ,則可相應計算出 FNR,然後在代價平面上繪製 一條從 (O,FPR) 到(l1,FNR) 的線段,線段下的面積即表示了該條件下的期望 總體代價;如此將 ROC 曲線土的每個點轉化爲代價平面上的一條線段,然後 取所有線段的下界,圍成的自積即爲在所有條件下學習器的期望總體代價,如圖:
2.4 比較檢驗
爲我們進行學習器性能比較提供了重要依據,主要有:
- 假設檢驗
- 交叉驗證 t 檢驗
- McNemar 檢驗
- Friedman 檢驗與 Nnenyi 後續檢驗
2.5 偏差與方差
對學習算法除了通過實驗估計其泛化性能,人們往往還希望瞭解它"爲什 麼"具有這樣的性能"偏差方差分解" (bias-variance decomposition) 是解 釋學習算法泛化性能的一種重要工具。