虽然sklearn.metrics中带有许多计算分类效果的工具,但是不全,下面分享四个基本分类指标,其他的指标也可以照样编写
from sklearn.metrics import confusion_matrix#混淆矩阵
import numpy as np
def sen(Y_test,Y_pred,n):#n为分类数
sen = []
con_mat = confusion_matrix(Y_test,Y_pred)
for i in range(n):
tp = con_mat[i][i]
fn = np.sum(con_mat[i,:]) - tp
sen1 = tp / (tp + fn)
sen.append(sen1)
return sen
def pre(Y_test,Y_pred,n):
pre = []
con_mat = confusion_matrix(Y_test,Y_pred)
for i in range(n):
tp = con_mat[i][i]
fp = np.sum(con_mat[:,i]) - tp
pre1 = tp / (tp + fp)
pre.append(pre1)
return pre
def spe(Y_test,Y_pred,n):
spe = []
con_mat = confusion_matrix(Y_test,Y_pred)
for i in range(n):
number = np.sum(con_mat[:,:])
tp = con_mat[i][i]
fn = np.sum(con_mat[i,:]) - tp
fp = np.sum(con_mat[:,i]) - tp
tn = number - tp - fn - fp
spe1 = tn / (tn + fp)
spe.append(spe1)
return spe
def ACC(Y_test,Y_pred,n):
acc = []
con_mat = confusion_matrix(Y_test,Y_pred)
for i in range(n):
number = np.sum(con_mat[:,:])
tp = con_mat[i][i]
fn = np.sum(con_mat[i,:]) - tp
fp = np.sum(con_mat[:,i]) - tp
tn = number - tp - fn - fp
acc1 = (tp + tn) / number
acc.append(acc1)
return acc