1

我有一个混淆矩阵,我想从中计算生产者和用户的准确性,并获得整体 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为生产者的准确性添加一行。我假设我可以使用meltreshape2中的数据来格式化可用于计算 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 = 价值

任何指针将不胜感激

4

2 回答 2

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>"
于 2013-10-12T22:51:56.870 回答
0

Bilust 类的对象

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 警告消息中有重叠的列:在if (is.na(which)) which <- 1:ny:条件长度 > 1 并且仅使用第一个元素

于 2016-03-04T07:04:53.260 回答