Kappa(cappa)系數只需要看這一篇就夠了,算法到python實現


1 定義

百度百科的定義:

它是通過把所有地表真實分類中的像元總數(N)乘以混淆矩陣對角線(Xkk)的和,再減去某一類地表真實像元總數與被誤分成該類像元總數之積對所有類別求和的結果,再除以總像元數的平方減去某一類中地表真實像元總數與該類中被誤分成該類像元總數之積對所有類別求和的結果所得到的。

這對於新手而言可能比較難理解。什么混淆矩陣?什么像元總數?
我們直接從算式入手:

\[k = \frac{p_0-p_e}{1-p_e} \]

\(p_0\)是每一類正確分類的樣本數量之和除以總樣本數,也就是總體分類精度
假設每一類的真實樣本個數分別為\(a_1,a_2,...,a_c\)
而預測出來的每一類的樣本個數分別為\(b_1,b_2,...,b_c\)
總樣本個數為n
則有:\(p_e=a_1×b_1+a_2×b_2+...+a_c×b_c / n×n\)

1.1 簡單例子

學生考試的作文成績,由兩個老師給出 好、中、差三檔的打分,現在已知兩位老師的打分結果,需要計算兩位老師打分之間的相關性kappa系數:
在這里插入圖片描述
從上面的公式中,可以知道我們其實只需要計算\(p_0 ,p_e\)即可:

Po = (10+35+15) / 87 = 0.689
a1 = 10+2+8 = 20; a2 = 5+35+5 = 45; a3 = 5+2+15 = 22;
b1 = 10+5+5 = 20; b2 = 2+35+2 = 39; b3 = 8+5+15 = 28;
Pe = (a1b1 + a2b2 + a3b3) / (8787) = 0.455
K = (Po-Pe) / (1-Pe) = 0.4293578

例子引用來自博客,可以說提到kappa網上到處都是兩個老師的例子,哈哈

2 指標解釋

kappa計算結果為[-1,1],但通常kappa是落在 [0,1] 間

第一種分析准則--可分為五組來表示不同級別的一致性:

0.0~0.20極低的一致性(slight)

0.21~0.40一般的一致性(fair)

0.41~0.60 中等的一致性(moderate)

0.61~0.80 高度的一致性(substantial)

0.81~1幾乎完全一致(almost perfect)

3 python實現(可直接用於深度網絡中)

def eval_qwk_lgb_regr(y_true, y_pred):
  # Fast cappa eval function for lgb.
    dist = Counter(reduce_train['accuracy_group'])
    for k in dist:
        dist[k] /= len(reduce_train)
    reduce_train['accuracy_group'].hist()
    # reduce_train['accuracy_group']將會分成四組
    acum = 0
    bound = {}
    for i in range(3):
        acum += dist[i]
        bound[i] = np.percentile(y_pred, acum * 100)

    def classify(x):
        if x <= bound[0]:
            return 0
        elif x <= bound[1]:
            return 1
        elif x <= bound[2]:
            return 2
        else:
            return 3

    y_pred = np.array(list(map(classify, y_pred))).reshape(y_true.shape)
    return 'cappa', cohen_kappa_score(y_true, y_pred, weights='quadratic'), True

以上代碼是本人在kaggle比賽中使用的,因為kappa系數的算法非常好寫,但是又要根據實際問題進行微小的調整,所以就不修改了。如果能提供幫助自然好,如果沒有頭緒的話,就去第一二章節好好看看,理解一下kappa系數的算法。

4 總結

其實kappa系數就是一種檢驗一致性的方法,可以用在深度網絡中的metric函數中,也可以用在統計學上的一致性檢驗上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM