Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.30 KB | None | 0 0
  1. library(MASS)
  2. library(klaR)
  3. library(e1071)
  4.  
  5. names <- c("clas", "alc","malic alc","ash","alcality of ash","magnesium","total phenols","flavanoids","nonflavanoids phenols","proanthocyanians","color intens","hue","od280","proline")
  6. data <- read.csv(url("https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data"),col.names = names)
  7.  
  8. class.lda <- lda(clas ~ . , data)
  9. class.qda <- qda(clas ~ ., data)
  10. class.nb <- naiveBayes(clas ~ ., data)
  11.  
  12.  
  13.  
  14. CM.large <- function(org.class, pred.class) {
  15.  
  16.   CM <- table(org.class, pred.class)
  17.  
  18.   # Skuteczność klasyfikatora
  19.   ACC <- sum(diag(CM)) / sum(CM)
  20.  
  21.   # Wartości true positive i true negative
  22.   # zakładamy, że klasa "2" jest "pozytywna"
  23.   TP <- CM[2,2]
  24.   TN <- CM[1,1]
  25.  
  26.   sums <- apply(CM, 1, sum)
  27.  
  28.   TPR <- TP / sums[2]
  29.   FPR <- 1 - TN / sums[1]
  30.  
  31.   return(c(ACC = round(ACC,4), TP = TP, TN = TN, TPR = round(TPR, 4), FPR = round(FPR, 4), row.names = NULL))
  32. }
  33.  
  34. data.lda.old <- predict(class.lda, data)
  35. data.qda.old <- predict(class.qda, data)
  36. data.nb.old <- predict(class.nb, data)
  37.  
  38. res.old <- CM.large(data$clas, data.lda.old$clas)
  39. res.old <- rbind(res.old, CM.large(data$clas, data.qda.old$clas))
  40. res.old <- rbind(res.old, CM.large(data$clas, data.nb.old))
  41.  
  42. rownames(res.old) <- c("LDA", "QDA", "NB")
  43.  
  44. res.old
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement