OK, donc une autre question débutant en rapport avec le Titanic Concours:Forêt aléatoire dans R: nouveaux niveaux de facteur ne sont pas présents dans les données de formation
Je suis en train d'exécuter une prédiction forêt aléatoire contre mes données de test. Tout mon travail a été fait sur des données combinées de test et d'entraînement.
J'ai maintenant diviser le 2 à testdata et trainingdata
je le code suivant:
trainingdata <- droplevels(data.combined[1:891,])
testdata <- droplevels(data.combined[892:1309,])
fitRF <- randomForest(as.factor(Survived) ~ Pclass + Sex + Age + SibSp
+ Parch + Fare + Embarked
+ new.title + family.size + FamilyID2,
data=trainingdata,
importance =T,
ntree=2000)
varImpPlot(fitRF)
#All works up to this point
Prediction <- predict(fitRF, testdata)
#This line above generates error
submit <- data.frame(PassengerID = data.combined$PassengerId, Survived
= Prediction)
write.csv(submit, file="14072017_1_RF", row.names = F)
Quand je lance la ligne de prédiction je reçois l'erreur suivante:
> Prediction <- predict(fitRF, testdata)
Error in predict.randomForest(fitRF, testdata) :
New factor levels not present in the training data
Quand je cours str (testdata) et str (trainingdata) je peux voir 2 facteurs qui ne correspondent plus
Trainingdata
$ Parch : Factor w/ 7 levels
Testdata
$ Parch : Factor w/ 8
Trainingdata
$ FamilyID2 : Factor w/ 22
Testdata
$ FamilyID2 : Factor w/ 18
Est-ce que ce sont ces différences qui provoquent mon erreur? Et si oui, comment puis-je résoudre ce problème?
Merci beaucoup
Informations complémentaires: J'ai enlevé Parch et FamilyID2 de la ligne de création forêt d'arbres décisionnels, et le code fonctionne maintenant, il est donc sans aucun doute ces 2 variables qui sont à l'origine de la question avec des niveaux incompatibles.
La duplication possible de [Forfait forêt aléatoire dans R montre une erreur lors de la prédiction() s'il existe de nouveaux niveaux de facteur dans les données de test. Est-il possible d'éviter cette erreur?] (Https://stackoverflow.com/questions/17059432/random-forest-package-in-r-shows-error-during-prediction-if-there-are-new-fact – RUser
J'ai regardé ce post, et j'ai essayé d'implémenter la solution mais l'erreur était la même. –
Avant la fonction 'predict()' si vous exécutez 'testdata <- factor (testdata, levels = levels (trainingdata))' vous ne devriez avoir aucun problème. – Prem