检测数据集线性部分的算法

时间:2018-07-02 12:20:45

标签: python algorithm

我希望我来对地方了,但是我的问题是:我有一组数据(两个列表x和y),我没有关于此组的其他很多信息(没有功能,或者像这样的东西。我的目标是找到线性的数据子集(下图以黄色突出显示的部分)。

enter image description here

正如您在绘制数据后在图像上看到的那样,我们可以看到它在一段时间内变为线性。我想自动检测该子集。因为我没有背后的功能,我真的迷路了!!

任何人都知道如何做到这一点?我可以实现的算法或数学方法? (我正在使用python btw)

1 个答案:

答案 0 :(得分:2)

您可以通过使用x和y值确定两个点的斜率开始。

说点1和2,斜率= 2。 然后计算点2和3的斜率。 如果后者的斜率与前者的斜率不同,则说明它不是线性的。

只需对整个数据集进行for循环,然后将当前值与下一个值进行比较即可得出斜率。

<?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.berkancalikoglu.deadbydaylightguide"
 android:versionCode="1"
 android:versionName="1.0" >

 <uses-permission android:name="android.permission.INTERNET"> </uses-permission>

输出:

y = 1x + 0

非线性

非线性

y = 1x + 1

非线性

非线性

非线性