WTOnlineLinearRegression 1.0.3

WTOnlineLinearRegression 1.0.3

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布日期上次发布2016年12月
SwiftSwift 版本3.0
SPM支持 SPM

Wagner Truppel 维护。



  • Wagner Truppel

WTOnlineLinearRegression

什么是

WTOnlineLinearRegression 允许您对一维数据进行线性回归,是否在依赖量中有不确定性,并且通过在数据点数量上以恒定时间更新其内部状态,对于每个新的数据点进行更新,从而实现整体的线性时间复杂度。

换句话说,它执行的是 在线 回归,它不会在每次添加新数据点时从零开始重新计算一切,这样每次添加新的数据点时都会使用整个数据集,从而引起整体二次运行时间。

您还可以 删除 已之前添加到数据集中的数据点。但是,删除在每次删除时运行的时间是线性的,因为必须扫描数据集以确保要删除的数据点已经添加过。

此外,WTOnlineLinearRegression 还可选择性地保留每个数据点添加或删除的历史记录,作为每个数据点添加或删除时回归的完整快照。

使用方法

一个 Observation 实例代表一对值 (x, y),其中依赖值 y 可能还与它关联一些不确定性,形式为它的 方差(或等价地,其 标准差)。

给定一系列 N 个这样的观测值,{(xi, yi, dyi), 1 ≤ i ≤ N},人们可能对找到最佳拟合给定观测值的直线 y = a * x + b 感兴趣。这就是 LinearRegression 对象的任务,由于实际观测值中的 y 值可能会是不确定的,因此估计的斜率 a 和估计的截距 b 本身也会有一些不确定性。

换句话说,最适合观测值序列的最佳直线将具有形式为 的方程,其中我用 d• 来表示它前面的量的标准差。

LinearRegression 执行回归并计算斜率 a ± daY轴截距 b ± db,三个误差度量(均方总误差均方残差误差均方回归误差),以及称为 r平方 的拟合度系数。您还可以检查用于计算这些数量的各种求和。

您还可以可选地请求 LinearRegression 记录数据点添加或从数据集中删除的历史更改。历史中的每个条目都是处理时回归的完整快照。

文档

完整的文档提供在源文件中。此外,实现 WTOnlineLinearRegression 所使用的数学结果也可在以下 pdf 文件中找到:此处

演示应用

请查看演示应用

demo

测试

WTOnlineLinearRegression 经过 134 次测试,覆盖率达到 100%

变更记录

WTOnlineLinearRegression 的更改列在这里:此处

安装

WTOnlineLinearRegression 通过 CocoaPods 提供使用。要安装,请将以下行添加到您的 Podfile 中

ruby pod "WTOnlineLinearRegression"

作者

Wagner Truppel, [email protected]

许可

WTOnlineLinearRegression 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。