即时学习算法是一种局部建模方法,该算法主要由三部分组成:
- 假设 k k k时刻,输入测试样本 x k ′ x^{'}_k xk′,首先计算 x k ′ x_k^{'} xk′与全部训练样本输入向量 X = { x i } i = 1 N 1 X=\{x_i\}_{i=1}^{N_1} X={xi}i=1N1之间的相似度 { S i , k } i = 1 N 1 \{S_{i,k}\}_{i=1}^{N_1} {Si,k}i=1N1, N 1 N_1 N1是训练集样本数;
- 对 { S i , k } i = 1 N 1 \{S_{i,k}\}_{i=1}^{N_1} {Si,k}i=1N1从大到小排序, S i , k S_{i,k} Si,k的值越大,代表第 i i i个训练样本与测试样本 x k ′ x_k^{'} xk′之间的相关性更高。筛选出前 L L L个 S i , k S_{i,k} Si,k对应的训练样本,组成 x k ′ x_{k}^{'} xk′样本的相关训练样本子集 { X L } \{X_L\} {XL}和 { Y L } \{Y_L\} {YL},用于训练局部模型;
- 根据局部模型得到测试样本 x k ′ x_k^{'} xk′的预测输出 y ^ k ′ \hat{y}_k^{'} y^k′.
步骤(3)结束之后,步骤(2)种的局部模型将会被舍弃,待新的测试样本输入,将开启
新一轮的循环。
即时学习算法(Just-in-time learning algorithm. JITL)更像是一个框架,需要与回归算法来搭配进行使用,例如自回归模型(Auto Regressive, ARX), SVM,LS-SVR。综合考虑模型复杂度和预测准确性,LS-SVR的模型是比ARXhe SVR更优的选择。
已知训练样本包含 N 1 N_1 N1组输入向量 X = { x i } i = 1 N 1 X=\{x_i\}_{i=1}^{N_1} X={xi}i=1N1和输出向量 Y = { y i } i = 1 N 1 Y=\{y_i\}_{i=1}^{N_1} Y={yi}i=1N1, x k ′ x_k^{'} xk′是 k k k时刻采集的测试样本输入向量。 d ( x k ′ , x i ) d(x_k^{'},x_i) d(xk′,xi)是测试样本输入 x k ′ x_k^{'} xk′和训练样本输入 x i x_i xi之间的距离。
若采用欧式距离 d d d计算相似度 S S S,相当于把 x k ′ x_k^{'} xk′和 x i x_i xi看成高维空间种的两个点,相似度反应了高维空间种两点之间的距离,见式(1)。若采用皮尔逊相关系数 d d d计算相似度 S S S,相当于把 x k ′ x_k^{'} xk′和 x i x_i xi看作高维空间种的两个向量,相似度取决于向量之间的夹角大小,见式(2).
d ( x k ′ , x i ) = ∥ x k ′ , x i ∥ 2 ( 1 ) d(x_k^{'},x_i)=\|x_k^{'},x_i\|_2\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1) d(xk′,xi)=∥xk′,xi∥2 (1)
d ( x k ′ , x i ) = c o v ( x k ′ , x i ) σ x k ′ σ x i ( 2 ) d(x_k^{'},x_i)=\frac{cov(x_k^{'},x_i)}{\sigma_{x_{k}^{'}}\sigma_{x_{i}}}\ \ \ \ \ \ (2) d(xk′,xi)=σxk′σxicov(xk′,xi) (2)
S i , k = exp ( − 1 2 ( d ( x k ′ , x i ) ) 2 ) , i = 1 , 2 , 3 , ⋯ , N 1 S_{i,k}=\exp\bigg(-\frac{1}{2}(d(x_k^{'},x_i))^2\bigg),\ i=1,2,3,\cdots,N_1 Si,k=exp(−21(d(xk′,xi))2), i=1,2,3,⋯,N1