我正在Java中进行一个项目,该项目涉及通过n个数据点的滚动/滑动窗口拟合一条简单的线性回归线。对于添加的每个新点,需要重新计算线性回归斜率和截距。我们目前使用org.apache.commons.math3.stat.regression.SimpleRegression
来进行此计算,但每次重新计算整个窗口的成本很高。
所以我有两个问题。
- apachecommons提供的
SimpleRegression
有一个用于"流模式"的removeData方法。(见以下引用自API)。然而,没有关于这种"流媒体模式"的其他信息;正确的实现、累积错误等。有人举过如何在流媒体模式下正确使用它的例子吗?或者有人能给我指一个更好的信息来源吗
此方法允许在流模式中使用SimpleRegression实例,其中回归应用于观察的滑动"窗口",但是调用方负责维护窗口中的观察集。"
- 是否有其他库可以在恒定时间内进行流式线性回归?当然,Apache Commons SimpleRegression并不是唯一一个。。。但那似乎是我唯一能找到的
谢谢,g
通过查看源代码,我认为这只意味着存在一个方法removeData,它可以反转addData所做的计算。因此,调用者必须记住窗口中的数据,并在数据"退出"窗口时将其逐个删除。