Je souhaite réaliser un modèle prédictif en utilisant un l'algorithme d'arbre de décision comme modèle d'apprentissage automatique. Pour ça, j’utilise la librairie "caret", le protocole d'optimisation se base sur la méthode des 10-folds cross validation.
Cependant, au stade d'apprentissage du modèle (la fonction train -le code ci-dessous) j'obtiens le message d'avertissement suivant:
Warning message:
In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, :
There were missing values in resampled performance measures.
De plus, lorsque je réalise une prédiction à partir d'un jeu de données test, j'obtiens pour une étendue de valeurs réelles de y (variable dépendante) la même valeur de prédiction.
Pour mieux comprendre le problème, je vous fournis mon code avec un jeux de données fictif pour le reproduire.
Quelle est la raison de se résultat ?
J'aimerais corriger ce problème.
Je vous remercie d'avance.
Louaï
Code : Tout sélectionner
#création du jeux de données
y<-rnorm(80, 4663, 687)
x1<-rnorm(80, 0.1236, 0.095)
x2<-rnorm(80, 0.2552, 0.084)
x3<-rnorm(80, 0.2333, 0.105)
x4<-rnorm(80, 0.4555, 0.182)
x5<-rnorm(80, 0.5688, 0.022)
mydata<-data.frame(y,x1,x2,x3,x4,x5)
mydata
#la partition d'apprentissage
set.seed(77)
trainmodel<-sample(seq(80), 60, replace=FALSE)
library(caret)
set.seed(31)
#le protocole d'optimisation des paramètres de l'algorithme
trainctrl <- trainControl(method = "cv", number = 10, verboseIter = TRUE)
#apprentissage du modèle
set.seed(31)
tree.model <- train(y~., data=mydata[trainmodel,], method = "rpart",
tuneLength = 10,
preProcess = c("center", "scale"),
trControl = trainctrl,
metric="Rsquared")
#test du modèle
tree.predict <- predict(tree.model, mydata[-trainmodel])
tree.predict