Deap history

Теги: ml  genetic 

Иногда бывает полезно писать историю обучения, для получения более расширенной статистики. Пример такой реализации тут

В данном случае восстанавилвается генеалогическое дерево индивидуумов с помощью построения графа

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 довольно медленный.