单元测试抽样方法

机器算法验证 软件 假设检验
2022-03-23 01:34:04

我正在编写一些大量使用采样的代码(例如,MCMC、粒子过滤器等),我真的很想对其进行测试,以确保在声明任何结果之前它正在做我认为的事情。是否有一种典型的方式对这些方法进行单元测试以确保正确性?

1个回答

除了对轨迹的标准检查(相关性,是否混合良好等),对于“单元测试”每个变量的采样,例如,在我的 Gibbs 采样器中,我执行以下操作:

  • 创建一个小型玩具数据集。

  • 在我的 Gibbs 采样器中,注释掉(我使用if Trueif False声明)除一个变量之外的所有变量,其中固定变量(这次未采样的变量)设置为它们的真实值。

  • 查看一个采样变量是否收敛到其真实值。

对所有变量一一进行。然后对两个变量进行采样(尝试不同的对),依此类推,直到我全部采样。然后我可以使用更复杂的玩具数据集,或者只是尝试真实数据。

(不过,我很想看看其他人是如何做到的,以及在编程方面是否有一些“好的做法”)