Hi, Ive 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. Its 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.