遗传算法结果展示

Genetic Algorithm Results Presentation

我有一个实验数据,我 运行 使用遗传算法并试图将其呈现在论文中。什么是表示遗传算法结果的好/经典方法。我正在考虑做一个散点图,代表他们几代人的最大适应度。这是对结果的良好表示吗?

当您衡量遗传算法(或任何其他随机算法)的性能时,您 运行 它多次,然后汇总结果以消除某些 运行 的影响 "lucky" 或 "unlucky"。然后就是呈现这样的聚合结果。

对于单个 运行(其中许多),您通常只关心适应度中最好的个体(除非您正在分析我认为您不会分析的人口动态),因为这是算法在其 运行 时间内任何给定时间的输出。

当每个 运行 都有这样的最佳个人时,您就可以展示结果。 GA 的典型视觉表示是 "evolution plot" 或 "progress plot"(我个人使用第一个术语,其他研究人员也使用它),它看起来像这样(来自我的硕士论文):

我知道,有点乱。但是,实线是聚合 运行 的中位数。这意味着在 X 次评估中,对于每个算法,实线是来自特定算法的每个 运行 的所有最佳个体的中值适应度(有时也使用均值,但它对异常值没有抵抗力).在我的例子中,误差线从第一个四分位数延伸到第三个四分位数(有时也使用标准偏差,但误差线关于实线对称,并且不像分位数那样显示分布)。

如果你对进化的进程不感兴趣,而是对最终的结果感兴趣,你可以使用例如箱线图以正确显示算法最终值的分布。它看起来像这样(同样,来自我的硕士论文,对应于上面的进化图):

这个是用 MATLAB 创建的。有一个用于创建箱线图的在线工具:http://boxplot.bio.ed.ac.uk

如果你只有单一的算法可以展示,你也可以将进化图与箱线图结合起来——由箱线图组成的进化图!您只需在每 N 次评估中放置一个箱线图(N 取决于可读性的图形大小)。四分位数误差线和中值实线是一种(扭曲的)箱线图。

最后一个选项是以文本形式(或在 table 中)显示某些统计测试支持的结果。为了比较两种算法(最终值​​),您可以使用例如Mann-Whitney U-test。比较两种以上的算法变得棘手,您需要找到一位友好的统计学家来帮助您:)。