Я просто испытываю эту проблему только с определенным набором данных.Когда я использую следующие входные данные, результаты выглядят нормально
str(trainDataFrame, list.len = ncol(trainDataFrame))
'data.frame': 486 obs. of 173 variables:
$ snaive : int
$ arima : num
$ ets : num
$ stl : num
$ tsAverage : num
$ horizon : Factor w/ 12 levels
$ OpenLag1 : num
$ OpenLag2 : num
$ OpenLag3 : num
$ CloseLag1 : num
$ CloseLag2 : num
$ CloseLag3 : num
$ US.HR.RecruitingLag1 : int
$ US.HR.RecruitingLag2 : int
$ US.HR.RecruitingLag3 : int
$ US.Employment.rateLag1 : num
$ US.Employment.rateLag2 : num
$ US.Employment.rateLag3 : num
$ Services.Person.HireLag1 : int
$ Services.Person.HireLag2 : int
$ Services.Person.HireLag3 : int
$ target : num
$ trend : int
$ season : Factor w/ 13 levels
$ numericIndex : num
$ arima_ets : num
$ arima_stl : num
$ ets_stl : num
$ arima_ets_stl : num
$ arima_ets_snaive : num
$ arima_stl_snaive : num
$ ets_stl_snaive : num
Однако, когда я использовал следующие входные данные, я получаю chr в качестве моих выходных прогнозов
str(trainDataFrame)
'data.frame': 234 obs. of 46 variables:
$ snaive : num
$ arima : num
$ ets : num
$ tsAverage : num
$ horizon : Factor w/ 12 levels
$ HiPoLag1 : num
$ HiPoLag2 : num
$ HiPoLag3 : num
$ Calendar.DaysLag1 : int
$ Calendar.DaysLag2 : int
$ Calendar.DaysLag3 : int
$ Consumption.DaysLag1 : int
$ Consumption.DaysLag2 : int
$ Consumption.DaysLag3 : int
$ target : num
$ trend : int
$ season : Factor w/ 13 levels
$ numericIndex : num
$ arima_ets : num
ЭтоРезультаты от 2-х входных данных.Заметьте, что ranger $ pred $ pred это char вместо num.
$ ranger :List of 23
..$ method : chr "ranger"
..$ modelInfo :List of 15 ...
..$ modelType : chr "Regression"
..$ results :'data.frame': 5 obs. of 5 variables: ...
..$ pred :'data.frame': 720 obs. of 5 variables:
.. ..$ pred : chr [1:720]
.. ..$ obs : num [1:720]
.. ..$ rowIndex: int [1:720] 102 102 102 102 102 101 114 101 114 101 ...
.. ..$ mtry : num [1:720] 3 14 26 37 49 3 3 14 14 26 ...
.. ..$ Resample: chr [1:720] "Training02" "Training02" "Training02"
Если вам нужно увидеть код, ниже приведен код, который я использую для вызова функции поезда для обоих наборов данных
trControl = list(verboseIter = TRUE)
trControl <- c(list(index = cvindexes[["cvtrainidx"]],
indexOut = cvindexes[["cvtestidx"]],
savePredictions = "all"),
trControl)
caretTrainControl <- do.call(caret::trainControl, trControl)
trainedModels <- lapply(
mlParams,
function(x) do.call(caret::train, c(list(form = target ~ .,
data = trainDataFrame,
trControl = caretTrainControl),
x))
)
В обоих случаях использовались одинаковые mlParams.Пожалуйста, смотрите ниже.
$knn
$knn$method
[1] "knn"
$knn$tuneGrid
k
1 1
2 2
3 3
...
20 20
$knn$metric
[1] "RMSE"
$knn$preProcess
[1] "zv" "knnImpute" "center" "scale"
$glmnet
$glmnet$method
[1] "glmnet"
$glmnet$tuneLength
[1] 50
$glmnet$metric
[1] "RMSE"
$glmnet$preProcess
[1] "zv" "knnImpute" "center" "scale"
$svmRadial
$svmRadial$method
[1] "svmRadial"
$svmRadial$tuneGrid
C sigma
1 10 1e-05
2 100 1e-05
3 1000 1e-05
...
12 1000 1e-02
$svmRadial$metric
[1] "RMSE"
$svmRadial$preProcess
[1] "zv" "knnImpute" "center" "scale"
$xgbTree
$xgbTree$method
[1] "xgbTree"
$xgbTree$tuneGrid
nrounds max_depth eta gamma colsample_bytree min_child_weight
1 1 2 0.005 0 0.3 1
2 2 2 0.005 0 0.3 1
3 3 2 0.005 0 0.3 1
...
900 100 6 0.005 0 0.7 1
$xgbTree$nthread
[1] 1
$xgbTree$metric
[1] "RMSE"
$xgbTree$preProcess
[1] "zv" "knnImpute" "center" "scale"
Я не понимаю, почему для второго набора данных рейнджер $ pred $ pred привел к chr вместо num.Кто-нибудь когда-либо испытывал это или знает, что это происходит?Заранее спасибо!