我想创建一个excel表,它可以在估算我给出的任务的执行时间时帮助我。为此,我推导了4个类别,其中我将任务从1到10单独评估。
这些是:系统的复杂性(简单脚本或整个业务系统),需求状态(定义明确或非常软),关于系统的知识< / em>(我对系统和代码库了解多少)和实施计划(我知道该做什么或不知道我有什么计划做什么或去哪里做启动)。
在对这些类别中的每项任务进行评级后,我希望得到一个结果因子,其中包含的费用和任务可能需要多长时间,作为非常粗略估计我可以告诉我的老板。
我想创建一个函数来定义输入,然后以数字的形式得到结果,请参阅:
| a | b | c | d | Result |
| 1 | 1 | 1 | 1 | 160 |
| 5 | 5 | 5 | 5 | 80 |
| 10 | 10 | 10 | 10 | 2 |
我想创建一个函数,当给定a, b, c, d
时,会产生上面针对极端情况(max,min,avg)的结果,当然还有任何值(float
)。
我该怎么做呢?我想这是多项式问题的某种形式,但我怎样才能真正创建创建这些结果的函数?
我经常会遇到这样的任务,所以每当我需要为任何数量的参数和结果创建这样的函数时,都会有一种模式可供使用。
我尝试使用wolfram alphas interpolate polynomial
命令,但结果只是一大堆非常大的分数......
如何以合理的结果正确创建此功能?
在编写此编辑时,我意识到这可能更适合程序员.SE - 如果没有人在这里回答,我会在那里提出问题。
答案 0 :(得分:1)
您没有足够的数据。考虑到所有四个explanatory variables的最简单的公式将是线性的:
x0 + x1*a + x2*b + x3*c + x4*d
如果为此制定一组方程式,则有三个方程式,但有五个未知数,这意味着您没有唯一的解。另一方面,您提供的数据点证明了得分和时间之间的关系不完全是线性的。因此,您可能需要查看一些更复杂的函数系列,因此需要调整更多参数。虽然调整参数以匹配输入很容易,但这种选择非常随意,因此没有预测能力。
因此,虽然您的四个不同分数的系统从长远来看可能有用,但我现在不会使用它。我建议你收集一些更多的数据点,看看给定的任务实际上花了多长时间,只有在你有足够的数据点来适应它的所有参数时才使用那个细粒度的模型。
与此同时,将所有四个数字合并为一个数字。例如。取平均值。然后决定选择的公式。例如。二次方:
182 - 22.9*a + 0.49*a*a
这非常适合您的要求,而不是太复杂或混乱。但功能的选择,即多项式,仍然是相当随意的。因此,一旦您拥有更多数据,请重新考虑该选择。请注意,此多项式几乎是Wolfram Alpha found for your data:
1642/9 - 344/15*a + 22/45*a*a
我只将这些有理数转换为十进制表示法,我很早就将其截断,因为所有这些都非常粗糙。
总的来说,在我看来,这个问题似乎更适合CrossValidated而不是Programmers SE。但除非你有足够的数据来实际适合模型,否则不要打扰它们。