比较两种遗传算法

机器算法验证 假设检验 遗传算法
2022-03-01 13:37:39

我有两个应该表现相同的遗传算法实现。然而,由于无法解决的技术限制,在相同输入的情况下,它们的输出并不完全相同。

我仍然想表明没有显着的性能差异。

对于两种算法中的每一种,我都有 20 次运行相同的配置,使用不同的初始随机数种子。对于每次运行和生成,记录群体中最佳个体最小误差适应度。 该算法采用精英保留机制,因此最佳个体的适应度单调递减。一次运行包含 1000 代,因此每次运行有 1000 个值。我无法获得更多数据,因为计算非常昂贵。

我应该采用哪种测试?一个简单的方法可能是只比较最后几代的错误(同样,我将在这里使用哪个测试)?但人们也可能会考虑比较一般的收敛行为。

2个回答

测试随机算法可能相当棘手!

我从事系统生物学工作,有许多随机模拟器可用于模拟模型。测试这些模拟器很棘手,因为单个模型的任何两个实现通常都会不同。

dsmts 中,我们已经(分析地)计算了特定模型的期望值和方差。然后,我们执行假设检验以确定模拟器是否与事实不同。用户指南的第 3 节提供了详细信息。本质上,我们对平均值进行 t 检验,对方差进行卡方检验。

在您的情况下,您正在比较两个模拟器,因此您应该只使用两个样本的 t 检验。

也许您可以将同一算法的两次运行之间的平均差异测量为不同算法的两次运行之间的平均差异。不能解决如何衡量这种差异的问题,但可能是一个更容易处理的问题。并且时间序列的各个值将输入到差异计算中,而不必被视为要相互评估的单独数据点(我也不认为第 n 步的特定差异是您真正想要的发表关于)的声明。

更新 有关细节 - 除了最终错误之外,您对时间序列的哪些特征感兴趣?我猜你实际上有三个不同的问题要解决:

  1. 什么构成了您的相似性,即当您说您不相信这两种方法不同时,您的意思是什么?
  2. 你如何量化它 - 可以在1之后回答,并且
  3. 如何测试两种方法之间的显着差异?

我在第一篇文章中所说的只是(1)的答案可能没有考虑 1000 代中每一代的个体差异。我建议为每个时间序列或至少时间序列之间的相似性提出一个标量值。只有这样你才能得到实际的统计问题(我对这三点知之甚少,但我被建议在我刚刚问过的类似问题中使用配对 t 检验,当每个元素都有一个标量值时)。