1. 程式人生 > >機器學習——效能度量

機器學習——效能度量

  衡量模型泛化能力的標準就是效能能度量(performance measure)。以下分為兩種任務進行記錄。

迴歸任務

均方誤差

  迴歸任務最常用的效能度量就是均方誤差(mean squared error),即:

$\displaystyle E(f;\mathcal{D}) = \frac{1}{m}\sum\limits_{i=1}^{m}(f(x_i)-y_i)^2, x_i \in \mathcal{D}$

分類任務

錯誤率與精度

  錯誤率$ E(f;\mathcal{D})$與精度$ acc(f;\mathcal{D})$容易理解,錯誤率是預測正確的數量除以總數,精度就是預測錯誤的數量除以總數:

$\displaystyle E(f;\mathcal{D}) = \frac{1}{m}\sum\limits_{i=1}^{m}\Pi(f(x_i)\ne y_i) = 1-acc(f;\mathcal{D})$

查準率與查全率

  為了讓模型滿足一些更精確的要求,僅僅錯誤率和精度是不夠的,於是又提出了查準率和查全率。以二分類任務為例,首先由預測結果統計以下四個數量(稱作分類結果混淆矩陣):

真實情況 預測結果
正例 反例
正例 TP(True Positive 判斷對) FN(False Negative 判斷錯)
反例 FP(False Positive 判斷錯) TN(True Negative 判斷對)

  查準率就是預測為正例的樣本中正例所佔的比例:

$\displaystyle P = \frac{TP}{TP+FP}$

  查全率就是所有正例中被預測為正例的樣本所佔的比例:

$\displaystyle R = \frac{TP}{TP+FN}$

  可以發現它們是兩個矛盾的量,和概率論裡假設檢驗的兩種錯誤類似。我們不能一味地只追求其中一個指標,比如全判斷正確時查全率為1,或者只判斷一個最有可能的為正例時查準率為1,這樣另外一個指標就很差了。這兩種都是欠擬合的表現。

P-R曲線

  實際上分類任務就是將連續的數通過一個閾值變換得到離散的類別值,和迴歸任務的區別就在這裡。所以分類任務也可以像迴歸任務一樣將樣本的預測概率進行一個排序,將有最可能為正例的樣本排在最前,最不可能的排在最後。然後從前往後依次將樣本納入正例預測(其它為反例預測),每次納入都計算此時的$P$與$R$。從而在以$P$為縱座標,$R$為橫座標的座標系中獲得一系列的點,最後連線各點得到P-R曲線。如圖:

  P-R曲線可以用來表示模型劃分正反例的情況,也就是正例排在反例之前的傾向。曲線越向外擴張,說明正例更多是排在反例之前的(這正是我們想要的)。當所有正例都排在反例之前時,曲線就和座標軸連成一個(1,1)的正方形(此時模型只要找到正反例的分界線就能完美劃分正反例)。我們可以通過曲線與座標軸構成的面積是否更大,或平衡點($P$等於$R$時)是否更接近(1,1)來判斷模型的相對好壞。

  不過這個曲線畫的不太嚴謹,如果真的是按照以上的方法來畫曲線的話,查準率不可能在查全率為1的情況下為0。除非反例樣本比正例樣本多得多(可以近似為0),但若是這樣,曲線則應該是和反比例函式一樣向下凸的,而不是如圖向上凸。

F1度量

  平衡點用於考察模型對正反例的區分程度,考慮了模型判斷時正反例的可能性。而$F1$則是對$P$和$R$使用調和平均數進行了一個平均(據說是因為調和平均數更重視較小值才使用它):

$\displaystyle F1 = \frac{2}{\frac{1}{R}+\frac{1}{P}} = \frac{2PR}{P+R}$

  另外對於訓練側重不同,可以對這個調和平均進行加權:

$\displaystyle F_{\beta} = \frac{(1+\beta^2)PR}{\beta^2P+R}$

  用$\beta$可能不容易看,用另一種方式表示加權:

$\displaystyle \frac{a+b}{\frac{a}{R}+\frac{b}{P}}$

  上下同乘$\frac{PR}{b}$得:

$\displaystyle \frac{\frac{a+b}{b}PR}{\frac{a}{b}P+R}$ 

  最後令$\frac{a}{b}$為$\beta^2$即可得到$F_{\beta}$。可以判斷,$|\beta|<1$時,即$|a|<|b|$,則查準率$P$的權重更大,從而對模型的影響比查全率更大;$|\beta|>1$時則相反;$|\beta|=1$時$F_\beta$變為了$F_1$。

  當對模型進行多次測試(每次測試用一組測試集)並獲取多個混淆矩陣時,我們想綜合考察這些混淆矩陣。通常想到的做法就是求平均,因此,對$F1$有以下兩種平均方式。

  巨集$F1$:

