我认为数学问题真的...... 我有一些电子表格输出的历史数据以及行数和列数。
我想要做的是使用此数据根据已知的行和列预测峰值内存使用量和所用时间。
因此,如果不存在历史数据,则不会有预测。 1或2个历史值将是非常不准确的,但我希望给定足够多的历史值,然后可以做出合理准确的预测?
我在jsfiddle上有一张桌子。任何帮助或想法将非常感激。我真的不知道从哪里开始。
http://jsfiddle.net/JelbyJohn/kwje9chf/3/
<table class="table table-condensed">
</table>
答案 0 :(得分:1)
您可以使用linear regression模型。
由于这是一个编程站点,这里有一些R代码:
> d <- read.table("data.tsv", sep="\t", header=T)
> summary(lm(log(Bytes.RAM) ~ log(Rows) + log(Columns), d))
Call:
lm(formula = log(Bytes.RAM) ~ log(Rows) + log(Columns), data = d)
Residuals:
Min 1Q Median 3Q Max
-0.4800 -0.2409 -0.1618 0.1729 0.6827
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 12.42118 0.61820 20.093 8.72e-09 ***
log(Rows) 0.51032 0.09083 5.618 0.000327 ***
log(Columns) 0.58200 0.07821 7.441 3.93e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4052 on 9 degrees of freedom
Multiple R-squared: 0.9062, Adjusted R-squared: 0.8853
F-statistic: 43.47 on 2 and 9 DF, p-value: 2.372e-05
此模型很好地解释了数据(R²为0.89),并建议电子表格大小与内存使用之间存在以下关系:
Bytes.RAM = exp(12.42 + 0.51 * log(Rows) + 0.58 * log(Columns))
可以使用类似的模型来预测执行时间(Seconds
列)。在那里,R²是0.998
。