周志華 機器學習 效能度量

2021-08-31 19:04:12 字數 3450 閱讀 3483

2.5 效能度量

效能度量(performance measure)是衡量模型泛化能力的評價標準,在對比不同模型的能力時,使用不同的效能度量往往會導致不同的評判結果。本節除2.5.1外,其它主要介紹分類模型的效能度量。

2.5.1 最常見的效能度量

在回歸任務中,即**連續值的問題,最常用的效能度量是「均方誤差」(mean squared error),很多的經典演算法都是採用了mse作為評價函式,想必大家都十分熟悉。

在分類任務中,即**離散值的問題,最常用的是錯誤率和精度,錯誤率是分類錯誤的樣本數佔樣本總數的比例,精度則是分類正確的樣本數佔樣本總數的比例,易知:錯誤率+精度=1。

2.5.2 查準率/查全率/f1

錯誤率和精度雖然常用,但不能滿足所有的需求,例如:在推薦系統中,我們只關心推送給使用者的內容使用者是否感興趣(即查準率),或者說所有使用者感興趣的內容我們推送出來了多少(即查全率)。因此,使用查準/查全率更適合描述這類問題。對於二分類問題,分類結果混淆矩陣與查準/查全率定義如下:

初次接觸時,fn與fp很難正確的理解,按照慣性思維容易把fn理解成:false->negtive,即將錯的**為錯的,這樣fn和tn就反了,後來找到一張圖,描述得很詳細,為方便理解,把這張圖也貼在了下邊:

正如天下沒有免費的午餐,查準率和查全率是一對矛盾的度量。例如我們想讓推送的內容盡可能使用者全都感興趣,那只能推送我們把握高的內容,這樣就漏掉了一些使用者感興趣的內容,查全率就低了;如果想讓使用者感興趣的內容都被推送,那只有將所有內容都推送上,寧可錯殺一千,不可放過乙個,這樣查準率就很低了。

「p-r曲線」正是描述查準/查全率變化的曲線,p-r曲線定義如下:根據學習器的**結果(一般為乙個實值或概率)對測試樣本進行排序,將最可能是「正例」的樣本排在前面,最不可能是「正例」的排在後面,按此順序逐個把樣本作為「正例」進行**,每次計算出當前的p值和r值,如下圖所示:

p-r曲線如何評估呢?若乙個學習器a的p-r曲線被另乙個學習器b的p-r曲線完全包住,則稱:b的效能優於a。若a和b的曲線發生了交叉,則誰的曲線下的面積大,誰的效能更優。但一般來說,曲線下的面積是很難進行估算的,所以衍生出了「平衡點」(break-event point,簡稱bep),即當p=r時的取值,平衡點的取值越高,效能更優。

p和r指標有時會出現矛盾的情況,這樣就需要綜合考慮他們,最常見的方法就是f-measure,又稱f-score。f-measure是p和r的加權調和平均,即:

特別地,當β=1時,也就是常見的f1度量,是p和r的調和平均,當f1較高時,模型的效能越好。

有時候我們會有多個二分類混淆矩陣,例如:多次訓練或者在多個資料集上訓練,那麼估算全域性性能的方法有兩種,分為巨集觀和微觀。簡單理解,巨集觀就是先算出每個混淆矩陣的p值和r值,然後取得平均p值macro-p和平均r值macro-r,在算出fβ或f1,而微觀則是計算出混淆矩陣的平均tp、fp、tn、fn,接著進行計算p、r,進而求出fβ或f1。

2.5.3 roc與auc

如上所述:學習器對測試樣本的評估結果一般為乙個實值或概率,設定乙個閾值,大於閾值為正例,小於閾值為負例,因此這個實值的好壞直接決定了學習器的泛化效能,若將這些實值排序,則排序的好壞決定了學習器的效能高低。roc曲線正是從這個角度出發來研究學習器的泛化效能,roc曲線與p-r曲線十分類似,都是按照排序的順序逐一按照正例**,不同的是roc曲線以「真正例率」(true positive rate,簡稱tpr)為橫軸,縱軸為「假正例率」(false positive rate,簡稱fpr),roc偏重研究基於測試樣本評估值的排序好壞。