$\displaystyle P_{macro}=\frac{1}{n}\sum\limits_{i=1}^{n}P_i$
$\displaystyle R_{macro}=\frac{1}{n}\sum\limits_{i=1}^{n}R_i$

 $\displaystyle F1_{macro} = \frac{2P_{macro} R_{macro}}{P_{macro}+R_{macro}}$

  微$F1$:

$\displaystyle P_{micro}=\frac{\overline{TP}}{\overline{TP}+\overline{FP}}$
$\displaystyle R_{micro}=\frac{\overline{TP}}{\overline{TP}+\overline{FN}}$

 $\displaystyle F1_{micro} = \frac{2P_{micro} R_{micro}}{P_{micro}+R_{micro}}$

  其中巨集$F1$是直接對$P$和$R$進行平均得到最終的$P$和$R$,微$F1$則是將所有的數量總和到一起再計算最終的$P$和$R$(如果橫線代表的是算術平均數的話,其它平均數就不是總和了)。

ROC與AUC

  ROC(Receiver Operating Characteristic)曲線與P-R曲線類似,也可以用來表示模型對樣本預測可能性排序的優劣(正例全都排在反例之前就是最優)。但是它和P-R曲線不同,它的起點和終點分別一定是(0,0)和(1,1),所以能更具體地反應這個情況(P-R曲線有時不一定是上圖的情況,具體情況比較複雜,所以不太好用)。ROC曲線分別定義橫縱座標為假正例率(FPR False Positive Rate),和真正例率(TPR True Positive Rate):

$\displaystyle {\rm FPR} = \frac{FP}{TN + FP}$
$\displaystyle {\rm TPR} = \frac{TP}{TP + FN}$

  可以發現$TPR$就是查全率$R$,但因為是在不同的圖裡,側重點不同,所以叫法也就不一樣了。和P-R曲線一樣,排好序從前往後納入正例,我們可以獲得這樣的折線圖:

  剛開始點在(0,0)的位置,因為沒有樣本被納為正例(全預設為反例)。隨後每納入一個正例樣本為正例,點就向上一格。而每納入一個反例樣本為正例,點就向右一格。最後達到(1,1),此時所有正反樣本都被納為正例。我們希望最好的情況就是正例樣本全排在反例樣本之前,所以這個折線此時應該先從(0,0)筆直往上到(0,1),再筆直往右到(1,1)。最壞的情況就是反例樣本全在正例樣本之前,曲線從(0,0)直線到(1,0),再直線到(1,1)。

  我們可以計算ROC曲線以下包圍的面積來比較模型的優劣,也就是AUC(Area Under ROC Curve)。這個面積實際上就是排在每一個正例樣本之後的反例樣本數量$x_i$的總和,再除以反例樣本總數$n$與正例樣本的總數$m$(除以總數變成概率):

$\displaystyle {\rm AUC} = \frac{1}{nm}\sum\limits_{i=1}^{m}x_i =\sum\limits_{i=1}^{m} \frac{x_i}{n}\times\frac{1}{m}$ 

  其中,$\displaystyle\frac{x_i}{n}\times\frac{1}{m}$ 面積範圍如圖中紅框。$\displaystyle\frac{x_i}{n}$為寬,$\displaystyle\frac{1}{m}$為高:

  通常測試的樣本的量是很大的,所以折線通常會變成一個圓潤的曲線:

  這時,因為樣本的量很大,曲線的形狀就只和模型的效能(將正例排在反例之前)相關了(和樣本中正例的比例無關)。並且測試量大的情況下不會因為一些噪聲點而使影象出現大的偏差。比如當測試量比較小的時候,測試集1不湊巧幾個正例被排在了反例之前,而測試集2比一少了幾個這樣的情況。由於測試量小,二者畫出來的折線相差就很大了。
  下圖是樣本總量為100000,正例樣本率分別為10%和90%的兩條ROC曲線(因為沒有真的訓練出模型,這裡將每個正例樣本的概率設為以0.8為均值,0.55為標準差的正態分佈上的隨機數;反例樣本的概率設為均值為0.2的相同分佈上的隨機數):

  下圖是樣本總量為1000,正例樣本率分別為10%和90%的兩條ROC曲線:

  可以看到,大樣本量下,正例率對ROC曲線的影響微乎其微(實際上它影響的也就是每次向上、向右走的步伐大小而已,對曲線總體趨勢的影響在即使小樣本量上也沒有),極限情況就是無影響(當然正例率不能為0或1這種極限值)。

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

  模型總是會判斷出錯的,對於二分類模型的出錯,可以分為兩種情況:1.正例判斷為反例、2.反例判斷為正例。根據實際情況,這兩種錯誤的代價通常是不同的。所以要分別定義不同的代價,有以下代價矩陣:

