1

以下は、私が実装しているコードの一部です。

train.data <- data.frame(cbind(all[1:end_trn,-1],Response))

#model building
train.task <- makeClassifTask(data = train.data[1:round(end_trn*train.fact),], target = "Response")
test.task <- makeClassifTask(data = train.data[(round(end_trn*train.fact)+1):end_trn,], target = "Response")

lrn = makeLearner("classif.xgboost")
lrn$par.vals = list(nrounds = 10,
        print.every.n = 5,
        objective = "multi:softmax",
        #num_class = 9,
        depth = 4,
        eta = 0.05,
        colsample_bytree = 0.66,
        min_child_weight = 4,
        subsample = 0.91)

model <- train(lrn, train.task)
pred <- predict(model, train.task)

コードの最後のコマンドを実行しているときに、次のエラーに直面します。

Error in data.frame(id = 1:47505, truth = c(8L, 4L, 8L, 8L, 8L, 8L, 8L,  : 
  arguments imply differing number of rows: 47505, 5938

虹彩データの単純なケースに対して同じスクリプトを実行しましたが、正常に動作しています。「引数は行数が異なることを意味します: 47505、5938」とはどういう意味ですか? トレーニング セットには 47505 行ありますが、5938 は何を示していますか? ※使用ライブラリは「mlr」

前もって感謝します、

4

1 に答える 1

0

一部のデータには NA が含まれている可能性があり、予測関数は、学習した分類器によって使用される NA 値に帰属しません。この場合、エラー メッセージは「47505 行を超える 5938 行が有効です」と再定式化できます。NA を含む最初のデータを破棄します。

于 2018-12-06T14:28:43.343 に答える