1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#################
#### Lecture ####
#################
donnees <- read.csv("voiture_ou_train.csv", sep = ",",header = T,
na.strings = "?")
donnees_a_predire <- donnees[is.na(donnees$class),-which(colnames(donnees)=="class")]
donnees_modele <- donnees[!is.na(donnees$class),]
######################
#### Modélisation ####
######################
library(caret)
set.seed(777) # fixation du noyau aléatoire
# Fonction pour assurer de faire de la validation croisée pour l'ajustement du modèle
trControl <- trainControl(method = "cv", number = 10, classProbs = T)
# Variable à prédire
Y <- donnees_modele$class
# Variables explicatives
X <- donnees_modele[,-which(colnames(donnees_modele)=="class")]
# Séparation de nos données en échantillon d'apprentissage/test
inTrain <- createDataPartition(donnees_modele[,1], p = 0.75, list = FALSE)
trainY <- Y[inTrain]
testY <- Y[-inTrain]
trainX <- X[inTrain,]
testX <- X[-inTrain,]
# Ajustement des modèles (ex : random forest)
rfFit <- train(trainX,trainY, method = "rf",
trControl = trControl, tuneLength = 10)
plot(rfFit)
# Comparaison ajustement / réel
table(predict(rfFit,trainX),trainY)
# Comparaison test / réel
table(predict(rfFit,testX),testY)
# Possibilité d'essaye d'autres modèles, liste ici :
?train_model_list
#############################################
#### Prévision sur l'échantillon inconnu ####
#############################################
donnees_a_predire$class_predite <- predict(rfFit,donnees_a_predire) |
Partager