测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布日期上次发布 | 2016年12月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Wagner Truppel 维护。
WTOnlineLinearRegression 允许您对一维数据进行线性回归,是否在依赖量中有不确定性,并且通过在数据点数量上以恒定时间更新其内部状态,对于每个新的数据点进行更新,从而实现整体的线性时间复杂度。
换句话说,它执行的是 在线 回归,它不会在每次添加新数据点时从零开始重新计算一切,这样每次添加新的数据点时都会使用整个数据集,从而引起整体二次运行时间。
您还可以 删除 已之前添加到数据集中的数据点。但是,删除在每次删除时运行的时间是线性的,因为必须扫描数据集以确保要删除的数据点已经添加过。
此外,WTOnlineLinearRegression 还可选择性地保留每个数据点添加或删除的历史记录,作为每个数据点添加或删除时回归的完整快照。
一个 Observation
实例代表一对值 (x, y)
,其中依赖值 y
可能还与它关联一些不确定性,形式为它的 方差(或等价地,其 标准差)。
给定一系列 N
个这样的观测值,{(xi, yi, dyi), 1 ≤ i ≤ N}
,人们可能对找到最佳拟合给定观测值的直线 y = a * x + b
感兴趣。这就是 LinearRegression
对象的任务,由于实际观测值中的 y
值可能会是不确定的,因此估计的斜率 a
和估计的截距 b
本身也会有一些不确定性。
换句话说,最适合观测值序列的最佳直线将具有形式为 的方程,其中我用
d•
来表示它前面的量的标准差。
LinearRegression
执行回归并计算斜率 a ± da、Y轴截距 b ± db
,三个误差度量(均方总误差、均方残差误差、均方回归误差),以及称为 r平方 的拟合度系数。您还可以检查用于计算这些数量的各种求和。
您还可以可选地请求 LinearRegression
记录数据点添加或从数据集中删除的历史更改。历史中的每个条目都是处理时回归的完整快照。
完整的文档提供在源文件中。此外,实现 WTOnlineLinearRegression
所使用的数学结果也可在以下 pdf 文件中找到:此处。
请查看演示应用。
WTOnlineLinearRegression 经过 134 次测试,覆盖率达到 100%。
WTOnlineLinearRegression 的更改列在这里:此处。
WTOnlineLinearRegression 通过 CocoaPods 提供使用。要安装,请将以下行添加到您的 Podfile 中
ruby pod "WTOnlineLinearRegression"
Wagner Truppel, [email protected]
WTOnlineLinearRegression 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。