cyc_week_3 - YosanChan/Task GitHub Wiki
任务:
- 选择两个时间序列模型进行研究
- 阅读、调试代码,查阅相关资料
输出:
- 时间序列模型的流程图、文字描述、效果图
// TODO:
选择时间序列预测模型:
- OlympicModel 选择理由:窗口模型,可设参数较多,便于反复测试研究和改造。
- DoubleExponentialSmoothingModel 选择理由:平滑模型,算法结构简单,(由算法说明)对不同变化趋势数据匹配性良好。 选择异常检测模型:
- AdaptiveKernelDensityChangePointDetector 选择理由:可设参数较多,便于反复测试研究和改造。
- KSigmaModel 选择理由:经典K-sigma模型,适用面广,便于学习。
OlympicModel流程
说明:OlympicModel是一个简单的窗口模型,其思想是对点P的预测为点P前n个值的Smoothed Average.其具体实现过程分三个部分。第一部分为配置参数获取,由配置文件确定向前追溯的周期个数,窗口长度,时间偏移长度,需抛弃的极大极小值点以及是否使用动态参数优化算法;第二部分为核心方法computeExpected, 该方法首先根据窗口最小长度将原始数据的前n个存放在model(存放预测序列的数组)中,之后用长度为pl的窗口将第i个数据之前的数据用整数j个窗口分开,取每个窗口第(i-pl*j)个数据并求和得SUM。在这一部分中若将动态参数设为0,即不使用动态参数,此时直接根据窗口个数求得算术平均值BV=SUM/j,若将动态参数设为1,即使用动态参数对算法进行优化,此时需关注最后一个取得的数据lw,并求得两个值,分别为withNewVal =(SUM+lw)/(j+1)和withoutNewVal=SUM/j,之后必将这两个值与原始数据i的距离,取距离更小的一个值为可信值BV。第三部分考虑可能出现的时间偏移并确定最后的预测值,分别在窗口长度不同的情况下,对预设的时间偏移值调用computeExpected方法,并将所有情况取得的BV值与原始数据作比较,取距离最小的BV值为最终确定的预测值。 原始数据与预测数据对比:
霍尔特模型流程(未完)