2016-09-05 8 views
1

maximizeに、xgboostにloglossが悪化していることを通知するにはどうすればよいですか。調整不可能なパラメータを設定すると、xgboostのMLRで最大化(early.stop.roundと一緒に)

library(mlbench) 
library(mlr) 
data(Sonar) 

trainTask1 <- makeClassifTask(data = Sonar,target = "Class",positive = "R") 

lrn = makeLearner("classif.xgboost", predict.type = "prob") 

ps = makeParamSet(
    makeDiscreteParam("nrounds", values =1000L,tunable = FALSE), 
    makeDiscreteParam("eta", values = c(0.01),tunable = FALSE), 
    makeIntegerParam("max_depth", lower=1,upper=5), 
    makeNumericParam("gamma", lower = 1, upper = 50), 
    makeNumericParam("colsample_bytree", lower=0.1,upper=0.9), 
    makeIntegerParam("min_child_weight", lower = 50, upper = 200), 
    makeDiscreteParam("print.every.n", values = 3,tunable = FALSE), 
    makeDiscreteParam("early.stop.round", values = 5L,tunable = FALSE), 
    makeLogicalParam("maximize", default = FALSE,tunable = FALSE) 
) 

ctrl = makeTuneControlIrace(maxExperiments = 200L, show.irace.output = TRUE) 
rdesc = makeResampleDesc("Holdout") 

res = tuneParams(lrn, task = trainTask1, resampling = rdesc, control = ctrl , par.set = ps,measures = logloss, show.info = TRUE) 

私は次のエラーを取得::私はmaximize=FALSEを設定する考え

[Tune-x] 1: nrounds=1000; eta=0.01; max_depth=4; gamma=30.2; colsample_bytree=0.17; min_child_weight=193; print.every.n=3; early.stop.round=5; maximize=TRUE 
Error in xgb.train(params, dtrain, nrounds, watchlist, verbose = verbose, : 
    Please set maximize to note whether the model is maximizing the evaluation or not. 

が最小化されなければならないlogloss調整アルゴリズムを伝えるには十分だろうが、私は、次の例を試してみてください。しかし、私はそれをxgb.trainに渡すことはできません。ラースのコメントとして

R version 3.3.1 (2016-06-21) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows >= 8 x64 (build 9200) 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 
[4] LC_NUMERIC=C       LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] mlr_2.9    stringi_1.1.1  ParamHelpers_1.8 ggplot2_2.1.0  BBmisc_1.10   
[6] mlbench_2.1-1  RevoUtilsMath_8.0.3 

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.5  magrittr_1.5  splines_3.3.1 munsell_0.4.3 lattice_0.20-33 xtable_1.8-2  
[7] colorspace_1.2-6 R6_2.1.2   stringr_1.0.0 plyr_1.8.3  dplyr_0.4.3  tools_3.3.1  
[13] parallel_3.3.1 grid_3.3.1  checkmate_1.8.1 data.table_1.9.6 gtable_0.2.0  DBI_0.4-1  
[19] htmltools_0.3.5 ggvis_0.4.2  xgboost_0.4-3 survival_2.39-4 assertthat_0.1 digest_0.6.9  
[25] irace_1.07  Matrix_1.2-6  shiny_0.13.2  mime_0.4   parallelMap_1.3 RevoUtils_10.0.1 
[31] scales_0.4.0  backports_1.0.2 httpuv_1.3.3  chron_2.3-47  
+0

ええ、これは学習者のラッパーで 'maximize'を直接設定するとうまくいかず、おそらく' xgboost'バグでしょうか?私は彼らがこのエラーメッセージが最近来たコードを変更したことを知っていますが、新しいバージョンはまだCRANに載っていないようです。 –

+0

あなたは正しいです。私はgit hubの問題を発見し、動作するrepoバージョンがあります。それを指摘してくれてありがとう。 – Richard

答えて

0

私のセッション情報は以下のとおりです。これは既知の問題のようです。これに応じてissue on github drt repoバージョンをインストールすることで解決できます。

関連する問題