首页 > 解决方案 > 在 nodejs/javascript 中平滑图表中的所有数据点

问题描述

我有一张图表,我希望能够使哪条线尽可能平滑。该线仍应保持整体图案并尽可能接近原始线 - 但我需要能够 100% 平滑所有“bumbs”/达到我希望的程度。

当我说“100% 平滑”时 - 我的意思是这样的(尝试在正方形中画一条曲线):http ://soswow.github.io/fit-curve/demo/

这条线只能向上或向下(而主要趋势是向上/向下) - 例如正弦曲线。现在成像您添加了许多不同大小/频率的噪声/颠簸。到正弦曲线 - 但您喜欢在不改变曲线整体模式的情况下“恢复”曲线。这正是我的需要。理想:如果我能准确过滤掉选定的噪声/频率水平。我希望从主要趋势中删除。

SMA 在本质上是滞后的,我需要一些更接近实际数据时间点的东西。我知道 SMA 的滞后特性通常被接受——但我不接受它;)我坚信有可能做得比这更好:) DMA 可以移动数据点本身——但对数据没有影响- 实时点信息,这也是我正在寻找的......我知道我必须破解/补偿 - 我自己也可以想出100种方法(混合我知道的所有算法,运行它们多个次等)但我猜外面有人比我聪明得多,而且它已经解决了——我肯定想知道是否不存在完全解决这个问题的标准算法?

我研究了许多不同的算法——但没有一个能令人满意地工作(移动平均线、中位数、多项式回归、Savitzky Golay 等)。但结果仍然过于“笨拙”和“像素化”,否则它再次变得过于滞后。

最后我发现:Bezier Cubic and quadratic 这看起来很有趣,但我不知道如何将它应用到我所有的数据点上,而且我找不到合适的 NPM(我只能找到这样的库:https:// www.npmjs.com/package/bezier-easing只需要 1 个数据点,这不是我想要的)。

Savitzky G. 比普通 MA 更好 - 但我仍然认为它在我认为可以接受的平滑时滞后太多。

任务是对温度、价格和类似图表进行实时预处理和降噪,然后再将其处理给寻找异常情况的 IA(太多的噪音似乎会使 AI 感到困惑,并且对于大多数部分来说也是不必要的)。带有绘图的示例只是一个示例-就像我提到“正弦曲线”一样(以说明我的观点)。该图表通常非常随意,不遵循任何预定义的模式。

我想再次强调,所选算法/程序的主要先决条件必须是 - 它生成一个图表线,将主图表整体趋势的滞后降至最低,同时可以调整降噪水平应该发生:-)

我还用油漆画了这张小图-这样您就可以轻松理解我的观点:-) screencast.com/t/jFq2sCAOu算法应该删除并替换给定图表中与所选频率匹配的所有实例/区域-在绘图仅显示一个 - 但通常图表中会存在许多具有相同噪声水平的不同区域。

请让我知道这一切是否对你们有意义 - 否则请指出我需要详细说明的内容。

高度赞赏所有帮助、想法和建议。

标签: javascriptnode.jsbeziersmoothing

解决方案


推荐阅读