diff --git a/US10 - AgrupamentoPerfis.R b/US10 - AgrupamentoPerfis.R new file mode 100644 index 0000000..eab914f --- /dev/null +++ b/US10 - AgrupamentoPerfis.R @@ -0,0 +1,54 @@ +# Script de analise do agrupamento +# Iury Gregory Melo Ferreira - versao 2.0 (Fevereiro 2013) + +library(fpc) +library(FNN) + + +dados <- read.csv("dados/TabelaParaPerfisNormal.csv",header=T) + +distancias <- as.data.frame(knn.dist(dados[,-1],k=5,algorithm=c("kd_tree"))) + +media.distancias <- as.data.frame(rowMeans(distancias)) + + +dados <- cbind(dados,media.distancias) +colnames(dados) <- c("matricula","mediana.sessao","nota.final.pratica","atividade","distancias") +dados <- dados[order(dados$distancia,decreasing = F),] + +png("grafico das distancias.png",bg="transparent") +plot(dados$distancia) +dev.off() + +agrupamento1 <- kmeans(d,3) +agrupamento2 <- kmeans(d,4) +agrupamento3 <- kmeans(d,5) +agrupamento4 <- kmeans(d,6) + + +png("AgrupamentoK3-2.png",bg="transparent",width = 800, height = 600) +plot(d$nota.final.pratica,d$atividade, col = agrupamento1$cluster) +points(agrupamento1$centers, col = 1:2, pch = 8, cex=2) +dev.off() + +#png("AgrupamentoK4-2.png",bg="transparent",width = 800, height = 600) +#plot(d$nota.final.pratica,d$atividade, col = agrupamento2$cluster) +#points(agrupamento2$centers, col = 1:2, pch = 8, cex=2) +#dev.off() + +#png("AgrupamentoK5-2.png",bg="transparent",width = 800, height = 600) +#plot(d$nota.final.pratica,d$ativiade, col = agrupamento3$cluster) +#points(agrupamento3$centers, col = 1:2, pch = 8, cex=2) +#dev.off() + +#png("AgrupamentoK6-2.png",bg="transparent",width = 800, height = 600) +#plot(d$nota.final.pratica,d$atividade, col = agrupamento4$cluster) +#points(agrupamento4$centers, col = 1:2, pch = 8, cex=2) +#dev.off() + +d2 <- dados[,c(-1,-5)] +db <- dbscan(d2,0.2359355,MinPts=5,method=c("hybrid")) + +png("AgrupamentoDBSCAN.png",bg="transparent",width = 800, height = 600) +plot(db,d2) +dev.off() \ No newline at end of file diff --git a/US10 - correlacao.R b/US10 - TabelaParaPerfis.R similarity index 63% rename from US10 - correlacao.R rename to US10 - TabelaParaPerfis.R index 8086271..6e96db7 100644 --- a/US10 - correlacao.R +++ b/US10 - TabelaParaPerfis.R @@ -1,10 +1,42 @@ -#Script de correlacao entre as variaveis para gerar agrupamento. -#Iury Gregory - versao 2.0 (Fevereiro 2013) - +#Script para criacao de tabela para analisar agrupamento e perfis +#Iury Gregory Melo Ferreira - vers�o 2.0 (Fevereiro 2013) library(lattice) +library(plyr) + +dados.atividade <- read.csv("dados/AgrupamentoAtividade.csv",header=T) +dados.atividade <- dados.atividade[,-1] +dados.tempo <- read.csv("dados/tableSumDiscipline.csv",header=T) +dados.sessao <- read.csv("dados/TableSessionLength.csv",header=T) +dados.geral <- read.csv("dados/Geral.csv",header=T) +dados.exercicios <- read.csv("dados/exercicios-20112.csv",header=F) + +colnames(dados.exercicios) <- c("matricula","questao","turma","dataHora","submissao","nota") +dados.exercicios <- dados.exercicios[,1:2] +dados.exercicios <- dados.exercicios[order(dados.exercicios$matricula,dados.exercicios$questao,decreasing = F),] +dados.exercicios <- unique(dados.exercicios) + +dados.numExercicios <- count(dados.exercicios,"matricula") +colnames(dados.numExercicios) <- c("matricula","num.exercicios") +dados.tempo$sumSession <- dados.tempo$sumSession/3600 +colnames(dados.tempo) <- c("matricula","tempo.total.estudo") +dados.tamanhoSessao <- with(dados.sessao, aggregate(timeSession,list(matricula),FUN=median)) +colnames(dados.tamanhoSessao) <- c("matricula","mediana.sessao") +dados.nota <- subset(dados.geral,nota.final.pratica >= 0,select=c(matricula,nota.final.pratica)) + +dados <- merge(dados.tamanhoSessao,dados.nota,by.x="matricula",by.y="matricula") +dados <- merge(dados,dados.numExercicios,by.x="matricula",by.y="matricula") +dados <- merge(dados,dados.tempo,by.x="matricula",by.y="matricula") +dados <- merge(dados,dados.atividade,by.x="matricula",by.y="matricula") + + +############################################################################## + +#Script para eliminacao de variaveis correlatas e criacao de tabela para +# analise dos perfis. + +############################################################################## -dados <- read.csv("dados/TabelaParaPerfis.csv",header=T) #grafico da relacao das variaveis png("Relacao entre variaveis.png",bg="transparent",width=800, height=800) @@ -56,3 +88,7 @@ tabela$atividade <- (tabela$atividade - min(tabela$atividade)) / (max(tabela$ati wirte.table(tabela.cor,"dados/tabelaCorrelacaoPerfis.csv",sep=",",row.names=F,col.names=T) write.table(tabela,"dados/TabelaParaPerfisNormal.csv",sep=",",row.names=F,col.names=T) + + + + diff --git a/US10 - criacaoTabela.R b/US10 - criacaoTabela.R deleted file mode 100644 index 81af3ea..0000000 --- a/US10 - criacaoTabela.R +++ /dev/null @@ -1,31 +0,0 @@ -#Script para criacao de tabela para analisar agrupamento e perfis -#Iury Gregory Melo Ferreira - vers�o 2.0 (Fevereiro 2013) - -library(plyr) - -dados.atividade <- read.csv("dados/AgrupamentoAtividade.csv",header=T) -dados.atividade <- dados.atividade[,-1] -dados.tempo <- read.csv("dados/tableSumDiscipline.csv",header=T) -dados.sessao <- read.csv("dados/TableSessionLength.csv",header=T) -dados.geral <- read.csv("dados/Geral.csv",header=T) -dados.exercicios <- read.csv("dados/exercicios-20112.csv",header=F) - -colnames(dados.exercicios) <- c("matricula","questao","turma","dataHora","submissao","nota") -dados.exercicios <- dados.exercicios[,1:2] -dados.exercicios <- dados.exercicios[order(dados.exercicios$matricula,dados.exercicios$questao,decreasing = F),] -dados.exercicios <- unique(dados.exercicios) - -dados.numExercicios <- count(dados.exercicios,"matricula") -colnames(dados.numExercicios) <- c("matricula","num.exercicios") -dados.tempo$sumSession <- dados.tempo$sumSession/3600 -colnames(dados.tempo) <- c("matricula","tempo.total.estudo") -dados.tamanhoSessao <- with(dados.sessao, aggregate(timeSession,list(matricula),FUN=median)) -colnames(dados.tamanhoSessao) <- c("matricula","mediana.sessao") -dados.nota <- subset(dados.geral,nota.final.pratica >= 0,select=c(matricula,nota.final.pratica)) - -dados <- merge(dados.tamanhoSessao,dados.nota,by.x="matricula",by.y="matricula") -dados <- merge(dados,dados.numExercicios,by.x="matricula",by.y="matricula") -dados <- merge(dados,dados.tempo,by.x="matricula",by.y="matricula") -dados <- merge(dados,dados.atividade,by.x="matricula",by.y="matricula") - -write.table(dados,"dados/TabelaParaPerfis.csv",sep=",",row.names=F,col.names=T) \ No newline at end of file diff --git a/US10 - graficosAgrupamento.R b/US10 - graficosAgrupamento.R deleted file mode 100644 index ba05313..0000000 --- a/US10 - graficosAgrupamento.R +++ /dev/null @@ -1,32 +0,0 @@ -# Script de agrupamento -# Iury Gregory Melo Ferreira - versao 2.0 (Fevereiro 2013) -#k = 3,4,5 e 6 - -dados <- read.csv("dados/TabelaParaPerfis.csv",header=T) - -agrupamento1 <- kmeans(dados[,-1],3) -agrupamento2 <- kmeans(dados[,-1],4) -agrupamento3 <- kmeans(dados[,-1],5) -agrupamento4 <- kmeans(dados[,-1],6) - - -png("AgrupamentoK3.png",bg="transparent",width = 800, height = 600) -plot(dados$atividade,dados$tempo.total.estudo, col = agrupamento1$cluster) -points(agrupamento1$centers, col = 1:2, pch = 8, cex=2) -dev.off() - -png("AgrupamentoK4.png",bg="transparent",width = 800, height = 600) -plot(dados$atividade,dados$tempo.total.estudo, col = agrupamento2$cluster) -points(agrupamento2$centers, col = 1:2, pch = 8, cex=2) -dev.off() - -png("AgrupamentoK5.png",bg="transparent",width = 800, height = 600) -plot(dados$atividade,dados$tempo.total.estudo, col = agrupamento3$cluster) -points(agrupamento3$centers, col = 1:2, pch = 8, cex=2) -dev.off() - -png("AgrupamentoK6.png",bg="transparent",width = 800, height = 600) -plot(dados$atividade,dados$tempo.total.estudo, col = agrupamento4$cluster) -points(agrupamento4$centers, col = 1:2, pch = 8, cex=2) -dev.off() -