基于非负矩阵分解的时间序列数据聚类方法及系统与流程

文档序号:12365714阅读:290来源:国知局
基于非负矩阵分解的时间序列数据聚类方法及系统与流程
本发明涉及基于互联网的数据处理方法及系统,尤其涉及基于非负矩阵分解的时间序列数据聚类方法及系统。
背景技术
:近年来,时序数据聚类在很多领域的应用都能提供非常有意义的信息,例金融、生物信息、卫生保健,地质等。然而,随着探索的不断深入,我们慢慢的发现这些时序数据聚类算法也存在一些不足之处。因为时间序列数据很多独有的属性,使得经典的聚类方法在其上的效果并不好。研究者和学者们所共识的关于时序数据聚类的重点及难点问题可以总结为:(1)稀疏问题:复杂时序数据往往是特别稀疏的。特别是在部分时序数据中,一个数据对象只出现在一个时间点上,这会导致任意的两个时序数据对象的差异可能都很大,从而对相似度的计算等问题等带来很大困难。(2)数据增量问题:时序数据往往是动态的、增量到达的,包括数据对象的增加和每个数据对象在时序上的延长。(3)异构特征问题:在社交媒体等数据中,很多数据对象包含多种不同类型的特征。例如文本、图像、关系和时间等,这些特征的数值可能在不同的量纲上,也可能有的是数值类型,有的是类别型,在聚类过程中,不能简单的相加来融合这些特征。因此,如何能够自动有效的融合包括时间在内不同类型的特征仍然是一个难题。(4)大规模数据问题:由于时序数据的规模往往是巨大的,传统的算法无法满足用户所需要的时间响应需求,并行的时序数据聚类以加快算法的运行也是未来的研究重点。时序数据的超大规模、噪音的存在、数值型和连续性等独特的属性,使得很多经典的聚类方法都不适用于这种结构的数据,从而增加了对时序数据进行聚类的难度。综上所述,寻找一种时间和空间复杂度都较为合适的算法,对时序数据进行重新的一个诠释和表达,简单的说就是对其进行压缩和特征提取。对时序数据进行重新的描述后,在针对新的数据进行相似度的计算,所以距离度量的时间和空间复杂度,都是基于重新描述算法之上的。目前已经应用到时序数据挖掘的重新描述研究的算法有离散傅立叶变换,离散小波变换,奇异值分解算法,分段描述算法,界标模型,字符串模型等。但是,目前技术在时序聚类中出现了由于海量数据导致计算速度慢的问题。技术实现要素:本发明提供了一种基于非负矩阵分解的时间序列数据聚类方法,包括如下步骤:数据预处理步骤:读入时间序列数据,并对时间序列数据进行预处理,在预处理过程中,如果时间序列数据中存在负数,则将所有的时间序列数据都向上平移所需要的单位,即将矩阵V向上平移一个最小负值到零点的距离即可;矩阵初始化步骤:对基矩阵W和系数矩阵H进行初始化;数据分解步骤:对样本集合V进行非负矩阵分解,得到基矩阵W和系数矩阵H;数据聚类步骤:对分解后的数据进行聚类,得到聚类结果。作为本发明的进一步改进,在所述矩阵初始化步骤中,采用在矩阵相应的元素位置上随机产生0-1之间的随机数的方法对基矩阵W和系数矩阵H进行初始化。作为本发明的进一步改进,在所述数据分解步骤中,目标函数为:minD(W,H)=Σij(VijlogVij(WH)ij-Vij+(WHij))-γΣij1(Hij+ϵ)θ]]>其中θ,ε为参数。γ=1/θ因为在后续求导过程中存在系数θ,为了便于计算,求导后消除掉,则引入γ;Hij表示系数矩阵的稀疏性的限制项,非负矩阵H的稀疏度为它的L1范数,根据乘性迭代法,可以得到迭代公式:Wia←WiaΣHajVij/(WH)ijΣHaj]]>Haj←HajΣiWiaVij/(WH)ijΣWia+1(Haj+ϵ)θ+1.]]>作为本发明的进一步改进,在所述数据聚类步骤中,聚类过程有三种,可以采用如下三种方法中的任一种:第一种方法:使得基矩阵的W的列向量的个数等于将要聚类的簇的个数,即Vm×n=Wm×c×Hc×n,这个时候W就表示为簇数目个列向量,H为n个样本在每个列向量上面的投影,根据H每一行中最大的值就可以判断这个时序数据所在的簇,不在使用其他的聚类算法;第二种方法则不同于第一种,这个时候W的列向量可以比簇的个数多很多,因为簇的个数一般情况下较少,分解后对矩阵H使用k-means算法进行聚类,得出聚类结果;第三种方法使用之前分解出来的W的列向量作为中心点,然后对初始矩阵V进行k-means算法,得到聚类结果。本发明还公开了一种基于非负矩阵分解的时间序列数据聚类系统,包括:数据预处理模块:用于读入时间序列数据,并对时间序列数据进行预处理,在预处理过程中,如果时间序列数据中存在负数,则将所有的时间序列数据都向上平移所需要的单位,即将矩阵V向上平移一个最小负值到零点的距离即可;矩阵初始化模块:用于对基矩阵W和系数矩阵H进行初始化;数据分解模块:用于对样本集合V进行非负矩阵分解,得到基矩阵W和系数矩阵H;数据聚类模块:用于对分解后的数据进行聚类,得到聚类结果。作为本发明的进一步改进,在所述矩阵初始化模块中,采用在矩阵相应的元素位置上随机产生0-1之间的随机数的方法对基矩阵W和系数矩阵H进行初始化。作为本发明的进一步改进,在所述数据分解步骤中,目标函数为:minD(W,H)=Σij(VijlogVij(WH)ij-Vij+(WHij))-γΣij1(Hij+ϵ)θ]]>其中θ,ε为参数。γ=1/θ因为在后续求导过程中存在系数θ,为了便于计算,求导后消除掉,则引入γ;Hij表示系数矩阵的稀疏性的限制项,非负矩阵H的稀疏度为它的L1范数,根据乘性迭代法,可以得到迭代公式:Wia←WiaΣHajVij/(WH)ijΣHaj]]>Haj←HajΣiWiaVij/(WH)ijΣWia+1(Haj+ϵ)θ+1.]]>作为本发明的进一步改进,在所述数据聚类模块中,聚类过程有三种,可以采用如下三种方法中的任一种:第一种方法:使得基矩阵的W的列向量的个数等于将要聚类的簇的个数,即Vm×n=Wm×c×Hc×n,这个时候W就表示为簇数目个列向量,H为n个样本在每个列向量上面的投影,根据H每一行中最大的值就可以判断这个时序数据所在的簇,不在使用其他的聚类算法;第二种方法则不同于第一种,这个时候W的列向量可以比簇的个数多很多,因为簇的个数一般情况下较少,分解后对矩阵H使用k-means算法进行聚类,得出聚类结果;第三种方法使用之前分解出来的W的列向量作为中心点,然后对初始矩阵V进行k-means算法,得到聚类结果。本发明的有益效果是:本发明的基于非负矩阵分解的时序数据聚类方法及系统,提高时序数据的聚类计算速度,而且本发明是基于非负矩阵分解获得的数据表达,将会明显提高时间序列挖掘的效率。附图说明图1是本发明的属性图聚类模型的系统框图。图2是本发明的原始数据示意图。图3是本发明的构建目标函数示意图。图4为本发明的目标函数求解流程图。图5是函数F(h)及其辅助函数G(h,ht)的示意图。具体实施方式本发明公开了一种基于非负矩阵分解的时间序列数据聚类方法及系统,首先介绍我们如何解决时序数据聚类算法的应用:为了解决时间序列数据的聚类问题,首要需要解决的问题是如何刻画和描述原始的未经处理的时间序列数据。此问题主要涉及两个方面,如何建立数据的表示模型,如何有效的设计算法的迭代计算规则。这两个问题是相互依赖的,相互耦合的。为了达到突出时序数据的局部特征的目的,将采用非负矩阵分解的系数矩阵H稀疏性改进的方法来解决。在聚类的过程中,要计算样本的差异性也就是计算系数矩阵的每一列之间的距离。在时序数据聚类中,每一列时序数据在基上的投影向量所含的信息量反应了原数据的相应信息量。非负矩阵分解可以理解为将样本表示为非负基向量的列向量的线性组合。而系数矩阵则是样本在非负基矩阵W上面的投影,所以我们希望系数矩阵具有稀疏性,也就是选择了蕴含大量样本信息的列向量而将对样本重构贡献趋于零的去掉。当最后在系数矩阵中仅保留了贡献值大的模型,更有利于后续的聚类算法。同时如果对系数矩阵添加了此限制,同样也会加快收敛的速度。因为稀疏性使得矩阵中出现了尽可能多的零,速度自然就会变快。综上所述,稀疏性在时序数据聚类算法上体现了三种优点,第一是提高算法的准确度,第二是加快算法的收敛过程,第三是对噪音点有了更强的鲁棒性,因为稀疏性本身就有降噪的功能。我们介绍基于系数矩阵优化的时序数据聚类算法,目标函数为:minD(W,H)=Σij(VijlogVij(WH)ij-Vij+(WHij))-γΣij1(Hij+ϵ)θ]]>其中θ,ε为参数。γ=1/θ因为在后续求导过程中存在系数θ,为了便于计算,求导后消除掉,则引入γ;Hij表示系数矩阵的稀疏性的限制项,非负矩阵H的稀疏度为它的L1范数,根据乘性迭代法,可以得到迭代公式:Wia←WiaΣHajVij/(WH)ijΣHaj]]>Haj←HajΣiWiaVij/(WH)ijΣWia+1(Haj+ϵ)θ+1.]]>具体为:利用乘性迭代法,对基矩阵和系数矩阵迭代求解,具体过程为:由目标函数:minD(W,H)=Σij(VijlogVij(WH)ij-Vij+(WHij))-γΣij1(Hij+ϵ)θ]]>分别对基矩阵W和系数矩阵H求导得到∂D1(V||WH)∂Wia=Σj(VjHaj(WH)ij×ln2+Haj)]]>∂D1(V||WH)∂Haj=Σi(VijWia(WH)ij×ln2+Wia)-1(Hij+ϵ)θ1+1]]>接下来分别对两个矩阵进行更新,固定基矩阵更新系数矩阵可得Haj←HajΣiWiaVij/(WH)ijΣWia+1(Haj+ϵ)θ+1]]>固定系数矩阵更新基矩阵可得:Wia←WiaΣHajVij/(WH)ijΣHaj.]]>在本发明的基于非负矩阵分解的时间序列数据聚类方法中,读入训练样本中的每个时序数据M。同时建立向量GR(GetResult)存储每个样本所对应的类标,最后在进行准确率计算的时候进行使用;将每个时序数据按行存成一列,同时去掉样本中已经表明的类标列,向量V=M-GR。对数据进行预处理,因为非负矩阵分解要求所有的数据都是非负的,所以必须对数据进行预处理,如果数据中存在负数,则将所有的数据都向上平移所需要的单位,根据时序数据的特征我们知道,向上平移后的时序数据对非负矩阵分解没有影响,同时可以保证对最后的聚类结果没有影响,即将矩阵V向上平移一个他的最小负值到零点的距离即可。初始化矩阵W和矩阵H。矩阵W和H的初始化,就是随机产生0-1之间的随机数在相应的元素位置上。根据分解得到的时序数据矩阵表达,利用常规聚类方法(KMeans、谱聚类)得到聚类结果,根据得到的矩阵信息,可以用三种方法进行聚类,具体实施过程如下:第一种方法使得基矩阵的W的列向量的个数等于将要聚类的簇的个数,即Vm×n=Wm×c×Hc×n,这个时候W就表示为簇数目个列向量,H为n个样本在每个列向量上面的投影,根据H每一行中最大的值就可以判断这个时序数据所在的簇,不在使用其他的聚类算法。第二种方法则不同于第一种,这个时候W的列向量可以比簇的个数多很多,因为簇的个数一般情况下较少,分解后对矩阵H使用k-means算法进行聚类,得出聚类结果。第三种方法使用之前分解出来的W的列向量作为中心点,然后对初始矩阵V进行k-means算法,得到聚类结果。本发明的收敛性证明如下:定义1:如果公式(3-10)成立,称函数G(h,h′)是函数F(h)的辅助函数。辅助函数十分有用的因为可以推导出下面的定理1。可以通过图5直观的表达公式(3-10)。G(h,ht)≥F(h),G(h,h)=F(h)定理1:如果函数G(h,h′)是函数F(h)的辅助函数,那么在下式迭代方式中F(h)是非增的。ht+1=argminhG(h,ht)证明:F(ht+1)≤G(ht+1,ht)≤G(ht,ht)=F(ht),如果F存在差值,而且和ht是连续相邻的,这就意味着对这个差值取导数值为零就是对一个趋于零的常数取导数值为零。那我们对公式(3-10)进行迭代可以获得一个序列,此序列可以帮我们估计hmin=argminhF(h),得到公式(3-12)。F(hmin)≤…F(ht+1)≤F(ht)…≤F(h2)≤F(h1)≤F(h0)定理2:根据上面的定理构造辅助函数如下式所示:G(h,ht)=Σi(vilogvi-vi)+ΣiaWiaha-ΣViWiahatΣbWibhbt(logWiaha-logWiahatΣbWibhbt)-1(Hij+ϵ)θ]]>公式(3-13)是目标函数F(h)的辅助函数。很容易证明G(h,h)=F(h),下面需要证明G(h,ht)≥F(h),因为是凸函数,由凸函数的性质可得:-logΣaWiaha≤-ΣaαalogWiahaαa]]>设αa=WiahatΣbWibhbt]]>我们得到-logΣaWiaha≤-ΣaWiahatΣbWibhbt(logWiaha-logWiahatΣbWibhbt)]]>则G(h,ht)≥F(h)。定理2:求G(h,ht)的最小值,另∂G(h,ht)∂ha=-ΣiViWiahatΣbWibhbth+ΣiWia+1(Haj+ϵ)θ+1=0]]>得到迭代公式:Haj←HajΣiWiaVij/(WH)ijΣWia+1(Haj+ϵ)θ+1]]>因为G是辅助函数,所以目标函数F在此迭代公式下面是非增的。通过转换矩阵W和矩阵H的角色,可以类似证明在迭代公式下矩阵W是非增的。至此,我们得到了时间序列数据的聚类结果,可以利用此结果进一步应用于时间序列数据挖掘中。近几年来,时序数据聚类问题被许多学者和研究人员广泛研究,大量可行的方法也随之出现,这些方法都建立在一些相同的基本原理之上。非负矩阵分解也是子空间学习算法的一种重要方式,在人脸识别,大脑核磁共振信息等领域都有重要的应用,具有重要的现实意义。本发明基于非负矩阵分解的时序数据的聚类问题,对传统的非负矩阵分解应用在时序数据聚类方面进行研究和分析,改进传统的方法,提高聚类的准确率。对非负矩阵分解算法进行深入分析。研究不同的子空间学习算法之间的区别和用途。因为现在存在很多子空间学习算法,例如主成分分析法,线性判别分析等,而非负矩阵分解加入了非负的属性,那在进行重构的时候,只能使用加性法则,使得结果保存了数据的局部信息不同于传统的子空间学习方法,与此同时我们在进行时序数据聚类的时候,更希望关注于数据的局部信息,而不是数据的全局信息,所以采用本发明的方法。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属
技术领域
的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1