可以使用 mlr 包生成 用于比较多个数据集 ( Demšar2006 ) 上的分类器的关键差异 (CD) 图,如下所示:
# THIS WORKS
library(mlr)
lrns = list(makeLearner("classif.knn"), makeLearner("classif.svm"))
tasks = list(iris.task, sonar.task)
rdesc = makeResampleDesc("CV", iters = 2L)
meas = list(acc)
bmr = benchmark(lrns, tasks, rdesc, measures = meas)
cd = generateCritDifferencesData(bmr)
plotCritDifferences(cd)
这需要评估结果驻留在一个相当复杂的BenchmarkResult
对象中,尽管数据基本上是一个矩阵(其中包含数据集M[i, j]
的分类器分数)。我之前在 Python 工作流程中生成了此类数据并导入到一个(因为似乎没有用于此类绘图的 Python 包)。i
j
R
data.frame
如何从这些数据中生成 CD 图?
我想BenchmarkResult
从 中创建一个data.frame
,但不知道从哪里开始:
# THIS DOES NOT WORK
library(mlr)
# Here I would import results from my experiments instead of using random data
# e.g. scores for 5 classifiers and 30 data sets, each
results = data.frame(replicate(5, runif(30, 0, 1)))
# This is the functionality I'm looking for
bmr = benchmarkResultFromDataFrame(results)
cd = generateCritDifferencesData(bmr)
plotCritDifferences(cd)