0

可视化回归学习器基准实验结果的选项有哪些?例如,generateCalibrationData不接受从一组regr.学习者派生的基准结果对象。我想要类似于可用于分类的校准图的东西。

为了回应@LarsKotthoff 的评论,我(OP)编辑了我的原始帖子,以提供更多关于我正在寻找的功能的详细信息。

编辑:

我正在寻找实际与预测的校准类型图,例如简单的散点图或类似于Classifier Calibration下存在的图。如果我没记错的话,以下对于回归问题是有意义的(并且似乎是为分类器校准所做的):

  • 决定一些桶来离散化 x 轴上的预测,比如 10 个等长的箱(显然你可以继续使用breaksgroups接口到generateCalibrationData当前存在的)

  • 对于这些箱 10 中的每一个,计算平均值“预测”并在 x 轴上绘制(例如通过一个点)(可能具有某种可变性度量)并连接 10 个箱中的点

  • 对于这些箱 10 中的每一个,计算平均“实际”并在 y 轴上绘制(可能具有某种可变性度量)并连接点

  • 提供每个桶中体积的一些表示(就像您通过“rag/rug”图对分类器校准所做的那样)

我的问题背后的基本前提是可以提供什么样的可视化来帮助解释 rsq、mae性能测量。有许多实际与预测的配置可以导致相同的 rsq、mae 等。

一旦存在某个图,打开/关闭聚合将允许检查单个重采样结果。

我希望这样的组合:

cal <- generateCalibrationData(bmr) 
plotCalibration(cal)

将可用于回归任务,目前似乎不可用(下面的可重现示例):

# Practice Data

library("mlr")
library(mlbench)

data(BostonHousing)
dim(BostonHousing)
head(BostonHousing)

# Define Nested Cross-Validation Strategy

cv.inner <- makeResampleDesc("CV", iters = 2)
cv.outer <- makeResampleDesc("CV", iters = 6)

# Define Performance Measures

perf.measures <- list(rsq, mae)

# Create Task

bh.task <- makeRegrTask(id = "bh",
                        data = BostonHousing, 
                        target = "medv")

# Create Tuned KSVM Learner

ksvm <- makeLearner("regr.ksvm")

ksvm.ps <- makeParamSet(makeDiscreteParam("C", values = 2^(-2:2)),
                        makeDiscreteParam("sigma", values = 2^(-2:2)))

ksvm.ctrl <- makeTuneControlGrid()

ksvm.lrn = makeTuneWrapper(ksvm, 
                           resampling = cv.inner,
                           measures = perf.measures,
                           par.set = ksvm.ps, 
                           control = ksvm.ctrl, 
                           show.info = FALSE)

# Create Tuned Random Forest Learner

rf <- makeLearner("regr.randomForest",
                  fix.factors.prediction = TRUE)    

rf.ps <- makeParamSet(makeDiscreteParam("mtry", values = c(2, 3, 5)))

rf.ctrl <- makeTuneControlGrid()

rf.lrn = makeTuneWrapper(rf, 
                         resampling = cv.inner,
                         measures = perf.measures,
                         par.set = rf.ps, 
                         control = rf.ctrl, 
                         show.info = FALSE)

# Run Cross-Validation Experiments   

bh.lrns = list(ksvm.lrn, rf.lrn)        

bh.bmr <- benchmark(learners = bh.lrns, 
                    tasks = bh.task, 
                    resampling = cv.outer, 
                    measures = perf.measures, 
                    show.info = FALSE)

# Calibration Charts

bh.cal <- generateCalibrationData(bh.bmr)
plotCalibration(bh.cal)

产生:

> bh.cal <- generateCalibrationData(bh.bmr)

Error in checkPrediction(x, task.type = "classif", predict.type = "prob") : 

  Prediction must be one of 'classif', but is: 'regr'

> sessionInfo()

R version 3.2.3 (2015-12-10)

attached base packages:

[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:

[1] mlbench_2.1-1     ROCR_1.0-7        gplots_3.0.1      mlr_2.9           
[5] stringi_1.1.1     ParamHelpers_1.10 ggplot2_2.1.0     BBmisc_1.10      

loaded via a namespace (and not attached):

 [1] digest_0.6.9        htmltools_0.3.5     R6_2.2.0            splines_3.2.3          
 [5] scales_0.4.0        assertthat_0.1      grid_3.2.3          stringr_1.0.0          
 [9] bitops_1.0-6        checkmate_1.8.2     gdata_2.17.0        survival_2.38-3        
[13] munsell_0.4.3       tibble_1.2          randomForest_4.6-12 httpuv_1.3.3           
[17] parallelMap_1.3     mime_0.5            DBI_0.5-1           labeling_0.3           
[21] chron_2.3-47        shiny_1.0.0         KernSmooth_2.23-15  plyr_1.8.4             
[25] data.table_1.9.6    magrittr_1.5        reshape2_1.4.1      kernlab_0.9-25         
[29] ggvis_0.4.3         caTools_1.17.1      gtable_0.2.0        colorspace_1.2-6       
[33] tools_3.2.3         parallel_3.2.3      dplyr_0.5.0         xtable_1.8-2           
[37] gtools_3.5.0        backports_1.0.4     Rcpp_0.12.4   
4

0 回答 0