用于检测周期性时间序列模式异常的随机砍伐森林

Random cut forest for detecting anomalies in periodic time series patterns

我有时间序列数据,以半小时为间隔测量 activity 的体积。 activity 具有每周周期性模式,例如星期一早上音量最高,周末音量低,等等。 我不明白 RRCF 是否检测到周期性模式并为卷给出不同的分数,在星期一早上会被认为是正常的,但在星期四早上会被认为是异常的。

当然,如果您对任何算法提出任何建议,我们将不胜感激。

从技术上讲是的,算法能够看到这种区别。这样做的原因是 RCF 的工作原理是随机切割特征并试图查看哪些点最多 "isolated"(有点,实际上它计算的分数有点复杂)。如果周一的分数一直很高,那么一个给定的点就不容易被隔离,因为会有很多点具有相同的分布。然而,如果星期三有一个特别高的点,如果算法在交易量和工作日随机拆分,它很可能能够看到这些点是独立的。

但是,重要的是要让算法能够很好地拆分。特别是,拆分为分类变量的工作日并不是微不足道的。
这种变量的最佳编码是正余弦编码,将工作日转换为两个 sine/cosine 变量,这样算法就可以很容易地拆分日期,同时保持它们之间的距离概念(即星期一是接近星期天和星期二),您将通过标签编码器丢失。

如果编码不清楚,请尝试阅读此内容,它应该更好地解释概念:
https://ianlondon.github.io/blog/encoding-cyclical-features-24hour-time/