一种动态流式数据的聚类方法与流程

文档序号:11775336阅读:667来源:国知局

本发明涉及一种聚类方法,尤其涉及一种动态流式数据的聚类方法。



背景技术:

聚类算法是数据挖掘领域的几大方法之一,如分类、聚类、回归、因素分析。在大数据时代,通过聚类算法分析海量数据,从中得到更好的决策能力,聚类算法的优势可以处理无监督机器学习,对没有标记的数据主动的进行分类。随着对聚类算法的研究不断深入,研究人员提出了越来越多不同的聚类算法,包括基于划分的聚类,基于网格的聚类,以及基于层次的聚类。这些算法针对不同的维度、规模、类型的数据集提出,针对相同的数据集,使用不同的聚类算法,得到的结果可能差异很大。

目前已有的各类聚类方法,主要分两类:一是指定固定的聚类算法,实施聚类算法并返回结果,但有限的算法导致面对复杂的数据结构的时候,最终聚类效果不理想,但其优点是处理的业务场景更加通用广泛。另一类算法是针对特定的应用领域,可以更细致的划分聚类任务和聚类目标,从而更精确的改进完善聚类算法,最终聚类结果也更符合用户目标,但该类方法的缺点是应用范围单一,本发明属于后者,是针对特定的流数据进行更加细致的处理的聚类方法。

在实时流数据的应用场景中,数据通常是以实时流数据形式进入系统,并且数据的个数随着时间不断变化,或者新增、或者减少,或者中途数据变化的情况。如果这些参数或维度字段是相对固定的,如果这些数据随着时间在发生变化,那么可以针对每一个时间点,增加一个时间参数,即在原有数据上增加了一个维度字段,仍使用k-means、x-means等方法进行聚类计算。

但是这些方法是把时间作为一个单独的字段或维度,融入原来数据,实际上只是把原有数据提升了一个维度,来进行聚类计算的。这样会出现一个问题,某些业务场景本来是根据时间在不断变化,而时间仅作为一个普通维度,聚类效果不好,也无法更好的反应数据的分类特性。

综上,在面对数据的个数随着时间不断变化,或者新增、或者减少,或者中途数据变化的情况,使用传统的k-means、x-means等方法无法有效的进行面对以上复杂的情况进行有效的数据聚类,目前业界也尚无一种针对实时流数据的较好的解决方法。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种适用于对时间特性数据动态变化的流式数据的聚类方法。本方法针对数据的特性进行了专项优化、针对缺失数据,使用hmm进行预测、针对同时间片中同一标识的重复数据进行处理的方法,使本发明能够甄别异常数据、自动优化聚类类别个数、得到高质量的聚类结果。

本发明的目的是通过以下技术方案来实现的,一种动态流式数据的聚类方法,它包括以下步骤:

s1:提取时间字段,将数据转化为时间字段数据,并单独将时间字段提取出来;

s2:构建时间片,时间字段排序后构建出时间片段;

s3:判定数据点,定位识别每个数据;

s4:时间片、数据求并集,并将没有对应数据的时间片标记出来;

s5:构建训练模型,对缺失数据构建hmm预测;

s6:检查数据有效性,对重复数据点新增时间片;

s7:剔除异常数据,根据全部时间片,检查是否存在波动异常的数据;

s8:质心数据聚类。

在步骤s1中所述的数据是字段、结构清晰的结构化数据;所述的提取时间字段,时间字段在通过结构储存后,原来的数据结构中不再含有时间字段。

在步骤s2中所述的构建时间片是根据时间字段的数值,对每一个数据集升序排序,每一个数据集作为一个时间片,每个时间片内又包含对应的一个数据集,且每个数据在不同的时间片上能够定位和识别,数据在任意时间点上可以缺失,但不存在重复。

在步骤s3中所述的判定数据点目的在于使数据在任意时间点不存在重复,但可以缺失。

在步骤s4中所述的求并集是对所有时间片和数据求并集,即每一个时间片下,包含整时间段的所有数据,如该数据点在该时间片下无对应数据,则标识出来进入步骤s5做出进一步处理。

在步骤s5中所述的构建训练模型是对缺失数据使用hmm构建新模型,并对模型进行训练和预测。

在步骤s6中所述的检查数据有效性,如果出现重复数据则对重复数据进行标记,对时间片以增加副本形式进行标记,是数据处理的每个时间片都没有重复。

在步骤s7中所述的剔除异常数据是根据全部时间片,检查是否有存在波动异常的数据,如存在则剔除该数据。

在步骤s8中所述的质心数据聚类包括以下步骤:

s81:求质心,利用求质心公式,求出每一个数据,在不同时间点下的所有数据的质心;

s82:判定是否设定聚类数目,若有聚类数目则使用k-means算法对质心数据聚类;若没有聚类数目则使用x-means算法对质心数据聚类。

本发明的有益效果是:

1)针对时间特性进行专项优化。本发明中区别于传统的数据聚类,并非将时间作为数据众多维度中的一种,而是单独构建了时间片的概念,每个时间片下又包含数据的张量。

2)对于缺失数据,使用隐形马尔科夫模型构建并训练模型,进行预测。针对在某个时间片上缺失的数据,先根据该数据在其他时间片上已有的数据训练隐形马尔科夫模型模型,使用模型对缺失的数据进行预测模拟,从而使每个时间片都具备完整的数据,使得最终聚类效果更理想。

3)对同时间片中同一标识的重复数据进行处理。在同一时间片中针对同类时间片进行增加副本形式,将数据处理为每个时间片没有重复的标识,这样有效的利用了全部数据,又适配了后续的数据结构便于进行计算。

4)可以甄别异常数据。可以根据全部时间片,检查是否有存在影响聚类,影响聚类效果的异常数据,如有则进行标记。

