本文关注的是时间序列中的异常上升,异常下降,趋势变化等。
1. 基于STL(Season-Trend decomposition procedure based on LOESS)将时间序列分为trend, season, residue. 为residue设置threshold, 确定异常点,https://github.com/twitter/AnomalyDetection是基于上述算法的一个实现;
2. 利用分类树算法建立是否是异常点的预测模型,对结果进行预测;
3. 利用ARIMA模型,对数据进行建模,某个点加入模型与从模型中删除,对结果是否有很大的影响;(R中的tsoutliers包)
4. 利用Exponential smoothing建模,考察某个点加入或者删除对结果的影响;
5. 利用Neural Network算法建立是否是异常点的预测模型,对结果进行预测;
需要注意的是:
1. 如果最简单的模型可以达到需求的话,就选用最简单的模型;
2. 尝试较复杂的模型,如果简单模型效果不好的情况下;
3. 最好不要试图建立一个万能算法。