Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(pixmap)
- library(MASS)
- #só pra printar
- library(lattice)
- x <- read.pnm(file = "data_atividade2/subject07.normal.pgm", cellres = 1)
- plot(x)
- polygon(c(45,145,145,45), c(20,20,200,200), border = "Red") #formato do rosto
- teste <- (x@grey[40:200,40:150])
- rotate <- function(x) t(apply(x, 2, rev))
- levelplot(rotate(teste))
- #################################################################
- data <- matrix(ncol=20691)
- for(i in grep("normal|happy|sad|sleepy|surprised|wink", list.files("data_atividade2/"), value = TRUE)){
- path <- paste("data_atividade2", i, sep="/")
- img <- read.pnm(file=path, cellres=1)
- temp <- img@grey[40:210, 40:160]
- vetor_rosto <- as.numeric(temp)
- vetor_rosto_inv <- as.numeric(temp[,order(ncol(temp):1)])
- data <- rbind(data, vetor_rosto, vetor_rosto_inv)
- }
- data <- data[-1,]
- data <- as.data.frame(data)
- data$resp <- as.factor(rep(c("happy", "normal", "sad", "sleepy", "surprised","wink"), 30))
- set.seed(174581)
- fracTraining <- 0.80
- ssTraining <- floor(fracTraining * nrow(data))
- indexTraining <- sort(sample(seq_len(nrow(data)), size=ssTraining))
- dataTr <- data[indexTraining, ]
- dataTest <- data[-indexTraining, ]
- #pca
- pc <- prcomp(data[-20692], scale=TRUE, retx=FALSE)
- summary(pc)
- ##35 componentes > 95% variação
- ##48 com banco espelhado
- cumVar <- cumsum(pc$sdev^2/sum(pc$sdev^2))
- nCompIdeal <<- max(2, which.max(cumVar >= 0.95))
- dataPca <- as.data.frame(predict(pc, data))[1:nCompIdeal]
- dataPca$labels <- data$resp
- dataPcaTr <- as.data.frame(predict(pc, dataTr))[1:nCompIdeal]
- dataPcaTr$labels <- dataTr$resp
- dataPcaTest <- as.data.frame(predict(pc, dataTest))[1:nCompIdeal]
- dataPcaTest$labels <- dataTest$resp
- fitLDA <- lda(formula = labels ~ . , data=dataPca)
- predLDA_Tr <- predict(fitLDA, dataPcaTr)
- (conf <- confusionMatrix(predLDA_Tr$class, dataPcaTr$labels))
- predLDA_Te <- predict(fitLDA, dataPcaTest)
- (conf <- confusionMatrix(predLDA_Te$class, dataPcaTest$labels))
- ##teste fotos extras
- x <- read.pnm(file = "data_atividade2/subjectmenorfeliz.pgm", cellres = 1)
- teste <- as.data.frame(rbind(as.numeric(x@grey[40:210, 40:160])))
- testePca <- as.data.frame(predict(pc, teste))[1:nCompIdeal]
- predict(fitLDA, testePca)
- x@grey[40:200,40:150]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement