Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. library(pixmap)
  2. library(MASS)
  3.  
  4. #só pra printar
  5. library(lattice)
  6. x <- read.pnm(file = "data_atividade2/subject07.normal.pgm", cellres = 1)
  7. plot(x)
  8. polygon(c(45,145,145,45), c(20,20,200,200), border = "Red") #formato do rosto
  9.  
  10. teste <- (x@grey[40:200,40:150])
  11. rotate <- function(x) t(apply(x, 2, rev))
  12. levelplot(rotate(teste))
  13. #################################################################
  14.  
  15.  
  16. data <- matrix(ncol=20691)
  17. for(i in grep("normal|happy|sad|sleepy|surprised|wink", list.files("data_atividade2/"), value = TRUE)){
  18. path <- paste("data_atividade2", i, sep="/")
  19. img <- read.pnm(file=path, cellres=1)
  20. temp <- img@grey[40:210, 40:160]
  21. vetor_rosto <- as.numeric(temp)
  22. vetor_rosto_inv <- as.numeric(temp[,order(ncol(temp):1)])
  23. data <- rbind(data, vetor_rosto, vetor_rosto_inv)
  24. }
  25.  
  26.  
  27. data <- data[-1,]
  28. data <- as.data.frame(data)
  29.  
  30. data$resp <- as.factor(rep(c("happy", "normal", "sad", "sleepy", "surprised","wink"), 30))
  31.  
  32. set.seed(174581)
  33. fracTraining <- 0.80
  34. ssTraining <- floor(fracTraining * nrow(data))
  35. indexTraining <- sort(sample(seq_len(nrow(data)), size=ssTraining))
  36. dataTr <- data[indexTraining, ]
  37. dataTest <- data[-indexTraining, ]
  38.  
  39. #pca
  40. pc <- prcomp(data[-20692], scale=TRUE, retx=FALSE)
  41. summary(pc)
  42. ##35 componentes > 95% variação
  43. ##48 com banco espelhado
  44.  
  45. cumVar <- cumsum(pc$sdev^2/sum(pc$sdev^2))
  46. nCompIdeal <<- max(2, which.max(cumVar >= 0.95))
  47.  
  48. dataPca <- as.data.frame(predict(pc, data))[1:nCompIdeal]
  49. dataPca$labels <- data$resp
  50. dataPcaTr <- as.data.frame(predict(pc, dataTr))[1:nCompIdeal]
  51. dataPcaTr$labels <- dataTr$resp
  52. dataPcaTest <- as.data.frame(predict(pc, dataTest))[1:nCompIdeal]
  53. dataPcaTest$labels <- dataTest$resp
  54.  
  55.  
  56. fitLDA <- lda(formula = labels ~ . , data=dataPca)
  57. predLDA_Tr <- predict(fitLDA, dataPcaTr)
  58. (conf <- confusionMatrix(predLDA_Tr$class, dataPcaTr$labels))
  59. predLDA_Te <- predict(fitLDA, dataPcaTest)
  60. (conf <- confusionMatrix(predLDA_Te$class, dataPcaTest$labels))
  61.  
  62. ##teste fotos extras
  63. x <- read.pnm(file = "data_atividade2/subjectmenorfeliz.pgm", cellres = 1)
  64. teste <- as.data.frame(rbind(as.numeric(x@grey[40:210, 40:160])))
  65. testePca <- as.data.frame(predict(pc, teste))[1:nCompIdeal]
  66. predict(fitLDA, testePca)
  67.  
  68. x@grey[40:200,40:150]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement