我正在寻找一种机器学习策略,它允许我加载测试数据以及测试结果,并针对特定场景进行优化以调整未来的测试参数。
(参见编辑中的示例)
原始示例:例如,考虑到我有一个3维空间(环境室),我将物理测试设备放入其中。然后,我将选择一些位置和物理属性来测试设备。首先,我将选择在多个温度,湿度和压力下测试每个位置配置的设备。在每个测试增量或变量组合中,我记录每个特征的值,例如x,y,z位置数据,以及温度,湿度,压力等。设置这些参数后,我将对受环境因素影响的物理设备启动软件测试,其方式过于复杂,无法预测。该软件测试可以根据记录的物理参数输出三个输出,这些输出随未知(直到测试)概率而变化。在三个输出中,一个是失败,一个是成功,一个是测试完成而没有任何有意义的输出(我们可以在处理中忽略这种情况)。
一旦测试完成了我提供的每个物理参数的测试,我想在此测试数据上运行算法以选择可控参数,例如x,y,z位置或温度,以最大限度地提高我成功测试的机会,同时最大限度地减少失败的机会(在某些情况下,我们发现失败的机率很高,成功率很高,失败的时间更长昂贵,因此我们需要避免它们)。该算法应该使用这些来建议一组备选的测试参数范围,以启动它认为会使我们更接近目标的下一个测试迭代。
目前,我可以通过使用迭代决策树并忽略以失败告终的结果来最大化成功案例。
赞赏任何想法
编辑: 另一个例子(这是设计的,让我们不要深入了解PRNGS的细节) - 让我们说我有一个嵌入式设备,它有一个受环境因素影响的硬件伪随机数发生器(PRNG),如热量和磁力计数据。我在设备上有一个使用此PRNG的程序给我一个随机值。假设这个PRNG在平均情况下几乎没有实现足够的随机化,在最好的情况下给我一个很好的随机值,并且在最坏的情况下不能提供随机值。通过改变设备周围环境的物理参数,我可以找到一些值,这些值很可能导致这个PRNG无法给我一个随机数,给我一个好的'随机数,并使其成功生成加密安全随机数。让我们假设在它无法生成足够好的随机数的情况下,程序进入一个长时间运行的循环,试图在最终失败之前找到一个循环,我们希望避免它,因为它在计算上很昂贵。为了测试这一点,我们首先开始测试我们可以控制的每个变量组合(温度,位置等),或者一次跳几度,以便对设备的内容进行粗略描述。响应看起来像是一个很大的范围。然后,我希望对此测试数据运行算法,缩小测试窗口并迭代新选择的特征参数,以获得优化的解决方案。在这种情况下,由于故障是昂贵的,优化的解决方案将最大限度地减少故障,同时最大化成功。