Подготовка метрики обучения после контрольного эксперимента - PullRequest
1 голос
/ 04 июля 2019

Я хочу получить доступ и отобразить как точность обучения, так и точность теста после контрольного эксперимента. Я использую точность в качестве показателя.

Если я установлю агрегацию точности для train.acc и создам список как test.acc, так и train.acc, то результат теста не может быть отображен, поскольку в кадре данных есть два столбца класса "acc" , которые кстати идентичны. Тем не менее, я вижу, что результаты тестов содержат точность обучения, даже если агрегация не указана, так как я установил для атрибута предиката ученика значение «оба».

Я подумал об обходном пути, который заключался бы в извлечении train.acc из эталонного объекта, агрегировании и построении его самостоятельно.

Как мне это сделать? Есть ли более простой способ?

Спасибо!

#Learners
learner_GLM <- makeLearner(cl = "classif.glmnet")
learner_SVM <- makeLearner(cl = "classif.ksvm")
learner_PCA <- cpoPca(rank=2) %>>% learner_GLM

#Data
dataA = datasets::iris
dataB = datasets::iris

#Task
task.A = makeClassifTask(data = dataA,target = "Species" )
task.B = makeClassifTask(data = dataB,target = "Species" )
task = list(task.A, task.B )

#Resample
inner = makeResampleDesc("CV", iters = 2, predict = "both")
outer = makeResampleDesc("CV", iters = 2, predict = "both")

#Tune wrappers
##Ctrl
ctrl = makeTuneControlRandom(maxit = 3L)
#1
numeric_ps =  makeParamSet(
  makeNumericParam("s", lower = -2, upper = 2, trafo = function(x) 2^x))

learner_GLM = makeTuneWrapper(learner_GLM, resampling =inner, par.set = numeric_ps, control = ctrl, show.info = FALSE)
#2
learner_PCA <- makeTuneWrapper(learner_PCA, resampling =inner, par.set = numeric_ps, control = ctrl, show.info = FALSE)
#3
numeric_ps =  makeParamSet(
  makeNumericParam("C", lower = -2, upper = 2, trafo = function(x) 2^x),
  makeNumericParam("sigma", lower = -2, upper = 2, trafo = function(x) 2^x)
)
learner_SVM = makeTuneWrapper(learner_SVM, resampling = inner, par.set = numeric_ps, control = ctrl)

#Measures
trainaccuracy = setAggregation(acc, train.mean)
measures =  list(acc, trainaccuracy)

#BMR
learners = list(learner_GLM,learner_SVM, learner_PCA)
bmr =  benchmark(learners, task, outer, measures = measures, show.info = FALSE)

#Plot
plotBMRBoxplots(bmr, acc, style = "violin")
bmr$results$dataA$classif.glmnet.tuned$measures.train
bmr$results$dataA$classif.glmnet.tuned$measures.test
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...