0
После запуска следующий R код:Почему я получаю: Длина этикетки должно быть равно числу строк в ошибки ввода данных при использовании MLR с xgboost
#' load libraries
library(parallelMap)
library(mlr)
#' *** Define the task
task = makeClassifTask(id = "classif_prem",
data = data,
target = "Result")
#' *** Define the learner
lrn = makeLearner(id = "learn_prem", cl = "classif.xgboost")
#' train model
mod = train(learner = lrn, task = task)
После запуска ул (данные) Я получаю :
> str(data)
Classes ‘tbl_df’ and 'data.frame': 210 obs. of 3 variables:
$ Result : Factor w/ 3 levels "Draw","Loss",..: 1 3 1 1 1 2 2 2 1 1 ...
$ RankDiff: int 11 3 11 5 -14 11 -2 -4 5 -8 ...
$ DiffDiff: num 1.5 -1 1.5 -1 -1 0 0 -1.5 0 -1.5 ...
резюме задача дает:
Supervised task: classif_prem
Type: classif
Target: Result
Observations: 210
Features:
numerics factors ordered
2 0 0
Missings: FALSE
Has weights: FALSE
Has blocking: FALSE
Classes: 3
Draw Loss Win
61 64 85
Positive class: NA
Warning message:
drop ignored
затем я получаю ошибку:
Error in xgb.setinfo(dmat, names(p), p[[1]]) :
The length of labels must equal to the number of rows in the input data
In addition: Warning message:
drop ignored
Любая помощь для предотвращения этой ошибки будет оценена по достоинству. Благодарю.
Не могли бы вы поделиться данными, которые используете? Похоже, он должен работать. –
похоже, что вы передаете tbl_df вместо data.frame как элемент данных в задаче. они не имеют точно таких же свойств, я бы начал с того, что вернул tbl_df обратно в data.frame. но, как говорит ларс, без данных я не могу точно сказать, что происходит. – Zach
Большое спасибо. Дополнительный класс tbl_df возился с mlr и xgboost. Я сделал это только data.frame, и это сработало. – sagrules