Hi,
 
I’ve written some code to obtain a confusion matrix when the true 
classification and the predicted classification are known. Suppose true 
classification is called “tr” and predicted classification is “pr”. I have 4 
classes in tr, but only 3 classes out of 4 are predicted in “pr”. Following is 
my code, but looks quite “clunky” to me. I wonder if you have any suggestions 
to improve it.
 
Thanks,
 
Monica
 
-----------------------------
 
tr <- c(1,2,2,3,3,3,2,4,1,1)
pr<-c(1,2,1,3,3,3,1,2,1,2)
dat <- data.frame(tr, pr)
class <- c(1:length(tr))
m <- max(c(length(unique(tr)), length(unique(pr))))
for(i in 1:length(class)) {
 class[i] <- sub(' ','',paste(dat[i,1],dat[i,2])) }
dat <- data.frame(dat, class)
mat <- matrix(0, nrow=m, ncol=m)
for (i in 1:m){
  for (j in 1:m){
 mat[i,j] <- sub(' ','',paste(i,j))
 }}
cat <- matrix(0, nrow=(m+1), ncol=(m+1))
  for (i in 1:m){
  for(j in 1:m){
 cat[i,j]<- nrow(dat[dat$class==mat[i,j],])
}}
for (i in 1:m){
cat[(m+1),i]<-sum(cat[1:m,i])
 cat[i,(m+1)]<- sum(cat[i,1:m])
cat[(m+1),(m+1)] <- sum(cat[1:m,(m+1)])
}
cat
     [,1] [,2] [,3] [,4] [,5]
[1,]    2    1    0    0    3
[2,]    2    1    0    0    3
[3,]    0    0    3    0    3
[4,]    0    1    0    0    1
[5,]    4    3    3    0   10
 
The 5th row / col represents the sum on each row / col respectively.
_________________________________________________________________
Gear up for Halo® 3 with free downloads and an exclusive offer. It’s our way of 
saying thanks for using Windows Live™.

        [[alternative HTML version deleted]]

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to