我有一组与流程输入相关的三个(或更多)已知变量。我也有过程的(测量的)结果,在这种情况下是完成过程所花费的时间。
为了能够给出估计的持续时间并根据输入创建进度指示器,我需要找到变量和结果之间的关系(如果有的话)。
确定是否存在关系以及是否存在创建公式的关系的最佳方法是什么。
我有许多数据集可供使用(输入变量值和结果时间)。
有关此的任何建议或链接?如何使用代码或指向某些理论的指针来解决这个问题会有所帮助。
一些补充背景:
该过程由许多要处理的文件(主输入)组成,附加的辅助输入包含与主输入内容直接相关的另一组(参考)文件。当前通过基于当前输入文件的内容中的位置显示整体文件进度(与主输入的总数相关)和文件内进度来指示进度。由于每个文件(集合)所需的总时间可能相当长(取决于内容),我想添加某种“剩余时间”或“预期完成时间”指示。
实际代码包括将列表(Excel格式)中的数据子集与XML文件合并为旧格式文件。 “耗时”部分是解析Excel文件,但这很大程度上受到文件的实际大小,需要处理的项目数以及需要创建为输出的文件数的影响。在某些情况下,大文件会产生一个输出,而在其他情况下,一个小文件会导致大量输出。由于执行了大量文件访问,因此辅助因素(难以输入数字)是同时运行的相同进程的数量。
我们的想法是能够根据输入提供估计的吞吐量。
答案 0 :(得分:3)
@Heatsink的答案是对的,但是选择函数系列和自由参数的数量需要一些经验。它被称为“建模”,物理学家是贸易的主人。此外,一般(非线性)回归问题并非总是难以解决。
也许您可以尝试this software package 有时足够聪明,可以选择正确的功能和参数。我有过一些很好的经历。
HTH!
顺便说一句......如果你可以在某个地方发布你的4D数据我们可以多研究一下
答案 1 :(得分:2)
第一步是将您正在寻找的关系限制在某些功能系列中。为此,您需要提供输入如何影响测量结果的模型。一旦您选择了函数族,下一步就是找出最适合您的数据的家庭成员。
例如,您可能会认为您正在测量的系统可以使用线性关系建模time = a*x + b*y + c*z
;那么你可以使用线性回归来找到最适合你数据的参数a,b,c。
答案 2 :(得分:2)
随着计算的进行,您将如何更新进度表?如果它分成大量在大致相等的时间内运行的步骤,那么您只需报告已完成的步数占总数的百分比,而无需任何先验知识。
如果计算有几个不同的阶段,那么就像你说的那样,你必须通过某个公式来估算每个阶段的总贡献。仍然对于每个阶段,您将需要一个模型来计算该阶段计算的进展情况,并且需要一些代码本身的知识。
在这里了解更多有关输入变量的性质会有所帮助。你有代码本身的计算界限,也就是说,你能证明它在输入的每个维度上线性或平方运行吗?它是一种蛮力类型的方法,在其中一个输入中是阶乘的还是指数的?试图根据算法选择得出代码运行时间的公式可能比单独的经验回归更准确,并可能导致您找到更快的算法。