【发布时间】:2018-07-02 12:20:45
【问题描述】:
我希望我是在正确的地方问这个问题,但我的问题如下:我有一组数据(两个列表 x 和 y),我没有太多关于这个集合的其他信息(没有函数,或者像这样的任何东西)。我的目标是找到线性数据的子集(下图中以黄色突出显示的部分)。
正如您在绘制数据后在图像上看到的那样,我们可以看到它在一段时间内变为线性。我想自动检测那个子集。因为我没有它背后的功能,所以我真的迷路了!
有人知道如何做到这一点吗?我可以实现的算法或数学方法? (我使用 python 顺便说一句)
【问题讨论】:
-
坡度必须是线性的吗? (未知函数是否必须是 y = ax + b)
-
是的,数据集包含一个线性子集,满足y = ax + b 类型的函数
-
您可以查看RANSAC 之类的内容来提取感兴趣区域的线性模型(只要大多数点都在其中),然后选择您符合条件的点“ inliers”具有一些合理的阈值。
-
该部分是完全线性的,还是带有一些噪音的线性?另外,如果有多个线性段怎么办?
-
您不只是想在一定的误差范围内找到数据的二阶导数为 0 的位置吗?