Извлечение прогнозов из партии в r (млр) - PullRequest
0 голосов
/ 02 ноября 2018

Я выполнил пакетную метку и пытаюсь получить прогнозы.

После уменьшения результатов с помощью следующего кода

res = reduceResultsDataTable()
jt = getJobTable()

Я вытащил результаты для каждого учащегося и задачи:

#First algorithm - power combination (examplary)
job_ids_featureless_power = jt %>% filter(algorithm == "regr.featureless", problem == "Power") %>% pull(job.id)
res_featureless_power = res[job.id %in% job_ids_featureless_power]

Теперь результаты сохраняются в следующем формате:

head(res_featureless_power$result)
[[1]]
[[1]]$`measures.test`
        mse.test.mean         mae.test.mean        rmse.test.rmse         rsq.test.mean  kendalltau.test.mean 
          2.072718285           1.107952812           1.439693816          -0.003963842                    NA 
spearmanrho.test.mean   pearsonsr.test.mean    timeboth.test.mean 
                   NA                    NA           0.000000000 

[...]
[[1]]$pred.test
Prediction: 293 observations
predict.type: response
threshold: 
time: 0.00
   id     truth  response
2   2 -2.434211 -2.137163
4   4 -2.675439 -2.137163
9   9 -0.750000 -2.137163
15 15 -3.951754 -2.137163
78 78 -3.500000 -2.137163
87 87 -1.557018 -2.137163
... (#rows: 293, #cols: 3)

[...]
[[2]]
[[2]]$`measures.test`
        mse.test.mean         mae.test.mean        rmse.test.rmse         rsq.test.mean  kendalltau.test.mean 
         2.3432786683          1.2223546305          1.5307771452         -0.0003114365                    NA 
spearmanrho.test.mean   pearsonsr.test.mean    timeboth.test.mean 
                   NA                    NA          0.0000000000 

[...]
[[2]]$pred.test
Prediction: 292 observations
predict.type: response
threshold: 
time: 0.00
   id      truth response
3   3 -2.1045455 -2.14352
6   6 -2.8157895 -2.14352
25 25 -1.7850877 -2.14352
42 42 -3.0000000 -2.14352
75 75  0.2982456 -2.14352
76 76 -2.7149123 -2.14352
... (#rows: 292, #cols: 3)

[...]
[[3]]
[[3]]$`measures.test`
        mse.test.mean         mae.test.mean        rmse.test.rmse         rsq.test.mean  kendalltau.test.mean 
          2.183591357           1.211876010           1.477697992          -0.002771853                    NA 
spearmanrho.test.mean   pearsonsr.test.mean    timeboth.test.mean 
                   NA                    NA           0.000000000 

[...]
[[3]]$pred.test
Prediction: 293 observations
predict.type: response
threshold: 
time: 0.00
   id     truth  response
14 14 -2.903509 -2.138441
19 19 -0.372807 -2.138441
39 39 -3.013158 -2.138441
50 50 -3.539474 -2.138441
55 55 -1.048246 -2.138441
58 58 -1.910714 -2.138441
... (#rows: 293, #cols: 3)

[...]
[[4]]
[[4]]$`measures.test`
        mse.test.mean         mae.test.mean        rmse.test.rmse         rsq.test.mean  kendalltau.test.mean 
          2.327354765           1.204544750           1.525567031          -0.001207572                    NA 
spearmanrho.test.mean   pearsonsr.test.mean    timeboth.test.mean 
                   NA                    NA           0.000000000 

[[4]]$measures.train
[1] NA NA NA NA NA NA NA NA

[[4]]$model
NULL

[[4]]$pred.test
Prediction: 293 observations
predict.type: response
threshold: 
time: 0.00
   id      truth  response
7   7 -2.1071429 -2.151513
13 13 -0.7105263 -2.151513
26 26 -1.6666667 -2.151513
36 36 -2.4285714 -2.151513
40 40 -1.7149123 -2.151513
43 43 -1.8392857 -2.151513
... (#rows: 293, #cols: 3)

[...]
[[5]]
[[5]]$`measures.test`
        mse.test.mean         mae.test.mean        rmse.test.rmse         rsq.test.mean  kendalltau.test.mean 
          2.565342245           1.277489347           1.601668582          -0.007325195                    NA 
spearmanrho.test.mean   pearsonsr.test.mean    timeboth.test.mean 
                   NA                    NA           0.000000000 

[[5]]$measures.train
[1] NA NA NA NA NA NA NA NA

[[5]]$model
NULL

[[5]]$pred.test
Prediction: 293 observations
predict.type: response
threshold: 
time: 0.00
   id       truth  response
10 10 -0.07727273 -2.159876
11 11 -0.39912281 -2.159876
22 22 -3.17105263 -2.159876
34 34 -2.05263158 -2.159876
44 44 -1.82017544 -2.159876
54 54 -2.74561404 -2.159876
... (#rows: 293, #cols: 3)

[...]

[[6]]
[[6]]$`measures.test`
        mse.test.mean         mae.test.mean        rmse.test.rmse         rsq.test.mean  kendalltau.test.mean 
           1.92446761            1.12860248            1.38725182           -0.00239135                    NA 
spearmanrho.test.mean   pearsonsr.test.mean    timeboth.test.mean 
                   NA                    NA            0.00000000 

[...]
[[6]]$pred.test
Prediction: 293 observations
predict.type: response
threshold: 
time: 0.00
   id      truth  response
16 16 -0.3771930 -2.139435
20 20 -0.8508772 -2.139435
24 24 -1.2412281 -2.139435
28 28  0.6096491 -2.139435
29 29 -2.8928571 -2.139435
38 38 -1.7894737 -2.139435
... (#rows: 293, #cols: 3)

[...]

Чтобы получить показатель производительности, я использовал следующий код, который отлично работал:

x_featureless_power = lapply(res_featureless_power$result, FUN = function(x) x$measures.test) %>% data.frame() %>% t() %>% data.frame()
rownames(x_featureless_power) = NULL

Однако я не могу получить прогнозы из pred.test. Я попробовал следующее и получаю соответствующее сообщение об ошибке:

job_ids_featureless_power = jt %>% filter(algorithm == "regr.featureless", problem == "Power") %>% pull(job.id)
res_featureless_power = res[job.id %in% job_ids_featureless_power]
pred_featureless_power = lapply(res_featureless_power$result, FUN = function(x) x$pred.test) %>% data.frame() %>% t() %>% data.frame()
#Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE,  : 
#arguments imply differing number of rows: 293, 292

Любой намек высоко ценится:)

1 Ответ

0 голосов
/ 05 ноября 2018

Надеюсь, у вас все в порядке с ответом, не содержащим этого dplyr материала. Он укажет вам, куда смотреть, а также включит минимальный пример:

library(mlr)
library(batchtools)
reg = makeExperimentRegistry(file.dir = NA)
learners = list("classif.rpart", "classif.svm")
tasks = list(iris.task)
batchmark(learners, tasks, cv3, models = TRUE)
submitJobs()
res = reduceBatchmarkResults()
res$results$`iris-example`$classif.rpart$pred$data
res$results$`iris-example`$classif.svm$pred$data
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...