"参数意味着不同的行数:47505,5938和#34; predict()中的错误?

时间:2016-01-04 17:41:33

标签: r dataframe predict mlr

以下是我正在实施的一段代码:

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

我为一个简单的虹膜数据运行了相同的脚本,运行正常。 &#34;参数意味着不同的行数:47505,5938和#34;手段? 训练集有47505行,5938表示什么? *使用的库是&#39; mlr&#39;

提前致谢,

1 个答案:

答案 0 :(得分:0)

您的某些数据可能包含NA,并且预测函数不会估算学习型分类器使用的NA值。在这种情况下,错误消息可以重新格式为:“超过47505行的5938有效”。丢弃包含NA的第一个数据。