精华内容
下载资源
问答
  • 混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。   Predicted as Positive(预测-正例) Predicted as Negative(预测-反例) Labeled as Positive (真实-正例) ...

    整理 归纳 举例 记录一下

    (一)混淆矩阵

    混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。

     Predicted as Positive(预测-正例)Predicted as Negative(预测-反例)
    Labeled as Positive (真实-正例)True Positive(TP-真正例)False Negative(FN-假反例)
    Labeled as Negative (真实-反例)False Positive(FP-假正例)True Negative(TN-真反例)

    TP:真正,被模型分类正确的正样本 【预测为1 实际为1】 

    FN:假负,被模型分类错误的正样本 【预测为0 实际为1】

    FP:假正,被模型分类错误的负样本 【预测为1 实际为0】

    TN:真负,被模型分类正确的负样本 【预测为0 实际为0】

    计算评价指标

    Precision查准率、精确率:分类正确的正样本个数占分类器分成的所有正样本个数的比例

                P = \frac{TP}{TP + FP}

    Recall查全率、召回率:分类正确的正样本个数占正样本个数的比例

              R = \frac{TP}{TP +FN}

    F1值

              F1度量的一般形式是:F_{\beta }=\frac{(1+\beta ^{2})\times P\times R}{(\beta ^{2}\times P)+R}

                   \beta >0 度量了查全率对查准率的相对重要性

                  \beta =1 时退化为标准的F1

                  \beta >1 时查全率有更大影响

                 \beta <1 时查准率有更大影响

           F1是基于查全率和查准率的调和平均定义的如下:

               \frac{1}{F1}=\frac{1}{2}\cdot (\frac{1}{P}+\frac{1}{R})       or    F1 =2 \cdot \frac{P\cdot R}{P+R}

    TPR:真正例率

              TPR=\frac{TP}{TP+FN}

    FPR:假正例率

              FPR=\frac{FP}{TN+FP}

    ROC曲线

            根据学习器的预测结果对样例进行排序,按此顺序逐个把正例进行预测,每次计算出真正例率、假正例率,并以真正例率为纵轴,假正例率为横轴,即得到ROC曲线

       

    总体分类精度(Overall Accuracy):分类正确的样本个数占所有样本个数的比例        

               OA = \frac{TP + TN}{TP+ FN + FP +TN}        或    OA = \frac{1}{N}\Sigma _{i=1}^{r}x_{ii}

         

    Kappa系数

            Kappa = \frac{N \Sigma_{i=1}^{r}x_{ii}-\Sigma _{i=1}^{r}(x_{i+}\times x_{+i})}{N^{2}-\Sigma _{i=1}^{r}(x_{i+}\times x_{+i})}

    - - - - - - - - - - - - - - - - - - - - - - -- - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

     (二) 例:  单位/像素(pixel)

    class水体林地耕地未利用地居民地总计
    水体257920024425838
    林地8016825297684132419210
    耕地5196027424381154239583
    未利用地3100963848710156
    居民地3230491333055131056
    总计2674516885277701049543948125843
    林地Predicted as PositivePredicted as Negative
    Labeled as Positive 16825(TP)2385(FN)
    Labeled as Negative 60(FP)93405(TN)

    林地-精确率P:

    P = (16825)/(16825+60)= 0.9964

    林地-召回率R:

    R = (16825)/(16825+2385)= 0.8758

    林地-F1值:

    F1 = 2\cdot \frac{0.9964\cdot 0.8758}{0.9964+0.8758}=0.9322

    总体精度: 正确分类的像元总和除以总像元数。被正确分类的像元数目沿着混淆矩阵的对角线(红色字体)分布,总像元数等于所有真实参考源的像元总数 (蓝色字体)    

    OA = (110230/125843)=87.5933%

    Kappa系数:通过把所有真实参考的像元总数(N)乘以混淆矩阵对角线(Xii)的和,再减去各类中真实参考像元数与该类中被分类像元总数之积之后,再除以像元总数的平方减去各类中真实参考像元总数与该类中被分类像元总数之积对所有类别求和的结果。

    K = 0.8396

    - - - - - - - - - - - - - - - - - - - - - - -- - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    (三)Python求混淆矩阵

    导入库:

    from sklearn import metrics
    from sklearn.metrics import confusion_matrix
    from sklearn.metrics import classification_report

    类似例子代码见:

    计算一幅图像中不同地物的分类精确度(以像素为单位)

    计算分类结果图与标准参考图混淆矩阵

    对分类结果进行P值、R值、F1值等的评价

    https://download.csdn.net/download/m_try/10450455

     

     

    参考:

    http://blog.sina.com.cn/s/blog_670ee7720102vjxg.html

    https://blog.csdn.net/fisherming/article/details/79356949

    - - - - - - - - - - - - - - - - - - - - - - -- - - -- - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    分享,多担待。望有帮助

     

     

    展开全文
  • 10. 混淆矩阵、总体分类精度、Kappa系数 一、前言 表征分类精度的指标有很多,其中最常用的就是利用混淆矩阵、总体分类精度以及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     }

    三、计算结果显示

    posted on 2015-09-13 21:10  机器学习猪 阅读( ...) 评论( ...) 编辑 收藏

    转载于:https://www.cnblogs.com/zyore2013/p/4805627.html

    展开全文
  • 遥感影像分类之后需要进行分类精度评价,精度评价方法中最常见的就是混淆矩阵和kappa系数。现把指标分类如下: 混淆矩阵(confusion matrix) 误差矩阵(error matrix)又称混淆矩阵(confusion matrix),是一个...

    遥感影像分类之后需要进行分类精度评价,精度评价方法中最常见的就是混淆矩阵和kappa系数。现把指标列举如下:
    混淆矩阵(confusion matrix)
    误差矩阵(error matrix)又称混淆矩阵(confusion matrix),是一个用于表示分为某一类别的像元个数与地面检验为该类别数的比较阵列。通常,阵列中的列代表参考数据,行代表由遥感数据分类得到的类别数据。有像元数和百分比表示两种。
    总体分类精度(Overall Accuracy)
    等于被正确分类的像元总和除以总像元数。被正确分类的像元数目沿着混淆矩阵的对角线分布,总像元数等于所有真实参考源的像元总数
    Kappa系数(Kappa Coefficient)
    它是通过把所有真实参考的像元总数(N)乘以混淆矩阵对角线(XKK)的和,再减去各类中真实参考像元数与该类中被分类像元总数之积之后,再除以像元总数的平方减去各类中真实参考像元总数与该类中被分类像元总数之积对所有类别求和的结果。
    错分误差(Commission Error)
    指被分为用户感兴趣的类,而实际上属于另一类的像元,错分误差显示在混淆矩阵的行里面。
    漏分误差(Omission Error)
    指本属于地表真实分类,但没有被分类器分到相应类别中的像元数。漏分误差显示在混淆矩阵的列里。
    制图精度(Producer’s Accuracy)
    制图精度或生产者精度是指分类器将整个影像的像元正确分为A类的像元数(对角线值)与A类真实参考总数(混淆矩阵中A类列的总和)的比率。
    用户精度(User’s Accuracy)
    是指正确分到A类的像元总数(对角线值)与分类器将整个影像的像元分为A类的像元总数(混淆矩阵中A类行的总和)比率。
    现举例说明:
    研究区中有7种类别地物,基于面向对象和SVM结合的方法得到分类结果。
    SVM采用LibSVM工具包实现,LibSVM可以得到.predict文件。在ArcGIS中把.predict结果加入到eCognition的分割结果.shp中,得到分类结果可视化图;然后把人工矢量化参考影像,根据共有字段 join到分割结果.shp图层中,至此,参考数据和预测数据准备完毕。
    利用matlab实现上述指标,直接上代码。

    clc;
    clear all;
    close all;
    %% read reference data
    t_fn = 'D:\...\area1intersect200.xls';
    t_ft = xlsread(t_fn);
    t_label = t_ft(:,1);
    
    %% read predicted data
    pred_fn = 'D:\...\predict200and0.1.xls';
    pred_ft = xlsread(pred_fn);
    pred_label = pred_ft(:,1);
    %pred_label = dlmread(pred_fn);
    %% 
    %找到lael1
    ind1 = find(t_label == 1);
    label1 = t_label(ind1);
    %label_1=label(label==1);
    %ft1 = ft(ind1,:);
    
    %找到lael2
    ind2 = find(t_label == 2);
    label2 = t_label(ind2);
    %ft2 = ft(ind2,:);
    
    %找到lael3
    ind3 = find(t_label == 3);
    label3 = t_label(ind3);
    %ft3 = ft(ind3,:);
    
    %找到lael4
    ind4 = find(t_label == 4);
    label4 = t_label(ind4);
    %ft4 = ft(ind4,:);
    
    %找到lael5
    ind5 = find(t_label == 5);
    label5 = t_label(ind5);
    
    %找到lael6
    ind6 = find(t_label == 6);
    label6 = t_label(ind6);
    
    %找到lael7
    ind7 = find(t_label == 7);
    label7 = t_label(ind7);
    
    
    
    %% calculate confusion matrix
    cls = unique(t_label);
    num_ref = zeros(length(cls),1);
    cf_mt = zeros(length(cls));
    for i=1:length(cls)
        ind = find(t_label == cls(i));
        num_ref(i) = length(ind);
        for j = 1:length(cls)
            ind1 = find(t_label == cls(i) & pred_label == cls(j));
            cf_mt(i,j) = length(ind1);
        end
    end
    %% 计算PA
    PA1 = cf_mt(1,1)/sum(cf_mt(1,:));
    PA2 = cf_mt(2,2)/sum(cf_mt(2,:));
    PA3 = cf_mt(3,3)/sum(cf_mt(3,:));
    PA4 = cf_mt(4,4)/sum(cf_mt(4,:));
    PA5 = cf_mt(5,5)/sum(cf_mt(5,:));
    PA6 = cf_mt(6,6)/sum(cf_mt(6,:));
    PA7 = cf_mt(7,7)/sum(cf_mt(7,:));
    %% 计算UA
    UA1 = cf_mt(1,1)/sum(cf_mt(:,1));
    UA2 = cf_mt(2,2)/sum(cf_mt(:,2));
    UA3 = cf_mt(3,3)/sum(cf_mt(:,3));
    UA4 = cf_mt(4,4)/sum(cf_mt(:,4));
    UA5 = cf_mt(5,5)/sum(cf_mt(:,5));
    UA6 = cf_mt(6,6)/sum(cf_mt(:,6));
    UA7 = cf_mt(7,7)/sum(cf_mt(:,7));
    
    cf_mt(isnan(cf_mt))=0;
    [r,c] = size(cf_mt);
    
    RT_A = sum(cf_mt,2); % row total
    CT_A = sum(cf_mt,1); % column total
    
    N_A = sum(sum(cf_mt));
    
    PO_A = trace(cf_mt)/N_A; % PO: percentage overall accuracy of A
    
    PC_A = 1/N_A^2 * sum(RT_A.*CT_A'); % PC: proportion of pixels that were classified due to chance agreement
    
    %% Calculate kappa statistics
    Kappa = (PO_A-PC_A)/(1-PC_A);
    
    展开全文
  • 计算每一类的分类精度,进而求总体的平均精度是分类问题很常用的评价指标,当我们计算出混淆矩阵之后,需要对混淆矩阵进行量化分析,最明显的指标就是计算分类精度,下面提供一种计算方面,使用sk-learn的apinp.diag...

    计算每一类的分类精度,进而求总体的平均精度是分类问题很常用的评价指标,当我们计算出混淆矩阵之后,需要对混淆矩阵进行量化分析,最明显的指标就是计算分类精度,下面提供一种计算方面,使用sk-learn的api



    np.diag是将对角线的值取出来,也就是正确分类的样本数的分布,axis=1,是行维度,实际就是预测样本数分布,np.sum就是将预测的每类样本数进行求和。


    nan_to_num是将部分真除之后会出现nan的数转成0值,从each_acc可以看出每类的分类精度,第一类是1,第二个bird没有正确分类的个数,第三个是2/3,得出每类精度之后再求平均精度。

    展开全文
  • 在使用回归器的时候,我们通常用预测结果的准确率来...例如,对于一个0-9数字分类器,要想知道分类器将数字3和数字5混淆多少次,只需要通过混淆矩阵的第5行第3列来查看。   下图是一个二分类器预测结果的混淆矩...
  • # plt.savefig('/content/drive/My Drive/Colab Notebooks/confusionmatrix32.png',dpi=350) plt.show() # 显示混淆矩阵 def plot_confuse(model, x_val, y_val): predictions = model.predict_classes(x_val, ...
  • :与混淆矩阵的行列颠倒,列表示真实值,行表示预测值(算法输出)。当真实值=预测值时,结果为True,表示预测正确;False表示预测错误。 真实值 P N 算法输出 P' True ...
  • ToolBox->Classification->PostClassification->Confusion Matrix->Using Ground Truth ROIs,可以得到如下的分类精度验证的混淆矩阵。 要看懂这个精度验证结果,需要了解几个混淆矩阵中的几项评价指标: 1、总体...
  • 通过向分类器提供附加信息,它能够轻松地分离不同的类。在这里,我们采用相同的示例并使用以下技术对其进行扩充 应用云掩膜 添加光谱指数:我们为不同的光谱指数添加波段,例如 - NDVI、NDBI、MNDWI 和 BSI。 ...
  • 在图像精度评价中,主要用于比较分类结果和实际测得值,可以把分类结果的精度显示在一个混淆矩阵里面。混淆矩阵是通过将每个实测像元的位置和分类分类图像中的相应位置和分类像比较计算的。混淆矩阵(confusion ...
  • 混淆矩阵

    千次阅读 2019-05-22 08:46:02
    混淆矩阵(confusion matrix)衡量的是一个分类分类的准确程度。理解其概念本身容易理解,但一些特定术语易被混淆。 混淆矩阵适用于包含多个分类器的问题,本文为了让读者理解更加容易,以二元分类混淆矩阵为例...
  • 精度评价主要方法:混淆矩阵和Kappa统计 ...评价精度的因子有混淆矩阵、总体分类精度、Kappa系数、错分误差、漏分误差、每一类的制图精度和用户精度,下面分条介绍。 混淆矩阵(confusion matrix) 误
  • 混淆矩阵 True Positive(真正,TP):将正类预测为正类数 True Negative(真负,TN):将负类预测为负类数 False Positive(假正,FP):将负类预测为正类数误报 (Type I error) False Negative(假负,FN):将正类...
  • 目录 MNIST 训练一个二分类器 使用交叉验证测量精度 混淆矩阵 精度和召回率 精度/召回率权衡 ROC曲线 多类别分类器 错误分析 多标签分类 多输出分类 MNIST MNIST数据集,这是一组由美国高中生和人口调查局员工手写...
  • 机器学习中分类结果混淆矩阵In this blog, I will try to explain all the basic terminologies of the confusion matrix and how to calculate them, with an example. 在这个博客中,我将尝试通过一个例子来解释...
  • 在表格中输入二分类混淆矩阵值,可以自动的计算出OA、召回率、精确率、F1、Kappa系数。仅适用二分类,计算混淆矩阵

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,775
精华内容 2,310
关键字:

混淆矩阵分类精度