Выбор функций каретки с использованием генетических алгоритмов: как извлечь результаты? - PullRequest
0 голосов
/ 30 июня 2019

Я новичок в уходе Выбор функций генетического алгоритма и начал с простого запуска набора данных радужной оболочки. Я хочу извлечь лучшие характеристики, их точность, а также общее количество модельных тренировок (оценка подмножества функций). Кроме того, я не понимаю, как строится окончательная модель.

Карет дает описание метода: https://topepo.github.io/caret/feature-selection-using-genetic-algorithms.html Тем не менее, я не совсем понял, сколько модельных тренингов им понадобится в конце и как будет построена финальная модель.

library(caret) 

dataset <- iris
levels(dataset$Species) <- c(0, 0, 1)

ga_ctrl <- gafsControl(functions = caretGA, method = "cv", number = 3, verbose = TRUE)
res <- caret::gafs(x = dataset[, 1:(length(dataset)-1)], 
 y = dataset[, length(dataset)],
 iters = 5,
 popSize = 6,
 pcrossover = 0.8,
 pmutation = 0.1,
 gafsControl = ga_ctrl,
 method = "glm", family = binomial(link = 'logit'),
 trControl = trainControl(method = "cv"))

Я получил этот вывод (без установки конкретного семени сейчас):

Fold1 1 0.96 (2)
Fold1 2 0.96->0.97 (2->4, 50.0%) *
Fold1 3 0.97->0.9788889 (4->2, 50.0%) *
Fold1 4 0.9788889->0.9809091 (2->2, 100.0%) *
Fold1 5 0.9809091->0.98 (2->2, 100.0%)
Fold2 1 0.9718182 (3)
Fold2 2 0.9718182->0.9709091 (3->4, 75.0%)
Fold2 3 0.9718182->0.9718182 (3->4, 75.0%)
Fold2 4 0.9718182->0.9709091 (3->1, 33.3%)
Fold2 5 0.9718182->0.9688889 (3->3, 50.0%)
Fold3 1 0.97 (3)
Fold3 2 0.97->0.9688889 (3->3, 100.0%)
Fold3 3 0.97->0.97 (3->3, 100.0%)
Fold3 4 0.97->0.969798 (3->2, 66.7%)
Fold3 5 0.97->0.9709091 (3->3, 100.0%) *
+ final GA
 1 0.9533333 (1)
 2 0.9533333->0.96 (1->2, 50.0%) *
 3 0.96->0.9533333 (2->2, 100.0%)
 4 0.96->0.98 (2->3, 66.7%) *
 5 0.98->0.9733333 (3->3, 100.0%)
+ final model

res$ga$fit дает Точность 0,96, тогда как res$fit дает Точность 0,9533333, но 0,98 должно быть правильным значением, не так ли?

Для общего количества тренировок, я полагаю, это что-то вроде

popSize * iters * folds

с номерами из числа ga_ctrl, но я не уверен в этом.

Для лучших функций, res$optVariables правильно?

...