我试图了解如何对一组时间序列数据(每日股票价格,温度等)进行细分,并且遇到了一本书,该书解释了如何进行SWAB(滑动窗口和自下而上)细分算法,但我不太了解。这种分割是超声算法的一部分。以下文本来自“多媒体数据挖掘和分析:颠覆性创新”。
SWAB分段算法获得四个参数-输入文件(时间序列数据),输出文件(分段数据),最大误差和标称属性的指示。在对不同大小的时间序列使用不同的分段数值进行大量实验后,我们选择了合适的默认分段数,如下所示。少于100个观测值的时间序列的时间序列大小的25–50%,具有100–200个观测值的时间序列的时间序列大小的20–35%,具有200个以上观测值的时间序列的时间序列大小的15–25%。如果用户出于某种原因对使用默认值不感兴趣,则可以输入自己的段数作为算法的参数。从最小和最大误差的默认值开始,我们第一次运行分段算法,并在给定的时间序列中获得了最少的分段数(最大误差越大,找到的分段越少)。然后,我们通过将基数除以2的幂来减小最大误差(从而增加找到的段的数量),以缩小误差的上限和下限(类似于二进制搜索)。每次使用当前最大误差运行分割算法后,我们都会测试该值是否为最佳分段数提供更好的近似值,因此为最佳最大误差提供更好的上下限。如果是这样,我们将对此值进行适当的限制。开始时,仅上限受到影响。但是,一旦我们发现下界提供的细分比最佳细分更多,我们将继续通过较小的步骤寻找最佳段数:下一个最大误差是当前上限和下限之间的平均值。根据我们对许多不同时间序列数据库的经验,通常在3-4次迭代中可以找到最佳的最大误差。收敛速度取决于输入时间序列数据库本身。如果算法在20次迭代中仍未收敛,我们将停止搜索,并使用在20次迭代中找到的片段继续下一个超声步骤。收敛速度取决于输入时间序列数据库本身。如果算法在20次迭代中仍未收敛,我们将停止搜索,并使用在20次迭代中找到的片段继续下一个超声步骤。收敛速度取决于输入时间序列数据库本身。如果算法在20次迭代中仍未收敛,我们将停止搜索,并使用在20次迭代中找到的片段继续下一个超声步骤。
因此,例如,如果我有150个观测值的时间序列数据(对应于20-35%的默认分段数),我需要采取哪些确切的步骤来对数据进行分段?
非常感谢您的任何帮助。