Как создавать графики для генетических алгоритмов

#r

#r

Вопрос:

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

Ось X: номер поколения

Ось Y: лучшая пригодность

и

Ось X: номер поколения

Ось Y: средняя пригодность

 library(GA)

cross <- function(x1, x2, x3, x4) {2 * x2 * x4   x3 * ( x1 - 2 * x4)}

GA <- ga(type = "real-valued",
         fitness = function(x) -cross(x[1], x[2], x[3], x[4]),
         lower = c(10, 10, 0.9, 0.9), upper = c(80,50,5,5),
         popSize = 50, maxiter = 100, run = 100, pcrossover = 0.75, pmutation = .001)


summary(GA)
plot(GA)
 

Комментарии:

1. @MrFlick Хотя функция не имеет значения, все, что я пытаюсь сделать, это извлечь «среднее» и «лучшее» из этого графика и разделить их на два графика. imgur.com/a/m3GFeK8

2. Если вы предоставили нам код, который мы можем скопировать / вставить для запуска, чтобы получить этот график, тогда мы можем просмотреть исходный код функций, которые нарисовали график, и помочь вам извлечь нужные части.

3. @MrFlick Я отредактировал свой пост, я использую RStudio, и версия GA пакета, который у меня есть, равна 3.2

Ответ №1:

Вы можете извлекать данные из результатов через summary слот объекта.

 results <- as.data.frame(GA@summary)
results $iter = seq.int(nrow(results))
 

А затем можете использовать это для создания своих графиков

 plot(mean~iter, results)
plot(max~iter, results)