Deap history
Теги: machine-learning genetic python
Иногда бывает полезно писать историю обучения, для получения более расширенной статистики. Пример такой реализации тут
В данном случае восстанавилвается генеалогическое дерево индивидуумов с помощью построения графа
history = History()
# Decorate the variation operators
toolbox.decorate("mate", history.decorator)
toolbox.decorate("mutate", history.decorator)
# Create the population and populate the history
population = toolbox.population(n=POPSIZE)
history.update(population)
# Do the evolution, the decorators will take care of updating the
# history
# [...]
import matplotlib.pyplot as plt
import networkx
graph = networkx.DiGraph(history.genealogy_tree)
graph = graph.reverse() # Make the graph top-down
colors = [toolbox.evaluate(history.genealogy_history[i])[0] for i in graph]
networkx.draw(graph, node_color=colors)
plt.show()
Не стоит копироват ьв лоб данную реализацию в реальных задачах, т.к. networkx
довольно медленный.