2017-08-24 44 views
1

フォワード「ラベルと予測サイズと一致していない」私はxgboostとR.xgboost多項分類エラー:

両方にかなり新たなんだ、私は私のデータdtrainに多項分類を実行するためにRにxgboost使用しています。

param1 <- list(objective = "multi:softprob" 
      , num_class = 6 
      , booster = "gbtree" 
      , eta = 0.5 
      , max.depth = 7 
      , min_child_weight = 10 
      , max_delta_step = 5 
      , subsample = 0.8 
      , colsample_bytree = 0.8 
      , lambda = 3 # L2 
      , alpha = 5 # L1 
) 
set.seed(2016)  
xgbcv1 <- xgb.cv(params = param1, data = dtrain, nround = 3000, nfold = 3, 
      metrics = list("error", "auc"), maximize = T, 
      print_every_n = 10, early_stopping_rounds = 10) 

これは私に次のエラーがスローされます:

Error in xgb.iter.update(fd$bst, fd$dtrain, iteration - 1, obj) : 
amalgamation/../src/objective/multiclass_obj.cc:75: Check failed: 
label_error >= 0 && label_error < nclass SoftmaxMultiClassObj: label must be in [0, num_class), num_class=6 but found 6 in label. 

だから私はこのエラーをスローnum_class = 7を設定しようとした:

私のコードは次のようになりますので、私が使用しているラベルは、6つのレベルがあります
Error in xgb.iter.eval(fd$bst, fd$watchlist, iteration - 1, feval) : 
amalgamation/../src/metric/elementwise_metric.cc:28: Check failed: 
(preds.size()) == (info.labels.size()) label and prediction size not match, hint: use merror or mlogloss for multi-class classification 

ここでは何が起こっていますか? num_classlabel_error以上である必要がありますか?

+0

PLSは – BigDataScientist

+0

...、 'dput()'データを共有するために使用された場合あなたはそれを最後に克服しましたか?私は私のために働いた解決策を見つけました。具体的には、私のy変数 'set y < - y - 1'(私はxgbへの呼び出しで目標変数を見ていません)https://stackoverflow.com/questions/36086529/understanding-num-classes-for- xgboost-in-r –

答えて

-1

従属変数のレベル数が6その後num_classを指定= 7意味num_classを与える=レベル(従属変数)+ 1つの

関連する問題