簡單分析影象,可以得知:當fn=0時,tn也必須0,反之也成立,我們可以畫乙個佇列,試著使用不同的截斷點(即閾值)去分割佇列,來分析曲線的形狀,(0,0)表示將所有的樣本**為負例,(1,1)則表示將所有的樣本**為正例,(0,1)表示正例全部出現在負例之前的理想情況,(1,0)則表示負例全部出現在正例之前的最差情況。限於篇幅,這裡不再論述。

現實中的任務通常都是有限個測試樣本,因此只能繪製出近似roc曲線。繪製方法:首先根據測試樣本的評估值對測試樣本排序,接著按照以下規則進行繪製。

同樣地,進行模型的效能比較時,若乙個學習器a的roc曲線被另乙個學習器b的roc曲線完全包住,則稱b的效能優於a。若a和b的曲線發生了交叉,則誰的曲線下的面積大,誰的效能更優。roc曲線下的面積定義為auc(area uder roc curve),不同於p-r的是,這裡的auc是可估算的,即aoc曲線下每乙個小矩形的面積之和。易知:auc越大,證明排序的質量越好,auc為1時,證明所有正例排在了負例的前面,auc為0時,所有的負例排在了正例的前面。

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

上面的方法中,將學習器的犯錯同等對待,但在現實生活中,將正例**成假例與將假例**成正例的代價常常是不一樣的,例如:將無疾病–>有疾病只是增多了檢查,但有疾病–>無疾病卻是增加了生命危險。以二分類為例,由此引入了「代價矩陣」(cost matrix)。

在非均等錯誤代價下,我們希望的是最小化「總體代價」,這樣「代價敏感」的錯誤率(2.5.1節介紹)為:

同樣對於roc曲線,在非均等錯誤代價下,演變成了「代價曲線」,代價曲線橫軸是取值在[0,1]之間的正例概率代價,式中p表示正例的概率,縱軸是取值為[0,1]的歸一化代價。

代價曲線的繪製很簡單:設roc曲線上一點的座標為(tpr,fpr) ,則可相應計算出fnr,然後在代價平面上繪製一條從(0,fpr) 到(1,fnr) 的線段,線段下的面積即表示了該條件下的期望總體代價;如此將roc 曲線土的每個點轉化為代價平面上的一條線段,然後取所有線段的下界,圍成的面積即為在所有條件下學習器的期望總體代價,如圖所示:

在此模型的效能度量方法就介紹完了,以前一直以為均方誤差和精準度就可以了,現在才發現天空如此廣闊~

機器學習效能度量

回歸評估指標 分類評估指標 聚類評估指標 參考常見的評估方法有 1.留出法 hold out 2.交叉驗證法 cross validation 3.自助法 bootstrap 將已有的資料集分為兩個互斥的部分 保證資料s與t的分布一致 測試集比例一般保持在1 3 1 5 將原始資料分成k組 一般是均...

機器學習 效能度量指標之查準率和查全率

在很多實際應用中,我們知道僅僅關心正確分類的結果是不夠的,並且,在資料偏斜比較嚴重的情況下,模型準確率可能具有相當程度的誤導性,我們也需要知道資料被錯誤分類的情況,以確認為此需要承擔的分類錯誤的代價。false positive假陽性和false negative假陰性,這兩種情況 查準率 prec...

機器學習之分類學習(效能分析)

在上面我們得到了乙個邏輯回歸模型,但我們需要這個模型的效能如何,也是知道這個模型學習的成果如何,要進行期末考試。考試,顧名思義是給模型發答卷,答卷就是前面我們提取出來的測試資料,我們把測試據中的結果抽空作為標準答案,讓模型答題,最後對照標準答案給分。使用訓練好的模型lr對x test進行 結果儲存在...