MLR - 回归基准结果 - 可视化

时间:2017-01-18 05:04:57

标签: mlr

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

在回应@ LarsKotthoff的评论时,我(OP)编辑了我的原始帖子,以提供有关我正在寻求的功能的更多细节。

编辑:

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

  • 决定使用多个存储桶对x轴上的预测进行离散化,比如10个相等长度的存储区(显然,您可以继续使用breaksgroups接口连接到{{1当前存在的)

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

  • 对于每个箱子10,计算平均“实际”并在y轴上绘图(可能有一些可变性的度量)并加入点

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

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

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

我希望这个组合:

generateCalibrationData

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

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)

0 个答案:

没有答案