我希望我来对地方了,但是我的问题是:我有一组数据(两个列表x和y),我没有关于此组的其他很多信息(没有功能,或者像这样的东西。我的目标是找到线性的数据子集(下图以黄色突出显示的部分)。
正如您在绘制数据后在图像上看到的那样,我们可以看到它在一段时间内变为线性。我想自动检测该子集。因为我没有背后的功能,我真的迷路了!!
任何人都知道如何做到这一点?我可以实现的算法或数学方法? (我正在使用python btw)
答案 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
非线性
非线性
非线性