时序模式算法
‘壹’ 论文阅读_时序聚类K-Shape
这是一篇发表于2015年SIGMODE数据管理国际顶会的论文,它主要针对时序数据的聚类问题,提出了K-Shape方法。与以往的方法相比,它优化了距离计算方法,质心计算方法,还引入了提取频域特征方法,以提升效率。
作者认为它是一种独立于领域、高精度、高效率的时间序列聚类方法。
我觉得相对于传统方法,它聚类效果更好;相对于DTW类方法,效果稍差,但速度快很多。毕竟从原理来看,K-Shape只考虑了纵向拉伸和横向平移,而DTW还考虑了横向拉伸。
K-Shape原理和K-means相似,不同在于它改进了距离计算方法,并优化了质心计算方法。一方面支持振幅缩放和平移不变性,另一方面计算效率也比较高,并且不用手动设置参数,便于扩展到更多领域。
距离算法用于计算两组时序数据的差异,其中的核心问题是如何处理时序数据的形变,论文中的图-1 展示的心电图数据被分为A/B两类:
其中A类的特点是:上升->下降->上升,而B类的特点是:下降->上升。图-1 的右下图展示了理想的建模效果,它识别到了相同的模式,而忽略了幅度和相位的差异。人们也更倾向使用这种方法计算距离,很多时候甚至认为距离计算方法比聚类方法更加重要。一般来说,支持振幅缩放和平移不变性的方法,计算成本较高,难以对大数据量建模。
K-Shape之前的主流距离算法如下:
K-Shape用互相关方法计算两个时间序列的距离。假设有X和Y两个时间序列,序列长度均为m。为实现平移不变性,Y不变,一步一步划动X,并计算每一步X与Y的差异。
如上图所示:假设绿色区域为Y,白色区域为划动的X,每一行s(step)向前划动一步,序列长度为m=4,s∈(-3,3)共7种取值,w是所有移动的可能性2m-1=7次,w-m=s=k,也就是下面公式中的对齐位置(对齐逻辑贯穿整个算法)。
定义互相关系数CC:
利用R来计算x和y在每一步的相似度,在对的上(在X,Y中都存在)的位置计算点积,最终R是有效区域的点积之和(对每个对上的小块加和)。可以说,R越大两个序列越相似。
由于对比的每个子序列振幅不同,块数也不同,所以在对比时需要进行归一化,归一化方法有三种, 第三种使用了互相关方法,效果最好。
归一化效果如下图所示:
其中图(a)使用z-normalization只做了对振幅的归一化,没有平移,可见在上述情况下,不平移(正对上)时对齐效果最好。从(b)(c)(d)可以看到:(d)图使用第三种方法,在最中间的点上相似度值最大(s=0时),即正对上的时候,其相似度最大,这与(a)呈现出的效果一致。而(b)(c)都认为最相似的情况出现在右侧,这明显不太对。
文中定义了基于形态的距离SBD(Shape-based distance),块重叠越多形状越像CC越大,对比所有可能位置的相似度值,取最相似的max(CC),然后用1-max(CC)得到SBD,也就是说形状越相似,距离SBD越小,归一化后的NCC值在[-1,1]之间,因此,SBD值在[0,2]之间。
可以看到,用以上方法时间在序列较长时复杂度比较高,当序列较长时,计算量也会很大,为解决这一问题,作者提出使用傅里叶变换将序列由时域转到频域再比较,以节约计算量。
定义了距离之后,还需要根据距离逻辑来调整质心算法。
从图-4 可以看到:时序数据的质心也是一条时序变化线,图中的蓝色线使用均值方法(计算每个点的均值)来计算质心;由于错位,波峰和波谷被拉成了直线,因此不能正确地表达形状趋势。
K-Shape使用基于SBD的方式计算质心。
该公式的目标是寻找μk*,使质心μk与该簇Pk中各条序列xi的相似度NCC最大。
算法一:先使用SBD() 函数计算dist和y',dist是时序x,y之间的距离,y'是y中与x最匹配的子段。使用这种方法解决了波峰波谷对不齐,以致相互抵消的问题。
然后用基于线性代数方法,将公式13展开成公式15:
最终可利用瑞利商公式加以简化:
瑞利商R(M,x)的一个重要的性质是:R的最大值等于矩阵M最大的特征值,最小值等于矩阵M最小的特征值。此时,就不用太考虑R(M,x)中的x(即本问题中的uk)。公式13被简化成以下算法:
算法二:ShapeExtraction()根据簇的当前质心C和簇内的所有点X,计算更合理的质心C'。
line2: 遍历簇内所有的点X(i)
line3: 计算各点与质心的距离dist以及其中与质心最为相似的片断x'
line4: 将最为相似的片断加入X'
line5: X'转置与X相乘生成一个方阵(X的平方)
line6: 创建用于正则化的矩阵Q
line7: 正则化后生成矩阵M
line8: 取矩阵M对应最大特征值时的特征向量,以实现对X'的特征抽取
(以上说明为个人理解,不一定对,仅供参考)
最终的聚类方法通过迭代实现,每次迭代分为两步:第一步重新计算质心,第二步根据每个序列与新质心的距离将它们重新分配到不同的簇中;一直循环迭代到标签不再变化为止。
算法三:聚类的完整过程由 k-Shape() 实现:
其中X是所有序列,k是簇的个数,IDX是标签。
line3: 在标签稳定前&迭代次数不超过100次的条件下,不断迭代
line4-10:根据簇中的元素重新计算每个簇的质心C
line11-line17:计算每个序列与各个质心的距离,并将它分配到新的簇中(重新打标签)。
K-Shape算法每次迭代所需时间为:
O(max{n·k·m·log(m), n·m^2, k·m^3})
其中n是实例个数,k是簇个数,m是序列长度。可见,该算法大部分的计算代价依赖于时间序列的长度m。然而,这个长度通常比时间序列的数目小得多,因此,对m的依赖不是瓶颈。在m非常大的极少数情况下,可以使用分段或降维方法来有效地减小序列的长度。
图-5对比了K-Shape、ED和DTW模型效果,可以看到绝大多数情况下,SBD好于ED,部分情况下SBD好于DTW。但SBD比DTW好在它速度更快。
‘贰’ 大数据挖掘方法有哪些
方法1.Analytic Visualizations(可视化分析)
无论是日志数据分析专家还是普通用户,数据可视化都是数据分析工具的最基本要求。可视化可以直观地显示数空桥滚据,让数据自己说话,让听众看到结果。
方法2.Data Mining Algorithms(数据挖掘算法)
如果说可视化用于人们观看,那么数据挖掘就是给机器看的。集群、分割、孤立点分析和其他算法使我们能够深入挖掘数据并挖掘价值。这些算法不仅要处理大量数据,还必须尽量缩减处理大数据的速度。
方法3.Predictive Analytic Capabilities(预测分析能力)
数据挖掘使分析师可以更好地理解数据,而预测分析则使分析师斗余可以根据可视化分析和数据挖掘的结果做出一些预测性判断。
方法4.semantic engine(语义引擎)
由于非结构化数据的多样性给数据分析带来了新挑战,因此需要一系列工具来解析,提取和分析数据。需要将语义引擎设计成从“文档”中智能地提取信息。
方法5.Data Quality and Master Data Management(数据质量和主数据管理)
数据质量和数据管理是一些管理方面的最佳实践。通过标准化流程和工具处理数据可确保获得预定消码义的高质量分析结果。
关于大数据挖掘方法有哪些,青藤小编就和您分享到这里了。如果您对大数据工程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于数据分析师、大数据工程师的技巧及素材等内容,可以点击本站的其他文章进行学习。
‘叁’ 【MATLAB】tvf_emd_LSTM神经网络时序预测算法
TVF-EMD-LSTM神经网络时序预测算法是一种结合了变分模态分解(VMD)、经验模态分解(EMD)和长短期记忆神经网络(LSTM)的时间序列预测方法。VMD能将复杂信号分解为多个固有模态函数(IMF),帮助提取时间序列中的复杂模式和趋势。EMD则能处理非线性和非平稳信号,将时间序列数据转化为一系列IMF,更好地表示时间序列中的复杂模式和趋势。LSTM擅长处理具有长期依赖关系的时间序列数据,通过记忆单元学习历史信息,增强预测准确性。
该算法的基本思路是将原始时间序列通过VMD和EMD分解,得到IMF和残差项。将IMF作为LSTM的输入,通过多个独立LSTM模型的训练和预测,得到最终预测结果。VMD和EMD提供更准确的输入数据,LSTM学习模式和趋势的长期依赖关系,提高预测准确性和稳定性。
TVF-EMD-LSTM算法在金融市场预测、气象预报、能源消耗预测等领域应用广泛。然而,计算复杂度高、需要大量数据是其潜在局限性。使用时应根据实际需求调整优化。
附出图效果如下:
附视频教程操作:
200种MATLAB算法及绘图合集
aliyundrive.com/s/9GrH3...
提取码: f0w7