J'ai essayé de former un modèle h2o en utilisant le code suivant et faire une prédiction pour de nouvelles données, mais cela conduit à une erreur. Comment puis-je éviter cette erreur?Erreur de prédiction avec mlr:
library(mlr)
a <- data.frame(y=factor(c(1,1,1,1,1,1,1,1,0,0,1,0)),
x1=rep(c("a","b","c"), times=c(6,3,3)))
aTask <- makeClassifTask(data = a, target = "y", positive = "1")
h2oLearner <- makeLearner("classif.h2o.deeplearning",
predict.type = "prob")
model <- train(h2oLearner, aTask)
b <- data.frame(x1=rep(c("a","b", "c"), times=c(3,5,4)))
pred <- predict(model, newdata=b)
conduit à l'erreur suivante:
Error in checkPredictLearnerOutput(.learner, .model, p) :
predictLearner for classif.h2o.deeplearning has returned not the class levels as column names: p0,p1
Si je change predict.type de "réponse" cela fonctionne. Alors, comment prédire les probabilités?
Juste pour info, je n'ai vu personne utiliser mlr (avec ou sans succès) avec h2o auparavant. Sur la base de ce qui précède, je m'attends à ce que des mesures d'intégration soient nécessaires pour que cela fonctionne. – TomKraljevic
Je ne sais pas si ce commentaire est toujours utile maintenant que nous savons qu'il est dû à un bogue, mais par exemple cela fonctionne (sur un ordinateur différent, où j'ai d'abord besoin de mettre à jour R): library (mlr) data (iris) iris2 <- iris iris2 $ Espèce <- ifelse (iris $ Espèce == "setosa", "ja", "nein") task = makeClassifTask (data = iris2, target = "espèce") lrn = makeLearner ("classif.h2o.deeplearning", predict.type = "prob") modèle = train (lrn, tâche) pred = predict (model, newdata = iris2) – tover