现在给你一组数据{ a 1 ,a 2, ⋯ ,a n},比如这组数据表示的是第1个月到第n个月的电量使用情况
现在让你根据这组数据使用KNN算法去预测a n+1的值,也就是第n+1个月的电量使用情况
由于任何一个月的用电量总是和前几个月的用电量关
系最密切 , 所以 , 用长度为 m 的向量 β 0 = { a n - m +1 , a n - m +2 ,
⋯ , a n - 1 , a n} 来预测 a n +1,由于 a n +1 未知 , 先找出 β 0 =
{ a n - m +1 , a n - m +2 , ⋯ , a n - 1 , a n } 的 K 个最近邻
在 { a 1 , a 2 , ⋯ , a n } 中 , 以 β 0 = { a n - m +1 , a n - m +2 , ⋯ , a n - 1 ,
a n } 为基 , 移动时间窗口 , 依次取 n - m 个长度为 m 的子列 :
β1 = { a n - m , an - m +1 , ⋯ , a n - 1 }, β 2 = { a n - m - 1 , a n - m , ⋯ , a n - 2 },
⋯ , β n - m - 1 ={ a 2 , a 3 , ⋯ , a m +1 }, β n - m = { a 1 , a 2 , ⋯ , a m }, 在这
些子列中找出 β0 = { a n - m +1 , a n - m +2 , ⋯ , a n - 1 , a n } 的
K 个最
近邻 , 用两向量夹角的余弦来描述两个向量的临近程度 , 即
cos ( β , β i) =
其中β ij 表示向量βi 的第j 个分量 . 那么 , 余弦值越大 , 两向
量越接近 . 通过计算 , 我们在
β 1 , β 2 ,⋯β n - m 中找出了 β 0 =
{ a n - m +1 , a n - m +2 , ⋯ , a n - 1 , a n } 的 K 个最近邻 , 记为 α 1 , α 2 ,
⋯ , α k . 因为是用 { a n - m +1 , a n - m +2 , ⋯ , a n - 1 , a n } 来预测 a n +1 ,
所以这 k 个向量最后一个分量的后紧邻的一个元素被认为
是 a n +1 的一个最近邻
取 a m +1 作为 a n +1 的一个最近邻 ( 令 b 1 = a m +1 ) 这样得到了
a n +1 的 K 个最近邻 b 1 , b 2 , ⋯ , b k , 然后对这 K 个数加权平均
计算即可算出 a n +1 ,