javascript - JavaScript 中的简单回归预测算法

标签 javascript algorithm prediction non-linear-regression math.js

我正在尝试使用回归根据过去的记录对组织的 future 利润进行简单预测。我正在关注 this link .出于测试目的,我更改了示例数据并产生了以下结果:

enter image description here

我的实际数据是日期和利润,它们会上下波动,而不是连续递增。我意识到上述方法适用于随着预测非常准确而不断增加的样本数据。但是,当我将数据更改为屏幕截图中疯狂上下的数据时,预测不再那么准确了。

只是想知道是否有任何方法可以提高回归的准确性,因为我的数据会上下波动。

谢谢!

最佳答案

当您进行回归时,您正在为数据拟合一个模型。换句话说,您是在说“这是一个粗略描述数据行为方式的方程式”。在线性回归的情况下,模型/方程为:

y = a * x + b

其中 x 是输入,y 是输出。通过进行线性回归,您是在说“我的数据遵循一条直线,这是我的数据,最适合数据的参数 a 和 b 是什么?”。

显然,如果您的数据沿着一条直线,这将很糟糕。例如看this image我在 Google 图片上找到了。

很明显,您可以看到数据具有某种复杂的波浪形状 - 它上下波动,然后再次上升。线性模型不够复杂,无法表达这种形状(只能做直线)。所以不太合适。

由于您需要一个更复杂的模型,因此您必须选择一个。有几十个标准的,你可以自己制作。所有模型都是一个方程式,其中包含一些可以调整的固定参数,以便方程式适合您的数据。

我建议您尝试使用 Excel 或 Google 表格中的趋势线选项来感受一下。查看趋势线类型位 here对于一些常见的模型。

请注意,这些方法都不适用于月度利润,因为它们都不是真正的周期性方法。您可能需要一个模型,该模型是一些重复乘数的组合以捕获月与月的变化,然后是线性或多项式组件以捕获年利润随时间增加或减少的事实。

但是,您不希望模型表现力过强,否则您会过度拟合数据(基本上它会在噪声中看到模式)。

关于javascript - JavaScript 中的简单回归预测算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46881282/

相关文章:

java - 如何将白色背景更改为黑色

apache-spark - ALS模型增量训练

r - 计算 R 中的多数票

javascript - 当选项中包含 noopener 时,Window.open 忽略高度和宽度

javascript - TypeScript 中的赋值运算符重载

javascript - Pusher 以 > 200ms 减慢 ajax 请求

python - 为什么我不能以这种方式实现合并排序

algorithm - 如何部分比较两个图

r - 非季节性时间序列预测

javascript - 我可以将用户帐户与驱动器 API 的操作关联起来吗?