Я хочу иметь возможность получить всю мою статистику из журнала, чтобы я мог использовать ее для графического представления. В нынешнем виде мой бортовой журнал содержит только номера поколений и количество оценок. Алгоритм вычисляет и выводит avg, std, min и max, но они не возвращаются, поэтому я не могу их использовать. Есть ли способ, которым я могу получить эти значения из моего алгоритма?
Я попытался просмотреть документацию для создания записей, но что там либо не имеет смысла для меня, либо относится к моей ситуации.
def main():
pop = toolbox.population(n=300)
hof = tools.HallOfFame(1)
stats_fit = tools.Statistics(lambda ind: ind.fitness.values)
stats_size = tools.Statistics(len)
mstats = tools.MultiStatistics(fitness=stats_fit, size=stats_size)
# my hope is that the values calculated by these functions show up in my logbook
mstats.register("avg", numpy.mean)
mstats.register("std", numpy.std)
mstats.register("min", numpy.min)
mstats.register("max", numpy.max)
pop, log = algorithms.eaSimple(pop, toolbox, 0.5, 0.1, 200, stats=mstats,
halloffame=hof, verbose=True)
print(str(log[0])) # only outputs generations, number of evaluations
мой вывод из этого выглядит следующим образом (заметьте, я исключил вывод из алгоритма, который имел отношение к размеру дерева, так как я не думал, что это было необходимо, и загромождал вывод, но это делаетвывод этих данных)
gen nevals avg gen max min
0 300 1125.92 0 45318.7 83.1079
1 173 1031.65 1 33883.4 83.1079
2 163 779.317 2 1888.68 83.1079
3 149 901.061 3 33606.2 82.4655
4 165 686.407 4 33883.4 81.8855
5 177 962.785 5 33757 81.8855
6 184 1632.86 6 33885.7 81.8855
7 171 1509.72 7 33856.9 81.8855
8 182 984.048 8 33732.6 81.6701
9 177 1534.63 9 34009.9 81.3255
10 159 1277.39 10 33885.7 80.9722
{'gen': 0, 'nevals': 300}
Я ожидаю, что последняя строка должна включать в себя все остальное в журнале
РЕДАКТИРОВАТЬ:
копать глубже Я обнаружил, что это может бытьошибка. В документации говорится, что она должна регистрироваться, когда сюда включена статистика https://deap.readthedocs.io/en/master/api/algo.html
она гласит: «Возвращает оптимизированную совокупность и журнал со статистикой развития. Журнал будет содержать номер поколения,количество оценок для каждого поколения и статистика, если в качестве аргумента указана статистика. "
Я включил статистику, но, похоже, она не работает.