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])
- levelplot(rotate(teste))
- rotate <- function(x) t(apply(x, 2, rev))
- 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)
- vetor_rosto <- as.numeric(img@grey[40:210, 40:160])
- data <- rbind(data, vetor_rosto)
- }
- data <- data[-1,]
- data <- as.data.frame(data)
- datainv<- data[,order(ncol(data):1)]
- data <- as.data.frame(rbind(data,datainv))
- data$resp <- as.factor(rep(c("happy", "normal", "sad", "sleepy", "surprised","wink"), 30))
- set.seed(188288)
- 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(dataTr[-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))
- 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=dataPcaTr)
- predLDA_Tr <- predict(fitLDA, dataPcaTr)
- (conf <- confusionMatrix(predLDA_Tr$class, dataPcaTr$labels))
- predLDA_Te <- predict(fitLDA, dataPcaTest)
- (conf <- confusionMatrix(predLDA_Te$class, dataPcaTest$labels))
- x <- read.pnm(file = "data_atividade2/subjectmarlin.pgm", cellres = 1)
- teste <- as.data.frame(rbind(as.numeric(img@grey[40:210, 40:160])))
- testePca <- as.data.frame(predict(pc, teste))[1:nCompIdeal]
- predict(fitLDA, testePca)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement