来自混淆矩阵的Kappa,AIC,用户和制作人的准确性

时间:2013-10-12 22:23:15

标签: r

我有一个混淆矩阵,我想从中计算生产者和用户的准确性,并获得整体Kappa和AIC值。我知道R有几个允许计算Cohen的kappa统计量的软件包,但是我找不到任何处理混淆矩阵的软件包(或者我没有广泛搜索过)。我的混淆矩阵是50 x 50矩阵,因此手动计算容易出错。

所以对于矩阵的样本:

      V.1   V.2   V.3   V.4   V.5
V.1   10     0     2     1     0
V.2    1    12     0     0     0
V.3    0     0     9     4     0
V.4    0     2     0     11    3
V.5    4     1     0     0    11

因此,用户对V.1的准确度为(10/13)*100%。同样,制作人为V.1 (10/15)*100%。我必须cbind为用户的准确性添加新列,并为生产者的准确性添加rbind行。我假设我可以使用melt包中的reshape2来格式化可用于计算kappa的表中的数据。但理想情况下,我希望将数据保持在混淆矩阵格式中。

理想的最终结果如下:

      V.1   V.2   V.3   V.4   V.5  User Acc
V.1   10     0     2     1     0     76.92
V.2    1    12     0     0     0     92.30
V.3    0     0     9     4     0     69.23 
V.4    0     2     0     11    3     68.75 
V.5    4     1     0     0    11
Prod  66.66 

kappa =值,AIC =值

任何指针都会深表赞赏

2 个答案:

答案 0 :(得分:4)

在不使用melt的情况下计算这些“准确度”的任务似乎相当简单:

> diag(mat) /rowSums(mat)
      V.1       V.2       V.3       V.4       V.5 
0.7692308 0.9230769 0.6923077 0.6875000 0.6875000 
> diag(mat)/colSums(mat)
      V.1       V.2       V.3       V.4       V.5 
0.6666667 0.8000000 0.8181818 0.6875000 0.7857143 

它可能比那更简单,因为似乎有专门用于处理的包:

require(sos)
findFn("kappa confusion matrix")
#found 38 matches;  retrieving 2 pages
#Downloaded 32 links in 16 packages.

请参阅:http://finzi.psych.upenn.edu/R/library/PresenceAbsence/html/Kappa.html

我强烈推荐sos::findFn策略。

maintainer('sos')
[1] "Spencer Graves <spencer.graves@prodsyse.com>"

答案 1 :(得分:0)

Biclust类的对象

call:
        biclust(x = x, method = BCCC(), alpha = 1, delta = 1.5, number = 50)

Number of Clusters found:  31 

First  5  Cluster sizes:
                   BC 1 BC 2 BC 3 BC 4 BC 5
Number of Rows:      85   66   59   51   61
Number of Columns:   65   65   65   65   65

Biclusterresult中有重叠的cols 警告信息: 在if (is.na(which)) which <- 1:ny中:   条件的长度> 1,只使用第一个元素