为了评价分类的结果,往往需要通过验证样本进行检验,生产者精度、使用者精度、总体精度、kappa系数是最常用的检验指标。我介绍一下二分类中这些指标是怎么计算的。
首先我们两个类别都构建一些验证样本,然后构建误差矩阵。误差矩阵有4个数据数据,下面的代码中,我分别用rr、rn、nr、nn表示。rr指的是验证样本和分类结果都是1,rn指的是验证样本是1而分类结果是0,nr指的是验证样本是0而分类结果是1,nn指的是验证样本和分类结果都是0。我用pa表示生产者精度,ua表示使用者精度,oa表示总体精度,kappa表示kappa系数。注意除法运算之前要把整型变成浮点型,为了kappa系数的表达式不会太长,我使用了一个中间变量q。
double oa,pa,ua,q,kappa;
pa = 1.0 * rr / (rr + rn); //生产者精度
ua = 1.0 * rr / (rr + nr); //使用者精度
oa = 1.0 * (rr + nn) / (rr + nr + rn + nn); //总体精度
q = 1.0 * (rr + rn) * (rr + nr) / (rr + rn + nr + nn) + 1.0 * (nn + nr) * (nn + rn) / (rr + rn + nr + nn);
kappa = 1.0*(rr + nn - q) / ((rr + rn + nr + nn) - q); //kappa系数
最后摆上我的计算结果。