机器学习- 格拉姆角场

382 阅读2分钟

一、介绍

对于时序类的数据集,采用传统的回归模型处理。效果总是不怎么理想。而且在大数据时代,我们面对的数据往往都是高维的,如果仅使用这些传统方法,很多额外的有用信息可能会错过。

怎么能很好的抓住数据的特征呢? 我们应该用 CV 方法,毕竟当前 CV 有很多方法,可以很好提前图片里的特征。比如现在很流行的 transformer ,注意力机制。

但问题是,我们需要首先将时序数据转为图片这种数据,那怎么转呢? 这里就引入我们的正题了 《格拉姆角场》。

二、格拉姆矩阵

要知道格拉姆角场我们先理解一下格拉姆矩阵。假设我们有一组向量V。格拉姆(Gram)矩阵是来自V的每一对向量的内积矩阵。如下图所示,矩阵中的每个元素< vi, vj> 是向量 vi 和 vj 之间的向量乘积。s

1_RtbJowmRgoETCOoH6IjKxQ.webp

什么是向量乘积,请点这里

看到这里,可能会疑惑,所说的这些矩阵和时序数据有什么关系呢。时序数据的每个数据点并不是一个向量而是一个标量。确实如此,GAF(格拉姆角场)并不直接应用Gram(格拉姆矩阵)。

那我我们进一步了解,怎么得到GAF。

三、格拉姆角场

Gramian Angular Summation / Difference Fields (GASF / GADF)可以将时间序列转换成图像 。GAS 是基于极坐标,通过极坐标编码来生成格拉姆矩阵。

1_A0yHZ8GD47cQd1OACTiz6Q.gif

注:不会吧,不知道极坐标是啥。那么请看这里吧,请点此查看

1、第一步是把时序数据规范化到区间[-1, +1]

2、第二步是把规范化后的值转化为极坐标

3、定义了自己的特殊的内积(见下图),就是说两个时序点之间的"内积"是这两个时序点的极坐标转化后的极角之和的余弦

截屏2022-12-03 下午8.37.50.png

四、记录问题

那为什么用极坐标?如果直接使用格拉姆矩阵,我们会发现图像是有噪声的,数据是正态/高斯分布的。这将存在的问题是数据的维度不够,时序信息有了,但缺少深层的联系。神经网络希望的数据是越稀疏越好。采用极坐标,会增加角度信息,数据升维的同时可以使数据变的更加稀疏,所以上面使用特殊内机做极坐标转换是有原因的。其实有些数学原理,我没有细讲,感兴趣的可以私信我,我把相关更详细的资料发您。一起交流。