существенной разницы (CD) участок для сравнения классификаторов на несколько наборов данных (Demšar2006) может быть получен с помощью пакета MLR, например так:Plotting критических различий в R с импортируемыми данными
# 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]
содержит оценку классификатора i
для набора данных j
). Я ранее генерировал такие данные в рабочем процессе Python и импортировал их в R
в data.frame
(так как для таких графиков пакет Python не существует).
Как я могу создать участок компакт-диска из этих данных?
Я думал о создании 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)
Не знаете, что вы просите - ваш код уже создает участок компакт-диска? Структура объекта BenchmarkResult хорошо документирована, и вы должны иметь возможность извлекать информацию только с небольшими дополнительными усилиями. –
Мне пришлось загрузить пакет «PMCMR» для предпоследней строки для запуска. Тогда сюжет выглядел хорошо. – lawyeR
@LarsKotthoff Я добавил дополнительный код, чтобы выделить мою проблему. Кроме того, я смотрю на BenchmarkResult, но я все еще пытаюсь понять объектную ориентацию R, так как я не очень разбираюсь в R. – rvf