python腳本python
""" 項目合做QQ:231469242 這個係數的取值範圍是[-1,1],實際應用中,通常是[0,1] 這個係數的值越高,則表明模型實現的分類準確度越高 """ def kappa(matrix): n = np.sum(matrix) sum_po = 0 sum_pe = 0 for i in range(len(matrix[0])): sum_po += matrix[i][i] row = np.sum(matrix[i, :]) col = np.sum(matrix[:, i]) sum_pe += row * col po = sum_po / n pe = sum_pe / (n * n) # print(po, pe) return (po - pe) / (1 - pe) #其中,matrix是一個方陣,若共有i個類別,則matrix.shape = (i,i). #用下面的代碼進行測試: import numpy as np matrix = [ [239,21,16], [16,73,4], [6,9,280]] matrix = np.array(matrix) print(kappa(matrix))
分類是機器學習中監督學習的一種重要應用,基於統計的機器學習方法能夠使用SVM進行二分類,能夠使用決策書,梯度提高樹等進行多分類。
對於二分類模型,咱們一般能夠使用ROC曲線來評估模型的預測效果。這裏,咱們介紹一下在多分類中衡量模型評估準確度的一種方法–kappa係數評估方法。app
首先,咱們介紹一下kappa係數:
kappa係數是用在統計學中評估一致性的一種方法,咱們能夠用他來進行多分類模型準確度的評估,這個係數的取值範圍是[-1,1],實際應用中,通常是[0,1],與ROC曲線中通常不會出現下凸形曲線的原理相似。
這個係數的值越高,則表明模型實現的分類準確度越高。kappa係數的計算方法能夠這樣來表示:機器學習