GramianAngularField(GAF)toconverttimeseriesdataintoimages”。GramianAngularSummation/DifferenceFields(GASF/GADF)可以将时间序列转换成图像,这样我们就可以使用卷积神经网络(CNN)处理时间序列数据基本概念在开始介绍之前,我想大家应该先熟悉一下GASF/GADF的基本概念,如果已经了解可以跳过这一部分。坐标系和斜坐标系。两个数轴相交于原点构成平面仿射坐标系。如果两个轴上的测量单位相等,则仿射坐标系称为笛卡尔坐标系。笛卡尔坐标系,其中两个数轴相互垂直的称为直角坐标系,否则称为直角斜坐标系。一个点(或其他几何形状)的位置由一个或多个数字决定。比如我们取一个二维坐标系,位置是由一对数决定的,比如(2,3)。然后该位置显示在距两条参考线(称为x轴和y轴)一定距离处。极坐标:一种二维坐标系,创始人是牛顿,主要用于数学领域。极坐标是指在平面上取一个固定点O,称为极点,引出一条射线Ox,称为极轴,然后选择一个长度单位和角度的正方向(通常为逆时针方向)。想象一个以原点为中心的圆与点(2,3)相交。我们找到这个圆的半径和x轴与连接(0,0)和(2,3)的线之间的角度。在极坐标中,会表示为(3.6,56.3),即距离极点3.6个单位,极轴夹角56.3°的点格拉姆矩阵:假设我们有一组向量V。Gram矩阵是来自V的每对向量的内积矩阵。如下图所示,矩阵中的每个元素是向量vi和vj之间的向量积。以上图片及介绍均来自维基百科和百度百科。以上是对基本概念的简单介绍,下面进入正题。GrahamCornerField我们现在将朝着这篇文章的主要目标前进,即了解在图像中表示时间序列的过程。简而言之,可以通过以下三个步骤来理解该过程。通过取每个M点的平均值来减小大小来聚合时间序列。此步骤使用分段聚合近似(PAA)。区间[0,1]内的缩放值。极坐标是通过将时间戳作为半径和缩放值的反余弦值生成的。这个阳能提供角度的值。生成GASF/GADF。在这一步中,每对值相加(相减),然后取余弦值,求和。口头描述可能不准确,下面用代码详细解释。Python中的示例我在这里提供了一个Python示例,以演示使用Graham角度场将时间序列转换为图像的逐步过程的状态。从pyts.approximation导入所需的包importPiecewiseAggregateApproximationfrompyts.preprocessingimportMinMaxScalerimportnumpyasnpimportmatplotlib.pyplotasplt生成一些演示数据X=[[1,2,3,4,5,6,7,8],[23,56,52,46,34,67,70,60]]plt.plot(X[0],X[1])plt.title('时间序列')plt.xlabel('时间戳')plt.ylabel('value')plt.show()分段聚合逼近和缩放#PAAtransformer=PiecewiseAggregateApproximation(window_size=2)result=transformer.transform(X)#在区间[0,1]中缩放scaler=MinMaxScaler()scaled_X=scaler.transform(result)plt.plot(scaled_X[0,:],scaled_X[1,:])plt.title('缩放后')plt.xlabel('timestamp')plt.ylabel('value')plt.show()转换为极坐标arccos_X=np.arccos(scaled_X[1,:])fig,ax=plt.subplots(subplot_kw={'projection':'polar'})ax.plot(result[0,:],arccos_X)ax.set_rmax(2)ax.set_rticks([0.5,1,1.5,2])#Lessradialticksax.set_rlabel_position(-22.5)#Moveradiallabelsawayfromplottedlineax.grid(True)ax.set_title("极坐标",va='bottom')plt.show()Gramianangularsummationfieldsfield=[a+bforainarccos_Xforbinarccos_X]gram=np.cos(field).reshape(-1,4)plt.imshow(gram)最后加上上面的步骤来说明使用GramianAngular通过Summation/DifferenceField将时间序列转换为图像的过程在实际使用中不需要计算极坐标,因为有以下三角函数规则:为了计算GramianAngularField中的Cos(A+B)计算,我们将它扩展如下,因为我们通过取时间序列值的反余弦(实际上是在PAA和缩放值上)来计算A和B。其他说明请参考pyts库中GramianAngularField的说明。引用Wang,Z.和Oates,T.(2015)。成像时间序列以改进分类和插补。IJCAI人工智能国际联合会议,2015-1月,3939-3945。EamonnJKeogh和MichaelJPazzani。为数据挖掘应用程序扩展动态时间规整。InProceedingsofthesixthACMSIGKDDinternationalconferenceonKnowledgediscoveryanddatamining,pages285–289.ACM,2000.https://pyts.readthedocs.io/e...https://www.overfit.cn/post/f1a917448ad34b7099e3dc0126a84d35作者:PankajChejara