前言
2018年参加了华为的软件挑战赛,当初我所在的学院参加了这个比赛拿到名次的同学也基本都拿到了华为的offer。最近在回顾时间序列算法模型,当时参加比赛使用了几种模型,于是在此进行回顾。赛题归根到底就是云平台预先定义了各种类型虚拟机的规格(flavor)供租户选择,而物理服务器的CPU和内存为固定规格。然后通过预测未来某个时间段内的虚拟机的请求情况,并寻找最佳的资源分配方案,即根据预测结果把虚拟机部署到物理服务器上,使得服务器的资源利用率最大化。
时间序列模型通常分为传统机器学习模型和神经网络模型,其中传统机器学习模型包括AR、MA、ARMA、ARIMA,神经网络模型采用LSTM进行时间序列预测。
时间序列基础
AR
AR(Auto Regressive,自回归模型)以前p个时期的序列值为自变量、随机变量 X t X_t Xt的取值 x t x_t xt为因变量建立线性回归模型,即对历史表现进行拟合。
x t = ϕ 1 x t − 1 + ϕ 2 x t − 2 + . . . + ϕ p x t − p + u t x_t = \phi _1x_{t-1} + \phi _2x_{t-2} +...+ \phi _px_{t-p} + u_t xt=ϕ1xt−1+ϕ2xt−2+...+ϕ<