簡(jiǎn)介
此章節(jié)介紹了對(duì)模型的評(píng)估方法戈二,以及對(duì)兩個(gè)或多個(gè)模型進(jìn)行比較的方法。
概念
錯(cuò)誤率(error rate):如果在 m 個(gè)樣本中有 a 個(gè)樣本分類錯(cuò)誤憋活,則錯(cuò)誤率為 E = a / m 逗栽。
精度(arrcuracy):精度為 1 - a / m慈格,即精度 = 1 - 錯(cuò)誤率吕晌。
誤差(error):學(xué)習(xí)器的實(shí)際預(yù)測(cè)輸出與樣本的真實(shí)輸出之間的差異稱為誤差蛋褥。其中,學(xué)習(xí)器在訓(xùn)練集上的誤差稱為訓(xùn)練誤差(training error)或經(jīng)驗(yàn)誤差(empirical error)睛驳,在新樣本上的誤差稱為泛化誤差(generalization error)烙心,在訓(xùn)練集(testing set)上的誤差被稱為測(cè)試誤差(testing error)。
過(guò)擬合(overfitting):學(xué)習(xí)器將訓(xùn)練樣本的性質(zhì)學(xué)得“太好”乏沸,過(guò)于擬合訓(xùn)練樣本而導(dǎo)致泛化性能下降淫茵,對(duì)于新的樣本無(wú)法做出正確的判別。
欠擬合(underfitting):學(xué)習(xí)器沒(méi)有學(xué)好訓(xùn)練樣本的一般性質(zhì)蹬跃,對(duì)樣本的擬合程度較低痘昌。
參數(shù)調(diào)節(jié)(parameter tuning):簡(jiǎn)稱調(diào)參展箱,即對(duì)算法的參數(shù)進(jìn)行調(diào)節(jié)棚饵。一般對(duì)每個(gè)參數(shù)選定一個(gè)范圍和變化步長(zhǎng)递递,例如在 [0, 0.2] 范圍內(nèi)以 0.05 為步長(zhǎng),則實(shí)際要評(píng)估的候選參數(shù)值有 5 個(gè)扼劈,從這 5 個(gè)參數(shù)值中選取最佳的 1 個(gè)作為最終的結(jié)果。
驗(yàn)證集(validation set):模型評(píng)估與選擇中用于評(píng)估測(cè)試的數(shù)據(jù)集稱為驗(yàn)證集菲驴。在研究對(duì)比不同算法的泛化性能時(shí)荐吵,我們用測(cè)試集上的判別效果來(lái)估計(jì)模型在實(shí)際使用時(shí)的泛化能力,而把訓(xùn)練數(shù)據(jù)另外劃分為訓(xùn)練集和驗(yàn)證集赊瞬,基于驗(yàn)證集上的性能來(lái)進(jìn)行模型選擇和調(diào)參先煎。
性能度量(performance measure):性能度量是衡量模型泛化能力的評(píng)價(jià)標(biāo)準(zhǔn)。對(duì)比不同模型的能力時(shí)巧涧,不同的性能度量通常會(huì)返回不同的結(jié)果薯蝎。
規(guī)范化(normalization):將不同變化范圍的值映射到相同的固定范圍中,常見(jiàn)的是 [0, 1]谤绳,此時(shí)亦稱歸一化占锯。
評(píng)估方法
留出法(hold-out):
將數(shù)據(jù)集 D 劃分為兩個(gè)互斥的集合,其中一個(gè)集合作為訓(xùn)練集 S缩筛,另一個(gè)作為測(cè)試集 T消略,即 D = S ∪ T, S ∩ T = ? 瞎抛。在 S 上訓(xùn)練出模型后艺演,用 T來(lái)評(píng)估測(cè)試誤差,作為對(duì)泛化誤差的估計(jì)。
留出法通常采用分層采樣(stratified sampling)對(duì)數(shù)據(jù)集進(jìn)行劃分胎撤,即在訓(xùn)練集 S 和測(cè)試集 T 中晓殊,正例和反例的數(shù)量應(yīng)當(dāng)相同。一般采用若干次隨機(jī)劃分哩照、重復(fù)進(jìn)行實(shí)驗(yàn)評(píng)估后取平均值作為留出法的評(píng)估結(jié)果挺物。
通常將 2/3 ~ 4/5 的數(shù)據(jù)劃分為訓(xùn)練集,將剩下的數(shù)據(jù)劃分為測(cè)試集飘弧。一般可以用 70% 作為訓(xùn)練集识藤,30% 作為測(cè)試集。
交叉驗(yàn)證法(cross validation):
將數(shù)據(jù)集 D 劃分為 k 個(gè)大小相似的互斥子集次伶,即 D = D1 ∪ D2 ∪ ... ∪ Dk痴昧,Di ∪ Dj = ? (i ≠ j)。每個(gè)子集 Di 盡可能保持?jǐn)?shù)據(jù)分布的異質(zhì)性冠王,即從 D 中通過(guò)分層采樣得到赶撰。每次用 k - 1 個(gè)子集的并集作為訓(xùn)練集,剩下的那個(gè)子集作為測(cè)試集柱彻,重復(fù) k 次后得到 k 個(gè)測(cè)試結(jié)果豪娜,取 k 個(gè)測(cè)試結(jié)果的平均值為最終的評(píng)估結(jié)果。通常把交叉驗(yàn)證法稱為k 折交叉驗(yàn)證(k-fold cross validation)哟楷,其中 k 最常用的取值是 10瘤载,即 10 折交叉驗(yàn)證;其他常用的 k 值有 5卖擅、20等鸣奔。
假設(shè)數(shù)據(jù)集 D 中包含 m 個(gè)樣本,令 k = m惩阶,則得到了留一法(Leave-One-Out挎狸,簡(jiǎn)稱 LOO)。
自助法(bootstrapping):
給定包含 m 個(gè)樣本的數(shù)據(jù)集 D断楷,每次隨機(jī)從 D 中挑選一個(gè)樣本拷貝放入(D 中仍有 m 個(gè)樣本)訓(xùn)練集 S锨匆,重復(fù) m 次后訓(xùn)練集 S 中就有了 m 個(gè)樣本,其中有一部分樣本會(huì)在 S 中多次出現(xiàn)冬筒。樣本在挑選過(guò)程中始終不被選擇到的概率為
取極限得
即數(shù)據(jù)集 D 中約有 36.8% 的樣本未出現(xiàn)在訓(xùn)練集 S 中统刮。取 D \ D' 為測(cè)試集 T,則 T 中擁有約 1 / 3 的樣本數(shù)據(jù)账千。這樣的測(cè)試結(jié)果侥蒙,亦稱包外估計(jì)(out-of-bag estimate)。
自助法在數(shù)據(jù)集較小匀奏、難以有效劃分訓(xùn)練/測(cè)試集時(shí)很有用鞭衩。然而,自助法產(chǎn)生的數(shù)據(jù)集改變了初始數(shù)據(jù)集的分布,這會(huì)引入估計(jì)偏差论衍。
性能度量
均方誤差(mean squared error):
回歸任務(wù)最常用的性能度量是均方誤差
更一般的瑞佩,對(duì)于數(shù)據(jù)分布 D 和概率密度函數(shù) p(·) ,均方誤差可以描述為
錯(cuò)誤率(error rate)與精度(accuracy):
對(duì)樣例集 D坯台,分類錯(cuò)誤率的定義為
精度定義為
更一般的炬丸,對(duì)于數(shù)據(jù)分布 D 和概率密度函數(shù) p(·) ,錯(cuò)誤率可以描述為
精度描述為
查準(zhǔn)率(precision)蜒蕾、查全率(recall)與 F1:
查準(zhǔn)率表示在所有被認(rèn)為是正確的樣例中稠炬,有多少個(gè)被正確分類的樣例;而查全率表示在所有本身即是正確的樣例中咪啡,有多少個(gè)被正確分類的樣例首启。
對(duì)于二分類問(wèn)題,分類結(jié)果的混淆矩陣(confusion matrix)為
查準(zhǔn)率 P 與查全率 R 分別定義為
我們根據(jù)學(xué)習(xí)器的預(yù)測(cè)結(jié)果對(duì)樣例進(jìn)行排序撤摸,排在前面的是學(xué)習(xí)器認(rèn)為最可能是正例的樣本毅桃,排在最后的是學(xué)習(xí)器認(rèn)為最不可能是正例的樣本。按此順序逐個(gè)把樣本作為正例進(jìn)行預(yù)測(cè)准夷,每次計(jì)算出相應(yīng)的查全率钥飞、查準(zhǔn)率,以查準(zhǔn)率為 y 軸衫嵌、查全率為 x 軸作圖读宙,則可以得到查準(zhǔn)率-查全率曲線,簡(jiǎn)稱 P-R 曲線渐扮。實(shí)際應(yīng)用中的 P-R 曲線通常是非單調(diào)、不平滑的掖棉,且在很多局部有上下波動(dòng)墓律,如
平衡點(diǎn)(Break-Even Point,簡(jiǎn)稱 BEP)是一個(gè)用于比較學(xué)習(xí)器的性能度量幔亥,它是查準(zhǔn)率 = 查全率時(shí)的取值耻讽,如圖中的 BEP 是 0.55∨撩蓿基于 BEP 值的高低可以比較出學(xué)習(xí)器的優(yōu)劣针肥。
但是 BEP 還是過(guò)于簡(jiǎn)化,更常用的是 F1 度量:
F1度量的一般形式——Fβ香伴,能讓我們表達(dá)出對(duì)查準(zhǔn)率/查全率的不同偏好慰枕,它定義為
其中 β > 0度量了查全率對(duì)查準(zhǔn)率的相對(duì)重要性。β = 1 時(shí)退化為標(biāo)準(zhǔn)的 F1即纲;β > 1 時(shí)查全率更重要具帮;β < 1 時(shí)查準(zhǔn)率更重要。
當(dāng)執(zhí)行多分類任務(wù)或在多個(gè)數(shù)據(jù)集上進(jìn)行訓(xùn)練/測(cè)試時(shí),每?jī)蓛深悇e的組合都對(duì)應(yīng)一個(gè)混淆矩陣蜂厅。對(duì)每個(gè)混淆矩陣都計(jì)算出相應(yīng)的查準(zhǔn)率和查全率匪凡,記為(P1, R1),(P2, R2)掘猿,...病游,(Pn, Rn),再計(jì)算平均值稠通,就得到了宏查準(zhǔn)率(macro-P)衬衬、宏查全率(macro-R),以及相應(yīng)的宏F1(macro-F1):
還可以先將每個(gè)混淆矩陣的對(duì)應(yīng)元素進(jìn)行平均采记,得到TP佣耐、FP、TN唧龄、FN的平均值兼砖,再基于這些值計(jì)算出微查準(zhǔn)率(micro-P)、微查全率(micro-R)既棺,以及相應(yīng)的微F1(micro-F1):
ROC 曲線(Receiver Operating Characteristic curve) 與 AUC(Area Under ROC Curve):
ROC 曲線全稱是受試者工作特征曲線讽挟,與 P-R 曲線相似,我們根據(jù)學(xué)習(xí)器的預(yù)測(cè)結(jié)果對(duì)樣例進(jìn)行排序丸冕,按此順序逐個(gè)把樣本作為正例進(jìn)行預(yù)測(cè)耽梅,每次計(jì)算出相應(yīng)的真正例率(True Positive Rate,簡(jiǎn)稱 TPR)胖烛、假正例率(False Positive Rate眼姐,簡(jiǎn)稱 FPR),以TPR為 y 軸佩番、FPR為 x 軸作圖众旗,則可以得到 ROC 曲線。
其中 TPR 與 FPR 的定義為
得到 ROC 圖:
其中 AUC 表示 ROC 曲線下的面積趟畏,用于比較學(xué)習(xí)器的性能優(yōu)劣贡歧,一般面積更大的學(xué)習(xí)器的性能更為優(yōu)良。AUC 可估算為
形式化地看赋秀,AUC 考慮的是樣本預(yù)測(cè)的排序質(zhì)量利朵,因此它與排序誤差有緊密聯(lián)系。給定 m+ 個(gè)正例和 m- 個(gè)反例猎莲,令 D+ 和 D- 分別表示正绍弟、反例集合,則排序損失(loss)定義為
因此有
代價(jià)敏感錯(cuò)誤率與代價(jià)曲線
在現(xiàn)實(shí)任務(wù)中著洼,常常有不同類型的錯(cuò)誤會(huì)造成不同的損失的情況晌柬,即錯(cuò)誤分類為正例造成的損失可能遠(yuǎn)遠(yuǎn)超過(guò)(或小于)錯(cuò)誤分類為反例造成的損失姥份,因此可為錯(cuò)誤賦予非均等代價(jià)(unequal cost)。
例如二分類代價(jià)矩陣:
在矩陣中年碘,若將第 0 類判別為第 1 類所造成的損失更大澈歉,則 cost01 > cost10;損失程度相差越大屿衅,cost01 與 cost10 的差值越大埃难。
此時(shí)的代價(jià)敏感(cost-sensitive)錯(cuò)誤率為
在非均等代價(jià)下,需要用代價(jià)曲線(cost curve)代替 ROC 曲線來(lái)反映出學(xué)習(xí)器的期望總體代價(jià)涤久。代價(jià)曲線圖的 x 軸是取值為 [0, 1] 的正例概率代價(jià)
其中 p 是樣例為正例的概率涡尘;y 軸是取值為 [0, 1] 的歸一化代價(jià)
ROC 曲線上每一點(diǎn)對(duì)應(yīng)了代價(jià)平面上的一條線段,設(shè) ROC 曲線上的點(diǎn)的坐標(biāo)為(FPR响迂,TPR)考抄,則先計(jì)算出 FNR = 1 - TPR,再在代價(jià)平面上繪制一條從(0蔗彤,F(xiàn)PR)到(1川梅,F(xiàn)NR)的線段,線段下的面積表示該條件下的期望總體代價(jià)然遏,所有線段的下界圍成的面積即為所有條件下學(xué)習(xí)器的期望總體代價(jià)贫途,如
比較檢驗(yàn)
統(tǒng)計(jì)假設(shè)檢驗(yàn)(hypothesis test)
通常以統(tǒng)計(jì)假設(shè)檢驗(yàn)方法來(lái)比較學(xué)習(xí)器性能。書(shū)中以錯(cuò)誤率為性能度量待侵,用 ? 表示丢早,即有泛化錯(cuò)誤率 ? 和 測(cè)試錯(cuò)誤率 ?^,則泛化錯(cuò)誤率為 ? 的學(xué)習(xí)器被測(cè)得測(cè)試錯(cuò)誤率為 ?^ 的概率為
解方程
可知秧倾,在 ? = ?^ 時(shí) P 最大怨酝,|? - ?^| 增大時(shí) P 減小。
二項(xiàng)檢驗(yàn)(binomial test)
我們可使用二項(xiàng)檢驗(yàn)來(lái)對(duì) ? 進(jìn)行假設(shè)檢驗(yàn)那先,如檢驗(yàn) ? <= ?0(即泛化錯(cuò)誤率是否不大于 ?0):
其中 1 - α 反映了結(jié)論的置信度(confidence)农猬。
t 檢驗(yàn)(t-test)
當(dāng)通過(guò)多次重復(fù)留出法或是交叉驗(yàn)證法等進(jìn)行多次訓(xùn)練/測(cè)試,我們會(huì)得到多個(gè)測(cè)試錯(cuò)誤率胃榕,此時(shí)可使用 t 檢驗(yàn)盛险。假定我們得到了 k 個(gè)測(cè)試錯(cuò)誤率瞄摊,則平均測(cè)試錯(cuò)誤率 μ 和方差 σ^2 為
考慮到這 k 個(gè)測(cè)試錯(cuò)誤率可看作泛化錯(cuò)誤率 ?0 的獨(dú)立采樣勋又,則變量
服從自由度為 k - 1 的 t 分布。
交叉驗(yàn)證 t 檢驗(yàn)
對(duì)兩個(gè)學(xué)習(xí)器 A 和 B换帜,我們可以用成對(duì) t 檢驗(yàn)(paired t-tests)來(lái)進(jìn)行比較檢驗(yàn)楔壤。先對(duì)每對(duì)測(cè)試錯(cuò)誤率求差,△ = ?A - ?B惯驼,若兩個(gè)學(xué)習(xí)器性能相同蹲嚣,則差值的均值應(yīng)該為 0 递瑰。因此,可根據(jù)差值△1隙畜,△2抖部,...,△k 來(lái)對(duì)學(xué)習(xí)器 A 與 B 性能相同做 t 檢驗(yàn)议惰,若變量
小于臨界值慎颗,則假設(shè)不能被拒絕,即認(rèn)為兩個(gè)學(xué)習(xí)器的性能沒(méi)有顯著差別言询。
5 x 2 交叉驗(yàn)證是做 5 次 2 折交叉驗(yàn)證之前隨機(jī)將數(shù)據(jù)打亂俯萎。同樣由上述檢驗(yàn)方法可得
變量
服從自由度為 5 的 t 分布。
McNemar 檢驗(yàn)
對(duì)二分類問(wèn)題运杭,可以獲得兩學(xué)習(xí)器分類結(jié)果的差別夫啊,如列聯(lián)表(contingency table):
若我們做的假設(shè)是兩學(xué)習(xí)器性能相同,則應(yīng)有 e01 = e10辆憔,那么變量 |e01 - e10| 應(yīng)當(dāng)服從正態(tài)分布撇眯。McNemar 檢驗(yàn)考慮變量
服從自由度為 1 的卡方分布,即標(biāo)準(zhǔn)正態(tài)分布變量的平方躁愿。
Friedman 檢驗(yàn)與 Nemenyi 后續(xù)檢驗(yàn)
假定我們用 D1叛本、D2、D3 和 D4 個(gè)數(shù)據(jù)集對(duì)算法 A彤钟、B来候、C 進(jìn)行比較。首先逸雹,使用留出法或交叉驗(yàn)證法得到每個(gè)算法在每個(gè)數(shù)據(jù)集上的測(cè)試結(jié)果营搅,然后在每個(gè)數(shù)據(jù)集上根據(jù)測(cè)試性能由好到壞排序,并賦予序值 1梆砸,2转质, ...;并對(duì)每一列的序值求平均帖世,得到平均序值休蟹,可得
然后,使用 Friedman 檢驗(yàn)來(lái)判斷這些算法是否性能都相同日矫,若相同赂弓,則它們的平均序值應(yīng)該相同。假定我們?cè)?N 個(gè)數(shù)據(jù)集上比較 k 個(gè)算法哪轿,令 ri 表示第 i 個(gè)算法的平均序值盈魁,則 ri 的均值和方差分別為 (k + 1) / 2 和 (k^2 + 1) / 12。變量
在 k 和 N 都較大時(shí)窃诉,服從自由度為 k - 1 的卡方分布杨耙。
然而赤套,上述這樣的原始 Friedman 檢驗(yàn)過(guò)于保守,現(xiàn)在通常使用變量
服從自由度為 k - 1 和 (k - 1)(N - 1) 的 F 分布珊膜。
若所有算法的性能相同這個(gè)假設(shè)被拒絕容握,則說(shuō)明算法的性能顯著不同。這是需進(jìn)行后續(xù)檢驗(yàn)(post-hoc test)來(lái)進(jìn)一步區(qū)分各算法车柠。常用的有 Nemenyi 后續(xù)檢驗(yàn)唯沮。
Nemenyi 檢驗(yàn)計(jì)算出平均序值差別的臨界值域
若兩個(gè)算法的平均序值之差超出了臨界值域 CD,則以相應(yīng)的置信度拒絕兩個(gè)算法性能相同這一假設(shè)堪遂。
偏差(bias)與方差(variance)
以回歸任務(wù)為例介蛉,學(xué)習(xí)算法的期望預(yù)測(cè)為
方差為
噪聲為
偏差為
算法的期望泛化誤差為
也就是說(shuō),泛化誤差可分解為偏差溶褪、方差币旧、噪聲之和。
小結(jié)
在此章節(jié)學(xué)到了如何對(duì)學(xué)習(xí)器的性能進(jìn)行評(píng)估吹菱、比較,為以后評(píng)估各種學(xué)習(xí)器的性能打好基礎(chǔ)彭则。各種的統(tǒng)計(jì)假設(shè)檢驗(yàn)方法也凸顯了現(xiàn)在機(jī)器學(xué)習(xí)中統(tǒng)計(jì)學(xué)的重要性鳍刷,從側(cè)面說(shuō)明了現(xiàn)在是統(tǒng)計(jì)學(xué)習(xí)主導(dǎo)潮流。要研究這一塊俯抖,相比牢固的概率論和統(tǒng)計(jì)學(xué)基礎(chǔ)是必不可少的输瓜。當(dāng)然,除此之外的各種數(shù)學(xué)基礎(chǔ)也是必要的芬萍。
在寫(xiě)此小記的時(shí)候突然發(fā)現(xiàn)方差竟然是以 n - 1 作為分母尤揣,而不是 n。好像我以前一直沒(méi)有注意到這個(gè)問(wèn)題柬祠。隨即去網(wǎng)上搜了下資料北戏,順便自己推了一下證明式,感覺(jué)寫(xiě)得還行漫蛔,貼出來(lái)留作紀(jì)念