分段线性函数拟合数据

pwlf的Python项目详细描述


关于

用于将连续分段线性函数拟合到数据的库。 只需指定所需的线段数并提供 数据。

Downloads a monthBuild StatusCoverage Status

查看 documentation

阅读blog post

Example of a continuous piecewise linear fit to data.

连续分段线性拟合到数据的示例。

Example of a continuous piecewise linear fit to a sine wave.

正弦波的连续分段线性拟合示例。

现在可以执行分段常数拟合和分段 多项式!Example of multiple degree fits to a sine wave.

功能

对于指定数量的线段,可以确定(和预测 从)最优连续分段线性函数f(x)。见this example

如果 您知道线段终止的特定X位置。见 this example

如果要传递scipy微分的不同关键字 进化算法见this example

您可以使用不同的优化算法来找到 使用目标函数确定线段的位置 最小化残差平方和。见this example

现在,您可以使用多重启动,而不是使用差分进化 使用fitfast()函数进行梯度优化。您可以指定 要使用的起点数。默认值为2。这意味着 拉丁超立方体采样(空间填充DOE)用于运行2 L-BFGS-B优化。见this example 它运行fit()函数,然后运行fitfast()来比较 运行时差异!

安装

现在可以使用pip安装。

[sudo] pip install pwlf

或者克隆回购协议

git clone https://github.com/cjekel/piecewise_linear_fit_py.git

然后用pip安装

[sudo] pip install ./piecewise_linear_fit_py

工作原理

这个 paper 详细说明此库的工作方式。

这是基于分段线性最小二乘拟合的公式, 其中用户必须指定断点的位置。见this post 经过最小二乘回归问题的推导 如果断点位置已知。或者退房 Golovchenko (2004)

全局优化用于为用户找到最佳位置 定义的线段数。我特别使用differential evolution scipy中的算法。我默认差分进化算法为 有攻击性,而且可能是对你的问题杀伤力过大。所以请放心 将您自己的差异进化关键字传递给库。见 this example

更改日志

所有更改现在存储在 CHANGELOG.md

新的degree=关键字允许您调整分段常量或 分段多项式!现在可以计算标准误差和p值 对于非线性回归问题!

要求

Python2.7+

numpy(在版本>;=1.14.0上测试)

SCIPY(在版本>;=0.19.0上测试)

pydoe(在版本>;=0.3.8上测试)

可选:

TensorFlow(在=1.13.1版上测试)

许可证

麻省理工学院许可证

引文

@Manual{pwlf,author={Jekel, Charles F. and Venter, Gerhard},title={{pwlf:} A Python Library for Fitting 1D Continuous Piecewise Linear Functions},year={2019},url={https://github.com/cjekel/piecewise_linear_fit_py}}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
通过拖动Java Swing scroll JScrollPane   使用springrest控制器的java   为什么使用Java客户端传输的数据在Apache Pulsar上显示为编码?   java当数组位于arraylist中时,如何访问它?   用于处理{Item1}的正则表达式代码。将项2放入数组或列表中   java mouseListener让我的JList表现得很奇怪   java SecurityContextHolder尽管成功登录,但仍承载匿名用户   java如何在selenium自动化中使用captcha   eclipse如何在java中检查按钮是否可单击,SeleniumWebDriver。ps:检查是否可点击,不要等到它可点击   java Android存在读取\调用\日志权限问题   java按这种方式进行取整(保持小数)   Java中检查布尔数组的最快方法   java将列表中的元素替换为其他元素   JavaFX中的javaunicode补充平面   java如何使用hashmap显示图像url