機器學習 Cohen s Kappa,Quadratic Weighted Kappa 詳解

首先需要明確,Kappa係數既可用於統計中的一致性檢驗,也可以用於機器學習中來衡量分類精度。它們的本質是一樣的,但是理解方式略有不同,本文將從機器學習的角度來闡述Kappa係數。

一、基本思想

一般來說,對於機器學習中的分類問題,最簡單粗暴的衡量指標就是準確率(accuracy),但是對於樣本標籤分佈極其不均衡的數據,準確率就會出現誤導了。
比如對於如下數據集,100個樣本中10個是貓,10個是狗,需要預測每個樣本是貓還是狗。當我們直接預測所有樣本都是狗時,我們的預測率就可以達到90%。
這個準確率會造成分類結果很好的誤導,那麼我們是否可以考慮構造一個新的指標,把這個90%的準確率作爲baseline(定義其爲0),而全部分類正確時定義爲1,得到如下圖中My_score的指標。
在這裏插入圖片描述
在這裏插入圖片描述
這個指標基本接近Kappa係數了,只是Kappa係數的baseline計算方式不同。

二、Kappa係數定義

1.一致性檢驗中對kappa係數的定義

這裏借鑑一下一致性檢驗中對kappa的定義來理解,假設下圖中的R1是預測的樣本分佈,R2是真實樣本分佈。OA是R1的預測準確率,AC是在現有的預測樣本數量分佈既定的情況下,隨機打亂計算得到的平均正確率baseline。
那麼Kappa係數就可以解釋爲預測準確率減去Baseline得到的額外正確率,除以1減去baseline得到的剩餘可提升正確率。

原始頻連接https://www.youtube.com/watch?v=fOR_8gkU3UE

2.機器學習視角的公式

對於每個預測結果,計算Kappa係數的baseline都不一樣。如下公式所述。accuracy就是預測結果的準確率;
P_e是baseline,它的含義是如果隨機打亂提交的結果,那麼平均準確率會使多少?它可以通過下面的公式計算得到,其中k是第k個預測類別,n_k1和n_k2分別是真實值和預測值在第K個類別的個數。
如假設我們預測結果中有20個貓和80個狗,那麼可以計算得到Baseline是0.74,它意味着即使我在100個樣本中隨機指定20個爲貓,其餘的爲狗,平均準確率也可以達到0.74.

在這裏插入圖片描述在這裏插入圖片描述

3.進一步調整公式

由於1-accuracy其實就等於錯誤率,所以可以將剛纔的公式改寫爲:
在這裏插入圖片描述

二、Weighted Kappa係數定義

1.Weighted Error

要理解加權的kappa係數,我們首先要理解加權誤差
假設我們有如下數據集,並且我們認爲在貓和狗之間分類錯是相對可以理解的,但是將老虎分類成貓/狗就很不好了。
爲了將這個想法數字化,我們可以構造一個加權的錯誤矩陣,貓狗之間分類錯誤的係數是1,老虎分類錯誤的係數是10。這樣對老虎分類錯誤會導致這個樣本的誤差乘以10.
在這裏插入圖片描述

2.Weighted error和Weighted Kappa

具體來說,我們怎麼計算加權誤差呢?
我們可以按照下圖中的方式計算
左邊的混淆矩陣是預測值和真實值的分佈,右邊的權重矩陣是每個分類結果的誤差權重係數,總加權誤差就等於每個格子的兩兩乘積之和。
在這裏插入圖片描述
從而我們就得到了加權Kappa係數的公式
在這裏插入圖片描述

3.Linear Weighted Kappa 和 Quadratic Weighted Kappa

在大多數情況下,我們會以一種比較簡單通用的方式定義誤差權重。
例如,對於有順序的多標籤分類問題(有順序是指標籤類別之間是有大小順序的,如預測用戶會點擊1次,2次,3次三個類別),我們通常會將標籤分類爲:1,2,3。這種情況下預測值與真實值間隔越遠其實是更嚴重的,所以這就是我們的誤差權重派上用場的地方了!

常見的權重主要有兩種形式:

  • 線性權重:誤差係數等於兩個label之間差的絕對值,如將1預測爲3誤差權重爲2
  • 二次權重:誤差係數等於兩個label之間差的平方,如將1預測爲3誤差權重爲4

很明顯,二次權重對判斷錯誤更大的項懲罰更重,一般也使用得更廣泛
在這裏插入圖片描述

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