真實類別 預測類別
0類 1類
0類 0 $C_{01}$
1類 $C_{10}$ 0

  代價的絕對值大小並沒有實際意義,有意義的是他們的比值$\frac{C_{01}}{C_{10}}$,即二類錯誤的嚴重性比重。設樣本為0類的概率為$p$,第一類錯誤和第二類錯誤的概率為條件概率,定義如下:

$P_{01} = P(Judge=1|Sample=0)$
$P_{10} = P(Judge=0|Sample=1)$

學習器與分類器

  為了後面便於辨認,區分一下分類器與學習器。學習器是能夠給測試樣本進行排序的模型(比如給樣本設連續的值,值越大表示它為正例的可能性越大,再進行排序);分類器是確定了閾值的學習器(連續值大於閾值為正例,小於閾值為反例)。而確定了閾值也就確定了犯錯的概率,為什麼這麼說呢?如下圖:

   假設學習器關於0類和1類樣本的預測值的概率密度分別是上圖的紅線和藍線。比如這裡閾值取為0(閾值取定,學習器進化為分類器),左邊淡藍色面積就是分類器把0類樣本預測為1類的犯錯概率,右邊淡橙色面積就是分類器把1類樣本預測為0類的犯錯概率,也就是這兩個犯錯概率由閾值確定而確定了。而當其中一個犯錯概率確定時,顯然閾值和另一個犯錯概率也確定了。因此,這三個值在一個學習器(注意!不是分類器,分類器已經確定這三個值了)中是一一對應的。正如ROC整條曲線代表學習器在閾值變化時的$TPR$和$FPR$,而曲線上每個點表示在該閾值下變成的分類器的$TPR$和$FPR$。

樣本在先驗概率p下於分類器的期望代價

  對於某個樣本,在某個分類器(即固定了閾值的學習器)與某個固定的$p$下,它的期望代價為:

$\displaystyle\mathop{E(C)}= \sum\limits_{i=0}^{1}\sum\limits_{j=0}^{1} P(Sample=i)P(Judge=j|Sample=i)C_{ij}=pP_{01}C_{01} +  (1-p)P_{10}C_{10}$

  又因為代價的絕對值沒有實際意義,所以對它進行歸一化:

 $\displaystyle E(C)_{norm}=\frac{P_{01}pC_{01} +  P_{10}(1-p)C_{10}}{p C_{01} +  (1-p)  C_{10}}$

當p未知且服從均勻分佈時,樣本於分類器的期望代價

  我們可以將歸一化期望代價與$p$分別做為縱座標與橫座標,以$p$為自變數可得一條曲線,如下圖:

  對曲線下方進行積分,計算面積。表示正例樣本概率的概率分佈為(0~1)的均勻分佈時,樣本在這個分類器上的期望代價:

$\displaystyle\mathop{E[E(C)_{norm}]}\limits_{p\sim U(0,1)}=\int_{0}^{1} E(C)_{norm}P(p) dp = \int_{0}^{1} \frac{P_{01}pC_{01} +  P_{10}(1-p)C_{10}}{p C_{01} +  (1-p)  C_{10}} dp $ 

樣本於整個學習器的期望代價

  對於上面求得期望,這個期望可以被看做關於閾值(兩個錯誤率)的函式。所以我們還可以再在這個閾值上進行求期望。對於學習器,我們可以給它取把所有的閾值都取個遍。對於每個閾值(對應一個分類器與ROC曲線上的一點),都能在圖上畫出一條以$p$為自變數的期望代價曲線,如圖(因為電腦效能,ROC曲線只取了10000個樣本):

  所有的曲線在圖中產生了一個下界曲線,即學習器的代價曲線。這個下界曲線的每一點,表示在該$p$下,樣本於分類器(學習器取任意閾值)的最小期望代價。就是說,學習器在該曲線上,對於每個$p$,都取到了最優閾值(最優分類器)。那麼它的面積就是:對於$p\sim U(0,1)$,分類器的最小期望代價:

$\displaystyle\mathop{E\{\min_{threshold}[E(C)_{norm}]\}}_{p\sim U(0,1)} = \int_{0}^{1} \min_{threshold}[E(C)_{norm}] dp = \int_{0}^{1} \min_{P_{01},P_{10}}[ \frac{P_{01}pC_{01} +  P_{10}(1-p)C_{10}}{p C_{01} +  (1-p)  C_{10}} ] dp$,

其中$P_{10}$和$P_{01}$對應一個$threshold$

  或者把它看做學習器的一個指標,稱之為學習器的期望總體代價。(搞得這麼複雜,這些代價的定義實際上也就是一個相對的值,在對學習器進行比較時,我們可以用這個進行比較)

  西瓜書中的圖是直線(可能為了更直觀),但是橫座標變得很複雜,是$p$先乘代價再歸一化。即所謂的正例概率代價:

$\displaystyle P(+)cost = \frac{pC_{01}}{pC_{01}+(1-p)C_{10}}$

  導致後面計算的期望代價(在這個複雜的橫座標上積分面積)的意義我都有點搞不明白,而且查閱的資料一般橫座標也是用$p$。但是我認為對於評價學習器來說,用哪個都是一樣的。因為都是相對的量,而且趨勢也是相同的。影象如下圖:

相關推薦

周志華 機器學習 效能度量

2.5 效能度量 效能度量(performance measure)是衡量模型泛化能力的評價標準,在對比不同模型的能力時,使用不同的效能度量往往會導致不同的評判結果。本節除2.5.1外,其它主要介紹分類模型的效能度量。 2.5.1 最常見的效能度量 在迴歸任務中,即預測連續值的問題,最常

機器學習效能度量指標:ROC曲線、查準率、查全率、F1

錯誤率 在常見的具體機器學習演算法模型中,一般都使用錯誤率來優化loss function來保證模型達到最優。 \[錯誤率=\frac{分類錯誤的樣本}{樣本總數}\] \[error_rate=\frac{1}{m} \sum_{i=1}^{m} I(f(x_{i})\neq y_{i})\] 但是錯誤

機器學習——效能度量

  衡量模型泛化能力的標準就是效能能度量(performance measure)。以下分為兩種任務進行記錄。 迴歸任務 均方誤差   迴歸任務最常用的效能度量就是均方誤差(mean squared error),即: $\displaystyle E(f;\mathcal{D}) = \frac{1}{m}

機器學習效能指標(ROC、AUC、)

混淆矩陣 TP(真正樣本數): 預測是正樣本(positive),預測正確(ture)的個數,即實際是正樣本預測成正樣本的樣本數 FN(假負樣本數) TN(真負樣本數) FP(假正樣本數) ROC 橫軸:FPR(負正樣本率)=FP/(FP+TN) 即,預測錯的原本負樣本佔總體

機器學習效能評估指標(精確率、召回率、ROC、AUC)

實際上非常簡單,精確率是針對我們預測結果而言的,它表示的是預測為正的樣本中有多少是對的。那麼預測為正就有兩種可能了,一種就是把正類預測為正類(TP),另一種就是把負類預測為正類(FP)。                       P = TP/(TP+FP) 而召回

常見的機器學習效能衡量方法

在構建模型並調優時,關鍵的一步是確認模型的評估標準。對於常見的監督學習而言,主要有分類和迴歸兩類;1.迴歸的評價指標主要有MSE,RMSE,MAE。2.分類的評價指標有精確率、召回率、F1、AUC和ROC曲線。評價指標之間相互聯絡,同時而且相互之間是有關係的,只是側重點不同。下面對所有評價指

機器學習效能指標精確率、召回率、F1值、ROC、PRC與AUC--周振洋

機器學習效能指標精確率、召回率、F1值、ROC、PRC與AUC   精確率、召回率、F1、AUC和ROC曲線都是評價模型好壞的指標,那麼它們之間有什麼不同,又有什麼聯絡呢。下面讓我們分別來看一下這幾個指標分別是什麼意思。 針對

機器學習效能指標精確率、召回率、F1值、ROC、PRC與AUC

  精確率、召回率、F1、AUC和ROC曲線都是評價模型好壞的指標,那麼它們之間有什麼不同,又有什麼聯絡呢。下面讓我們分別來看一下這幾個指標分別是什麼意思。 針對一個二分類問題,將例項分成正類(postive)或者負類(negative)。但是實際中分類時,會出現四種情況