5)可以自动优化聚类类别个数。如果指定聚类类别的个数,则按照指定个数进行聚类,如果不指定聚类的个数,可自动判断使用几个类别进行划分。

6)最终聚类质量高。本方法中考虑到了针对流式数据聚类的各种情况。并根据各种应用场景进行了方法的特殊处理和优化,这样本方法的适应性更广泛,使结果更加准确。

附图说明

图1为本发明的流程图。

具体实施方式

下面结合具体实施例进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。

实施例1

如图1,一种动态流式数据的聚类方法,它包括以下步骤:

s1:提取时间字段,将数据转化为时间字段数据,并单独将时间字段提取出来;

s2:构建时间片,时间字段排序后构建出时间片段;

s3:判定数据点,定位识别每个数据;

s4:时间片、数据求并集,并将没有对应数据的时间片标记出来;

s5:构建训练模型,对缺失数据构建hmm预测;

s6:检查数据有效性,对重复数据点新增时间片;

s7:剔除异常数据,根据全部时间片,检查是否存在波动异常的数据;

s8:质心数据聚类。

在步骤s1中所述的准备被分析数据中数据应当是结构化数据,数据字段和结构应当清晰、有效。具体实施方法如下,假设字段依次为{c1,c2,c3,c4…..cn}共计n个字段,整个数据的结构应当是:

[{c11,c12,c13,c14…..c1n},

{c21,c22,c23,c24…..c2n},

{c31,c32,c33,c34…..c3n},

{cm1,cm2,cm3,cm4…..cmn}

]

其中c12的含义是第1个数据中的第2个字段,整个数据集,有m个数据,每个数据有

n个字段。

所述的提取时间片段中,时间字段用结构储存后,原来的数据结构中不再含有时间字段。具体实施方法如下,假设字段依次为{c1,c2,c3,c4…..cn},共计n个字段,其中c1为时间,则将数据转化为:

[{t1:c11,[c12,c13,c14…..c1n]},

{t2:c21,[c22,c23,c24…..c2n]},

{t3:c31,[c32,c33,c34…..c3n]},

{tm:cm1,[cm2,cm3,cm4…..cmn]}

]

转化后数据集中,时间字段被单独抽取出来。

在步骤s2中所述的构建时间片是根据时间字段的数值,对每一个数据集升序排序,每一个数据集作为一个时间片,每个时间片内又包含对应的一个数据集,且每个数据在不同的时间片上能够定位和识别,数据在任意时间点上可以缺失,但不存在重复,即根据c11,c21~cm1的值将所有数据进行排序,例如c11,c21,c31~cm1的顺序为:c21,c31,c11~cm1,则整个数据集为:

[{t3:c31,[c32,c33,c34…..c3n]},

{t1:c11,[c12,c13,c14…..c1n]},

{t2:c21,[c22,c23,c24…..c2n]},

{tm:cm1,[cm2,cm3,cm4…..cmn]}

]

在步骤s3中所述的判定数据点目的在于使数据在任意时间点不存在重复,但可以缺失,即:抽取c12,c22,~cm2,作为数据a1,依次抽出数据a1~am。

在步骤s4中所述的求并集是对所有时间片和数据求并集,即每一个时间片下,包含整时间段的所有数据,如该数据点在该时间片下无对应数据,则标识出来进入步骤s5做出进一步处理,例如,在{t:c21,[c22,c23,c24…..c2n]},这个数据中,没有c25这个数据,则在构造a5的时候,仍然添加c25数据,只是将其值标记为*,等待后续处理。a5数据集为{c15,c25:*,c35,c45~cm5}。

在步骤s5中所述的构建训练模型是对缺失数据使用hmm构建新模型,并对模型进行训练和预测,具体实施方法如下,针时间片和数据求并集,数据集a5缺乏数据c25的情况,构建训练数据集ax5:{t1:c15,t3:c35,t4c45~t5:cm5},其中c25的值缺少而缺少{t2:c25},使用ax5数据集训练隐形马尔科夫模型,训练好后,将t2作为输入。

在步骤s6中所述的检查数据有效性,如果出现重复数据则对重复数据进行标记,对时间片以增加副本形式进行标记,是数据处理的每个时间片都没有重复,具体实施方法如下,假设t2时间片的数据为{t2:c21,[c22,c23,c24,c’24,c25…..c2n]},其中c24,c’24均属于数据集a4,则构建出{t2,t,2}两个时间片:

{t2:c21,[c22,c23,c24,c25…..c2n]}

{t’2:c21,[c22,c23,c’24,c25…..c2n]}

确保同一时间片内无重复归属的数据。

在步骤s7中所述的剔除异常数据是根据全部时间片,检查是否有存在波动异常的数据,如存在则剔除该数据。具体实施方法如下:假设数据在同一个时间片内重复次数为fn次,若fn>3则判定位异常数据,例如假设t2时间片的数据为:

{t2:c21,[c22,c23,c24,c’24,c”24,c”’24,c25…..c2n]},其中c24,c’24,c”24,c”’24数据均属于数据集,该数据多次重复出现,则认为该数据为异常数据。

在步骤s8中所述的质心数据聚类包括以下步骤:

s81:求质心,利用求质心公式构建出数据集x:[x1,x2,x3,x4…..xm],求出每一个数据,在不同时间点下的所有数据的质心;

s82:判定是否设定聚类数目,若有聚类数目k则使用k-means算法对质心数据聚类,则针对数据集x:[x1,x2,x3,x4…..xm],进行聚类数目为k的聚类,得到聚类结果;若没有聚类数目则使用x-means算法将自动选择聚类质心数据,则针对数据集x:[x1,x2,x3,x4…..xm]进行聚类,得到聚类结果。

以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1