выборка (на 1 единичку 17 ноликов)
Тестовая выборка много больше обучающей (1 / 295)
Я хочу разбить обучающую выборку для кросс валидации на 295 фолдов, но так, чтобы модель обучалась на одном фолде, а проверялась на оставшихся 294.
Можно сделать, наверное, вот так, но я не уверен что это правильно
trainControl(method = "cv", number = 295, p = 1/ 295)
Это скорее всего не правильно, тк р вроде отвечает за то что я хочу, но по дефолту р = 0.75
При этом я хочу сохранить несбалансированность класса в каждом фолде 1 / 17
Это можно сделать для всей выборки вот так
createDataPartition(dat$class, p=1/17)
но как это в cv запихать я не могу додуматься.
Или такой подход принципиально не правильный? Может хватить обычной 10 кратной cv со случайным содержанием класса?
И второй вопрос
train из caret'а использует для классификации accuracy, но в моем случае для несбалансированной выборки я хочу использовать метрику на базе accuracy с коэффициентами для элементов confusion matrix. (Метрика является требованием извне, а не самодеятельностью).
Прописать метрику через функцию я могу
function(actVal, predVal){...}
Но как ее впихать в train?
https://shiring.github.io/machine_learning/2017/04/02/unbalanced
Обсуждают сегодня