機器學習效能評估指標---準確率(Accuracy), 精確率(Precision), 召回率(Recall)

分類 混淆矩陣1 True Positive(真正, TP):將正類預測為正類數.True Negative(真負 , TN):將負類預測為負類數.False Positive(假正, FP):將負類預測為正類數 →→ 誤報 (Type I

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

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

機器學習中模型的效能度量方式:混淆矩陣,F1-Score、ROC曲線、AUC曲線。

一、混淆矩陣 混淆矩陣也稱誤差矩陣,是表示精度評價的一種標準格式,混淆矩陣的每一列代表了預測類別,每一列的總數表示預測為該類別的資料的數目;每一行代表了資料的真實歸屬類別 ,每一行的資料總數表示該類別的資料例項的數目。每一列中的數值表示真實資料被預測為該類的數目。

西瓜書《機器學習學習筆記 二 模型評估與選擇(二) 效能度量 ROC AUC...

目錄 3、效能度量(performance measure) 衡量模型泛化能力的評價標準,就是效能度量。 效能度量 <————> 任務需求 在對比不同模型的“好壞”時,使用不同的效能度量往往會導致不同的結果,這也意味著模型的好壞是相

機器學習效能度量指標

機器學習的模型效能度量指標 在機器學習中,衡量,評估和選擇一個模型好壞是通過一些常見指標實現的,稱之為效能指標(Metrics)。 對於一個二分類問題,我們首先給出如下基本指標基於這些指標可以推匯出其他指標: :True Positive(真正, TP),即模型預測為正的正樣本個數

機器學習之分類問題的效能度量

機器學習之分類問題的效能度量 # -*- coding: utf-8 -*- """ Created on Mon Dec 10 10:54:09 2018 @author: muli """ from sklearn.metrics import accuracy

機器學習-西瓜書】二、效能度量:召回率;P-R曲線;F1值;ROC;AUC

關鍵詞:準確率(查準率,precision);召回率(查全率,recall);P-R曲線,平衡點(Break-Even Point, BEP);F1值,F值;ROC(Receiver Operating Characteristic,受試者工作特徵);AUC(A

機器學習】分類效能度量指標 : ROC曲線、AUC值、正確率、召回率、敏感度、特異度

在分類任務中,人們總是喜歡基於錯誤率來衡量分類器任務的成功程度。錯誤率指的是在所有測試樣例中錯分的樣例比例。實際上,這樣的度量錯誤掩蓋了樣例如何被分錯的事實。在機器學習中,有一個普遍適用的稱為混淆矩陣(confusion matrix)的工具,它可以幫助人們

機器學習———聚類的效能度量指標與距離度量計算

聚類,是無監督學習的代表,將資料集D劃分成了若干個不相交的子集,稱為簇,我們總體的目標是“簇間相似性越低越好,簇內相似性越高越好”。 1.效能度量指標——外部指標 外部指標:聚類結果與某個“參考模型”進行比較。 對資料集,假設通過聚類劃分為,參考模型的劃分為:,令和分別

機器學習常用效能度量中的Accuracy、Precision、Recall、ROC、F score等都是些什麼東西?

一篇文章就搞懂啦,這個必須收藏! 我們以圖片分類來舉例,當然換成文字、語音等也是一樣的。 Positive 正樣本。比如你要識別一組圖片是不是貓,那麼你預測某張圖片是貓,這張圖片就被預測成了正樣本。 Negative 負樣本。比如你要識別一組圖片是不是貓,那麼你預測某張圖片不是貓,這張圖片就被預測成了負

機器學習評估方法及效能度量

- [機器學習評估方法及效能度量](#%e6%9c%ba%e5%99%a8%e5%ad%a6%e4%b9%a0%e8%af%84%e4%bc%b0%e6%96%b9%e6%b3%95%e5%8f%8a%e6%80%a7%e8%83%bd%e5%ba%a6%e9%87%8f) - [1 方法](#1-%e6%

機器學習:模型性能度量(performance measure)(待補充)

splay 樣本 常用 spl n) enc 統計學習方法 後者 性能 對學習器的泛化性能進行評估,不僅需要有效的實驗估計方法,還需要有衡量模型泛化性能的評準指標,這就是性能度量。性能度量反應任務需求,對比不同模型能力時,使用不同性能度量能導致不同的評判結果。因此,模型的好