2017-07-10 12 views
4

次のコードを使用してh2oモデルをトレーニングし、新しいデータの予測を試みましたが、エラーが発生しました。どうすればこのエラーを回避できますか?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) 

は、次のエラーにつながる:

Error in checkPredictLearnerOutput(.learner, .model, p) :
predictLearner for classif.h2o.deeplearning has returned not the class levels as column names: p0,p1

私はそれが動作する "レスポンス" にpredict.typeを変更した場合。どのように確率を予測するのですか?

+0

ちょうど、私は以前にh2oでmlrを(成功していてもいなくても)使用していませんでした。上記に基づいて、私はそれが機能するためにはいくつかの統合が必要であると考えています。 – TomKraljevic

+0

このコメントは、バグが原因であることが判明した今でも役立ちます(たとえば、別のコンピュータで、まずRを更新する必要があった場合など): ライブラリ(mlr) data ) iris2 < - iris iris2 $種別< - ifelse(iris $ Species == "setosa"、 "ja"、 "nein") タスク= makeClassifTask(データ= iris2、ターゲット= "種") lrn = makeLearner ( "classif.h2o.deeplearning"、predict.type = "prob") model = train(lrn、task) pred = predict(model、newdata = iris2) – tover

答えて

3

このバグはthis commitに修正され、次のリリースになります。それまでは、Githubのバージョンをインストールすることができます:

devtools::install_github("mlr-org/mlr") 
+0

残念ながら、これは私にエラーを与えます。到達した)。 Githubのバージョンをインストールする別の方法はありますか? – tover

+0

リポジトリを複製し、 'R CMD INSTALL .'を実行することもできます。 –

関連する問題