Le problème de R est que lorsque nous avons lançon des calculs long, il n’utilise qu’un seul coeur de la machine. Alors pour y remédier nous avons permis à R de faire du calcul parallèle sur les 8 coeurs d’un processeur, grâce aux librairies suivantes.

library(parallel)
library(doMC)

registerDoMC(8)


Cette partie de code nous permet d’apprendre grâce aux données d’apprentissage et ensuite prédire les données test.

library(randomForest)

back <- read.csv2('final_lm.csv',row.names=1)
insee <- read.csv2('insee.csv',row.names=1)

# On va récuperer les départements à partir du code INSEE
dep <- c()
for(i in 1:35890){
  dep[i] <- paste(strsplit(as.character(insee[,1]),split='')[[i]][1:2],sep='',collapse='')
}

# On sélectionne les départements de la région Aquitaine-Limousin-Poitou-Charente
com_test <- which(dep == "16" |dep == "17" |dep == "19" |dep == "23" |dep == "24" |
        dep == "33" |dep == "40" |dep == "47" |dep == "64" |dep == "79" |
        dep == "86" |dep == "87")

# On créer les différents groupes
data_test <- back[com_test,] 
tx_test <- data_test[,70]
data_test <- data_test[,-70]
data_train <- back[-com_test,]
  
# On apprend grâce au randomForest
## On lance 8 randomForest avec 50 arbres pour ensuite les combiner pour avoir 
## une forêt final de 400 arbres 
rf <- foreach(ntree=rep(50, 8), .combine = randomForest::combine, 
              .packages = "randomForest") %dopar% {
                randomForest(formula = tx_abstention ~ . -1, data = data_train, ntree = ntree, 
                             importance = TRUE)
              }

# Représentation de 20 plus importantes variables à la regression
varImpPlot(rf,type=2,n.var=20)

# On prédit les communes du groupe test
pred_aqui <- predict(rf,data_test)
pred_aqui <- cbind(pred_aqui,insee[com_test,])
names(pred_aqui) <- c('pred','insee')