【发布时间】:2020-11-05 08:59:31
【问题描述】:
我正在尝试应用 SAX(符号聚合近似)方法来检测我的时间序列数据中的异常值。基本上我需要将整个系列切割成等长的子系列,然后计算它们之间的距离。然后将top-K子系列标记为异常。
尝试了几个包:
-
pyts- 一开始不知道如何剪辑这个系列 - This question 是相关的 - 在 python 中有没有更好的解决方案?
-
tslearn.metrics.dtw_path_from_metric- 看起来它正在计算两个系列之间的距离,但我错过了第一个“切割”部分。 - 我还在考虑是否可以使用矩阵(将每个子系列作为行和列,然后在诊断中布置距离)
结果是 1)按周切系列; 2)计算每个子序列之间的距离; 3)用前k个最长距离的对它们进行排序。我知道这可能有很多问题,但任何建议都将不胜感激!
import datetime
import pandas as pd
import bumpy as np
rng = np.random.RandomState(0)
base = datetime.datetime.today()
dates = pd.date_range(start='1/1/2020', end='6/1/2020', freq='D')
df = pd.DataFrame(dates, columns=['date'])
df['sales'] = np.random.randint(0, 100, size=(len(dates)))
【问题讨论】:
标签: python time-series outliers anomaly-detection