zoukankan      html  css  js  c++  java
  • 10. 混淆矩阵、总体分类精度、Kappa系数

    一、前言

    表征分类精度的指标有很多,其中最常用的就是利用混淆矩阵、总体分类精度以及Kappa系数。

    其中混淆矩阵能够很清楚的看到每个地物正确分类的个数以及被错分的类别和个数。但是,混淆矩阵并不能一眼就看出类别分类精度的好坏,为此从混淆矩阵衍生出来各种分类精度指标,其中总体分类精度(OA)和卡帕系数(Kappa)应用最为广泛。

    总体分类精度(OA):指被正确分类的类别像元数与总的类别个数的比值;OA值虽然能很好的表征分类精度,但是对类别像元个数极度不平衡的多类地物来说,其值收到像元数据较多类别的影响较大,不能很好的表征每个类别地物。

    Kappa系数(Kappa):Kappa系数是一种比例,代表着分类与完全随机的分类产生错误减少的比例,其计算过程可用如下公式表示:

    二、计算和代码

    以下部分代码主要实现,如何获得混淆矩阵,对于OA和Kappa系数则是很容易从混淆矩阵计算可得

     1     int tolCount = 0;
     2     for(int i = 0;i<row;i++)
     3     {
     4         float *oriPtr = oriClassMap.ptr<float>(0);
     5         float *stdPtr = stdClassMap.ptr<float>(0);
     6         for(int j = 0;j<col;j++)
     7         {
     8             int curStdIndex = int(stdPtr[j]);
     9             if(curStdIndex == 0)
    10                continue;
    11             int curOriIndex = int(oriPtr[j]);
    12 
    13             if(curStdIndex == curOriIndex)
    14                 conf.at<int>(curStdIndex-1,curStdIndex-1) = conf.at<int>(curStdIndex-1,curStdIndex-1)+1;
    15             else
    16             {
    17                 conf.at<int>(curStdIndex-1,curOriIndex-1) = conf.at<int>(curStdIndex-1,curOriIndex-1)+1;
    18             }
    19             tolCount++;
    20         }
    21     }

    三、计算结果显示

  • 相关阅读:
    2013111 小有收获
    2013112 周末
    js return的使用 Yannis
    java与js的split方法 Yannis
    javaScript 实时获取系统时间 Yannis
    java中奇偶数的判断 Yannis
    将Tomcat添加至开机自启动 Yannis
    java除0问题探究 Yannis
    linux安装问题 Yannis
    java之Struts2实现用户登录过滤 Yannis
  • 原文地址:https://www.cnblogs.com/zyore2013/p/4805627.html
Copyright © 2011-2022 走看看