具体来说,给定二维数值数据,如下面的线图所示。背景平均运动有峰值(振动很小)。如果这些峰值下降到平均值,我们希望找到对 (x1, x2) 的值;或 (x1) 仅当线没有回到平均值时。
有数千个这样的二维数据。
什么是正确的统计或机器学习算法来找到上面的 x1 和 x2 而无需绘图?
具体来说,给定二维数值数据,如下面的线图所示。背景平均运动有峰值(振动很小)。如果这些峰值下降到平均值,我们希望找到对 (x1, x2) 的值;或 (x1) 仅当线没有回到平均值时。
有数千个这样的二维数据。
什么是正确的统计或机器学习算法来找到上面的 x1 和 x2 而无需绘图?
做你所说的事情的一种方法称为“变化点分析”。有一个名为changepoint的 R 包,您可能想查看它。
在 Python 中,您可以尝试changefinder。
将时间轴(水平轴)划分为多个区域,并为每个区域计算函数值的变化(或其与平均值的偏差)及其有限差分(例如,第 1 和第 2)。每个获得的系列中与“异常”相对应的时间点就是您要查找的。如果点数不满足您的要求,请分层重复该过程,更改时间粒度。
我成功使用的一种方法是用于图像处理中阈值化的三角形方法。基本上是通过在数据峰值和一端的最小值之间画一条线并将“肘”点定义为离该线最远的地方来寻找数据中的“肘”。查看链接和图片将清楚地解释算法的作用。