我有一个混淆矩阵,我想从中计算生产者和用户的准确性,并获得整体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 =值
任何指针都会深表赞赏
答案 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,只使用第一个元素