一种基于知识重用的演化聚类方法转让专利

申请号 : CN201410377347.8

文献号 : CN104156418A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张玉超邓波彭甫阳李冬红李海龙

申请人 : 北京系统工程研究所

摘要 :

本发明公开了一种基于知识重用的演化聚类方法,其通过截取t时刻和以时间窗口长度为限制的有限个历史时刻的数据,应用任一静态聚类方法对数据进行聚类分析,并将聚类结果生成离散化0-1矩阵,之后按时间衰减加权离散化0-1矩阵获得加权0-1矩阵,最后用静态聚类方法对加权0-1矩阵进行静态聚类分析,获得t时刻的演化聚类结果。本发明是通过融合历史时刻的多时间截面静态聚类结果,形成知识积累;从短期来看,可以消除数据噪音提高聚类准确率,从长期来看,可以防止数据扰动保持聚类的稳定性。

权利要求 :

1.一种基于知识重用的演化聚类方法,其特征在于,包括以下步骤:

步骤一、截取数据库中动态社区中或者金融产品中t时刻n个样本的数据作为基础数据;

步骤二、设定时间窗口长度为k,k<10,若t-k<0,则按相同时间间隔连续跟踪截取n个样本的t-1个单时间窗口的变化数据,应用任一静态聚类方法将获得的t时刻的基础数据和t-1个单时间窗口的变化数据进行分析获得包括样本数n,n个样本所属聚类数m以及n个样本与所属聚类的对应关系的t个静态聚类结果,并将t个静态聚类结果分别转化为对应t个的离散化0-1矩阵;

步骤三、若t-k>0,则按相同时间间隔连续跟踪截取n个样本的k-1个单时间窗口的变化数据,应用任一静态聚类方法将获得的t时刻的基础数据和k-1个单时间窗口的变化数据进行分析获得包括样本数n,n个样本所属聚类数m以及n个样本与所属聚类的对应关系的k个静态聚类结果,并将k个静态聚类结果分别转化为对应的k个离散化0-1矩阵;

步骤四、通过时间顺序将步骤二的t个的离散化0-1矩阵或者步骤三的k个离散化0-1矩阵加权获得加权0-1矩阵I或II;

步骤五、最后应用所述静态聚类分析所述加权0-1矩阵I或II,剔除其中的数据噪音,获得最终动态数据的演化聚类结果,修正t时刻的静态聚类结果,明确n个样本在动态社区中或者金融产品中的所属聚类,其中,t>1,n>1以及m>1。

2.如权利要求1所述基于知识重用的演化聚类方法,其特征在于,所述步骤三中将静态聚类结果生成离散化0-1矩阵具体方法为:矩阵中“行”代表样本,“列”代表该时刻的聚类,矩阵中每一行向量代表样本在对应聚类中是否出现,出现为1,否则为0。

3.如权利要求2所述基于知识重用的演化聚类方法,其特征在于,所述步骤三中将静态聚类结果生成离散化0-1矩阵具体方法中当生成离散化0-1矩阵时,如果出现了与静态聚类结果中不同的样本则在矩阵中相应“行”和“列”均记为0。

4.如权利要求3所述基于知识重用的演化聚类方法,其特征在于,步骤四中获得加权

0-1矩阵,其中,权重值设置为以t时刻的权重值为最大,之前的单个时间窗口的权重值逐渐减小,加权方法为:所述“行”不变,所述“列”相接。

5.如权利要求4所述的基于知识重用的演化聚类方法,其特征在于,所述步骤三中相邻两个单时间窗口的时间间隔值为任何时间单位的1。

6.如权利要求5所述的基于知识重用的演化聚类方法,其特征在于,所述步骤二中t个静态聚类结果分别或者步骤三中k个静态聚类结果会储存在数据库中形成以时间为轴的知识重用框架。

7.如权利要求6所述的基于知识重用的演化聚类方法,其特征在于,当服务器检测到在分析同一个动态社区或者金融产品中用到储存在数据库中相同时刻的知识重用框架的静态聚类结果时,可直接从数据库中调取相应的静态聚类结果。

8.如权利要求7所述的基于知识重用的演化聚类方法,其特征在于,所述动态社区可以为“新浪微博”,所述样本为“新浪微博用户”,所述聚类为“新浪微博社团”;所述金融产品可以为“股票市场”,所述样本为不同的“股票”,所述聚类为按价格高低分成的“价格区”。

9.如权利要求8所述的基于知识重用的演化聚类方法,其特征在于,还包括:

步骤一、截取数据库中“新浪微博”t时刻n个“新浪微博用户”的数据作为基础数据;

步骤二、设定时间窗口长度为k,k<10,若t-k<0,则按相同时间间隔连续跟踪截取n个样本的t-1个单时间窗口的变化数据,应用任一静态聚类方法将获得的t时刻的基础数据和t-1个单时间窗口的变化数据进行分析获得包括n个“新浪微博用户”的数量,n个“新浪微博用户”属于哪个“新浪微博社团”,以及所具有的m个“新浪微博社团”数量的对应关系的t个静态聚类结果,并将t个静态聚类结果分别转化为对应t个的离散化0-1矩阵;

步骤三、若t-k>0,则按相同时间间隔连续跟踪截取n个样本的k-1个单时间窗口的变化数据,应用任一静态聚类方法将获得的t时刻的基础数据和k-1个单时间窗口的变化数据进行分析获得包括n个“新浪微博用户”的数量,n个“新浪微博用户”属于哪个“新浪微博社团”,以及所具有的m个“新浪微博社团”数量的对应关系的k个静态聚类结果,并将k个静态聚类结果分别转化为对应的k个离散化0-1矩阵;

步骤四、通过时间顺序将步骤二的t个的离散化0-1矩阵或者步骤三的k个离散化0-1矩阵加权获得加权0-1矩阵I或II,其中,具体方法为矩阵中“行”代表“新浪微博用户”,“列”代表k时刻的“新浪微博社团”,矩阵中每一行向量代表“新浪微博用户”在对应“新浪微博社团”中是否出现,出现为1,否则为0;

步骤五、最后应用所述静态聚类分析所述加权0-1矩阵I或II,剔除其中的数据噪音,获得最终动态数据的演化聚类结果,修正t时刻的静态聚类结果,明确n个“新浪微博用户”在“新浪微博”中所属的“新浪微博社团”,其中,t>1,n>1以及m>1。

说明书 :

一种基于知识重用的演化聚类方法

技术领域

[0001] 本发明涉及属于数据挖掘和机器学习领域,特别涉及一种基于知识重用的演化聚类方法,用于多时间截面数据集的演化聚类分析,并可防止数据扰动、抵抗数据噪音。

背景技术

[0002] 数据质量指数据满足明确或隐含需求程度的指标,是对于现实世界的真实写照。数据质量问题不仅仅指出现不正确的数据,还指数据不一致性问题。随着数据量的增加,数据的内部一致性问题变得极为重要,是广泛存在于各学科数据使用中的一个主题。噪声作为测量误差的随机部分,它可能涉及到值的失真或加入了伪造的对象数据。
[0003] 传统的静态聚类方法只能针对单一时间截面的数据进行聚类,无法处理数据演化过程中可能出现的抖动和数据噪音。现有的演化聚类方法只能针对t时刻和前一时刻的动态数据的静态聚类结果进行聚类融合,知识利用程度不高。同时,这些模型往往需要设定参数,求解过程也极为复杂。另外,现有分析对于静态聚类结果的数量变化十分敏感,针对演化过程中点的变化情况也没有较好的应对策略。
[0004] 鉴于上述描述,本发明提供一种基于知识重用的演化聚类方法,其为一种面向动态变化数据的聚类方法,广泛应用在社区识别、金融产品分析等应用领域,基于知识重用的演化聚类方法是通过融合历史时刻的多时间截面聚类结果,形成知识积累;短期来看,可以消除数据噪音提高聚类准确率,从长期来看,可以防止数据扰动保持聚类的稳定性。

发明内容

[0005] 本发明的目的在于提供一种基于知识重用的演化聚类方法,本发明所述基于知识重用的演化聚类方法是通过融合历史时刻的多时间截面静态聚类结果,形成知识积累,以时间为轴构建出知识重用框架,从短期来看,可以消除数据噪音提高聚类准确率,从长期来看,可以防止数据扰动保持聚类的稳定性。
[0006] 为了实现上述目的及一些其他目的,本发明提供的技术方案为:
[0007] 一种基于知识重用的演化聚类方法,其特征在于,包括以下步骤:
[0008] 步骤一、截取数据库中动态社区中或者金融产品中t时刻n个样本的数据作为基础数据;
[0009] 步骤二、设定时间窗口长度为k,k<10,若t-k<0,则按相同时间间隔连续跟踪截取n个样本的t-1个单时间窗口的变化数据,应用任一静态聚类方法将获得的t时刻的基础数据和t-1个单时间窗口的变化数据进行分析获得包括样本数n,n个样本所属聚类数m以及n个样本与所属聚类的对应关系的t个静态聚类结果,并将t个静态聚类结果分别转化为对应t个的离散化0-1矩阵;
[0010] 步骤三、若t-k>0,则按相同时间间隔连续跟踪截取n个样本的k-1个单时间窗口的变化数据,应用任一静态聚类方法将获得的t时刻的基础数据和k-1个单时间窗口的变化数据进行分析获得包括样本数n,n个样本所属聚类数m以及n个样本与所属聚类的对应关系的k个静态聚类结果,并将k个静态聚类结果分别转化为对应的k个离散化0-1矩阵;
[0011] 步骤四、通过时间顺序将步骤二的t个的离散化0-1矩阵或者步骤三的k个离散化0-1矩阵加权获得加权0-1矩阵I或II;
[0012] 步骤五、最后应用所述静态聚类分析所述加权0-1矩阵I或II,剔除其中的数据噪音,获得最终动态数据的演化聚类结果,修正t时刻的静态聚类结果,明确n个样本在动态社区中或者金融产品中的所属聚类,其中,t>1,n>1以及m>1。
[0013] 优选的是,所述步骤三中将静态聚类结果生成离散化0-1矩阵具体方法为:矩阵中“行”代表样本,“列”代表该时刻的聚类,矩阵中每一行向量代表样本在对应聚类中是否出现,出现为1,否则为0。
[0014] 优选的是,所述步骤三中将静态聚类结果生成离散化0-1矩阵具体方法中当生成离散化0-1矩阵时,如果出现了与静态聚类结果中不同的样本则在矩阵中相应“行”和“列”均记为0。
[0015] 优选的是,步骤四中获得加权0-1矩阵,其中,权重值设置为以t时刻的权重值为最大,之前的单个时间窗口的权重值逐渐减小,加权方法为:所述“行”不变,所述“列”相接。
[0016] 优选的是,所述步骤三中相邻两个单时间窗口的时间间隔值为任何时间单位的1。
[0017] 优选的是,所述步骤二中t个静态聚类结果分别或者步骤三中k个静态聚类结果会储存在数据库中形成以时间为轴的知识重用框架。
[0018] 优选的是,当服务器检测到在分析同一个动态社区或者金融产品中用到储存在数据库中相同时刻的知识重用框架的静态聚类结果时,可直接从数据库中调取相应的静态聚类结果。
[0019] 优选的是,所述动态社区可以为“新浪微博”,所述样本为“新浪微博用户”,所述聚类为“新浪微博社团”,所述金融产品可以为“股票市场”,所述样本为不同的“股票”,所述聚类为按价格高低分成的“价格区”。
[0020] 优选的是,还包括:
[0021] 步骤一、截取数据库中“新浪微博”t时刻n个“新浪微博用户”的数据作为基础数据;
[0022] 步骤二、设定时间窗口长度为k,k<10,若t-k<0,则按相同时间间隔连续跟踪截取n个样本的t-1个单时间窗口的变化数据,应用任一静态聚类方法将获得的t时刻的基础数据和t-1个单时间窗口的变化数据进行分析获得包括n个“新浪微博用户”的数量,n个“新浪微博用户”属于哪个“新浪微博社团”,以及所具有的m个“新浪微博社团”数量的对应关系的t个静态聚类结果,并将t个静态聚类结果分别转化为对应t个的离散化0-1矩阵;
[0023] 步骤三、若t-k>0,则按相同时间间隔连续跟踪截取n个样本的k-1个单时间窗口的变化数据,应用任一静态聚类方法将获得的t时刻的基础数据和k-1个单时间窗口的变化数据进行分析获得包括n个“新浪微博用户”的数量,n个“新浪微博用户”属于哪个“新浪微博社团”,以及所具有的m个“新浪微博社团”数量的对应关系的k个静态聚类结果,并将k个静态聚类结果分别转化为对应的k个离散化0-1矩阵;
[0024] 步骤四、通过时间顺序将步骤二的t个的离散化0-1矩阵或者步骤三的k个离散化0-1矩阵加权获得加权0-1矩阵I或II,其中,具体方法为矩阵中“行”代表“新浪微博用户”,“列”代表k时刻的“新浪微博社团”,矩阵中每一行向量代表“新浪微博用户”在对应“新浪微博社团”中是否出现,出现为1,否则为0;
[0025] 步骤五、最后应用所述静态聚类分析所述加权0-1矩阵I或II,剔除其中的数据噪音,获得最终动态数据的演化聚类结果,修正t时刻的静态聚类结果,明确n个“新浪微博用户”在“新浪微博”中所属的“新浪微博社团”,其中,t>1,n>1以及m>1。
[0026] 本发明所提供基于知识重用的演化聚类方法的有益效果是:
[0027] 本发明所述基于知识重用的演化聚类方法是通过融合历史时刻的多时间截面静态聚类结果,形成知识积累,以时间为轴构建出知识重用框架,在获取某一历史时刻的聚类结果时,不用重复统计,可以直接从数据库中调取知识重用框架中的静态聚类结果,节省时间,从短期来看,可以消除数据噪音提高聚类准确率,从长期来看,可以防止数据扰动保持聚类的稳定性。本发明利用知识重用概念构建演化聚类算法,能够融合多个时间截面的知识信息,大大提高了聚类的准确性;本发明还能根据t时刻样本的移入和移出情况,自动调整0-1矩阵,具有一定的扩展性,并且当在将静态聚类结果生成离散化0-1矩阵中,如果生成离散化0-1矩阵时出现了与静态聚类结果中不同的样本则在矩阵中相应“行”和,列”均记为0,去除不必要的数据干扰;本发明还通过启发式求解策略进行演化问题求解,简单易行、灵活性强。

附图说明

[0028] 图1为本发明所述的基于知识重用的演化聚类方法流程图。
[0029] 图2为000011.SZ、000055.SZ、600008.SH、600138.SH和600742.SH在7月的开盘价的走势图。
[0030] 图3为本发明实施例2中7月12日分成的5个聚类的股票分布图。
[0031] 图4为本发明实施例2中不同时刻(时间窗口)每个类包含股票数目走势图。
[0032] 图5为本发明实施例2中相邻时刻静态聚类结果的相似程度图。
[0033] 图6为本发明实施例2中相邻时刻演化聚类结果的相似程度图。

具体实施方式

[0034] 下面结合实施例,以及结合附图,对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
[0035] 如图1所示,本发明提供的基于知识重用的演化聚类方法,包括以下步骤:
[0036] 步骤一、截取数据库中动态社区或者金融产品t时刻n个样本的数据作为基础数据;
[0037] 步骤二、设定时间窗口长度为k,k<10,若t-k<0,则按相同时间间隔连续跟踪截取n个样本的t-1个单时间窗口的变化数据,应用任一静态聚类方法将获得的t时刻的基础数据和t-1个单时间窗口的变化数据进行分析获得包括样本数n,n个样本所属聚类数m以及n个样本与所属聚类的对应关系的t个静态聚类结果,并将t个静态聚类结果分别转化为对应t个的离散化0-1矩阵;
[0038] 步骤三、若t-k>0,则按相同时间间隔连续跟踪截取n个样本的k-1个单时间窗口的变化数据,应用任一静态聚类方法将获得的t时刻的基础数据和k-1个单时间窗口的变化数据进行分析获得包括样本数n,n个样本所属聚类数m以及n个样本与所属聚类的对应关系的k个静态聚类结果,并将k个静态聚类结果分别转化为对应的k个离散化0-1矩阵;
[0039] 其中,将静态聚类结果生成离散化0-1矩阵具体方法为:矩阵中“行”代表样本,“列”代表该时刻的聚类,矩阵中每一行向量代表样本在对应聚类中是否出现,出现为1,否则为0,在次过程中如果出现了与静态聚类结果中不同的样本则在矩阵中相应“行”和“列”均记为0;
[0040] 相邻两个单时间窗口的时间间隔值为任何时间单位的1;
[0041] 步骤二中t个静态聚类结果分别或者步骤三中k个静态聚类结果会储存在数据库中形成以时间为轴的知识重用框架,当服务器检测到在分析同一个动态社区或者金融产品中用到储存在数据库中相同时刻的知识重用框架的静态聚类结果时,可直接从数据库中调取相应的静态聚类结果;
[0042] 步骤四、通过时间顺序将步骤二的t个的离散化0-1矩阵或者步骤三的k个离散化0-1矩阵加权获得加权0-1矩阵I或II,其中,权重值设置为以t时刻的权重值为最大,之前的单个时间窗口的权重值逐渐减小,且权重值为按时间衰减顺序设置,加权方法为:“行”不变,“列”相接;
[0043] 步骤五、最后应用静态聚类分析加权0-1矩阵I或II,剔除其中的数据噪音,获得最终动态数据的演化聚类结果,修正t时刻的静态聚类结果,明确n个样本在动态社区中或者金融产品中的所属聚类,其中,t>1,n>1以及m>1。
[0044] 动态社区可以为“新浪微博”,样本为“新浪微博用户”,聚类为“新浪微博社团”;所述金融产品可以为“股票市场”,所述样本为不同的“股票”,所述聚类为按价格高低分成的“价格区”。因此,本发明基于知识重用的演化聚类方法可以表述为还包括以下步骤:
[0045] 步骤一、截取数据库中“新浪微博”t时刻n个“新浪微博用户”的数据作为基础数据;
[0046] 步骤二、设定时间窗口长度为k,k<10,若t-k<0,则按相同时间间隔连续跟踪截取n个样本的t-1个单时间窗口的变化数据,应用任一静态聚类方法将获得的t时刻的基础数据和t-1个单时间窗口的变化数据进行分析获得包括n个“新浪微博用户”的数量,n个“新浪微博用户”属于哪个“新浪微博社团”,以及所具有的m个“新浪微博社团”数量的对应关系的t个静态聚类结果,并将t个静态聚类结果分别转化为对应t个的离散化0-1矩阵;
[0047] 步骤三、若t-k>0,则按相同时间间隔连续跟踪截取n个样本的k-1个单时间窗口的变化数据,应用任一静态聚类方法将获得的t时刻的基础数据和k-1个单时间窗口的变化数据进行分析获得包括n个“新浪微博用户”的数量,n个“新浪微博用户”属于哪个“新浪微博社团”,以及所具有的m个“新浪微博社团”数量的对应关系的k个静态聚类结果,并将k个静态聚类结果分别转化为对应的k个离散化0-1矩阵;
[0048] 步骤四、通过时间顺序将步骤二的t个的离散化0-1矩阵或者步骤三的k个离散化0-1矩阵加权获得加权0-1矩阵I或II,其中,具体方法为矩阵中“行”代表“新浪微博用户”,“列”代表k时刻的“新浪微博社团”,矩阵中每一行向量代表“新浪微博用户”在对应“新浪微博社团”中是否出现,出现为1,否则为0;
[0049] 步骤五、最后应用静态聚类分析加权0-1矩阵I或II,剔除其中的数据噪音,获得最终动态数据的演化聚类结果,修正t时刻的静态聚类结果,明确n个“新浪微博用户”在“新浪微博”中所属的“新浪微博社团”,其中,t>1,n>1以及m>1。
[0050] 实施例1
[0051] 下面以社团动态演化为例,说明本发明方法:
[0052] 假设动态变化个体集合D=[d1,d2,d3,d4,d5],其中di表示某个动态变化的个体,在不同时刻其可能属于不同的社团;同时,假设采取的历史时刻为k=3。为求解t时刻的社团演化聚类结果,需按照如下步骤操作:
[0053] 首先,利用静态聚类算法凝聚层次聚类,对k个历史时刻的个体集合进行聚类,以识别不同时刻,某个个体所属的社团。本例中k=3,所以需要分别对t-2,t-1和t时刻的个人集合进行聚类,假设得到不同时刻的社团划分结果为Ct=[1,1,2,2,3],Ct-1=[1,1,2,2,1],Ct-2=[1,1,2,2,2];
[0054] 其次,将k个时刻的社团划分结果Ct,Ct-1,Ct-2分别转化为相应的0-1矩阵Ut,Ut-1,Ut-2,矩阵中“行”代表某个个体,“列”代表k个时刻的所有社团标号,矩阵中每一行向量代表某个体在对应社团中是否出现,出现为1,否则为0;
[0055] 第三,根据社团划分的时间窗口长度k=3,分别设置不同时刻的社团划分权重分别为wt=k=3,wt-1=k-1=2,wt-2=k-2=1。进行权重归一化后,得到由此生成的加权为
[0056]
[0057] 最后,利用Kmeans聚类算法对上述矩阵进行聚类,得到最终的t时刻下,社团演化聚类结果。
[0058]
[0059] 结果为:第1、2个体属于一个社团;第3、4个体属于一个社团;第五个体属于一个社团。
[0060] 实施例2
[0061] 下面以金融分析-股票演化聚类为例,说明本发明方法:
[0062] 本例选择上市的2463只股票在2013年7月1日至2013年7月31日,23个工作日的股票价格数据,具体包括:开盘价,收盘价,最高价,最低价,平均价。此外,不同时刻的股票数量也不相同:在7月上旬有2461只股票,在7月中旬有2462只股票,在7月下旬有2463只股票。也就是说随着时间的推移,股票数量不断增加,也就是说参与聚类的样本点的数量在发生变化。这个就是典型的样本不一致的演化聚类。接下来随机地选取5只股票,查看其7月份的股价变动情况。如图2所示,这5股票价格走势比较平稳。这5只股票是整个股市的一个缩影:事实上,中国股市在2013年7月份总体走势比较平稳,股价波动较小。
[0063] 1)使用静态K均值对观察周期中每一天的数据进行聚类。如图3所示,黑色柱子表示每类股票的数量,黑色折线表示该类股票开票价的均值,当聚成5类时,K均值很好地区分了不同股价的股票,并得到了很好的聚类结果,即高股价的股票在同一个类中,低股价的股票在同一个类中。
[0064] 2)使用K均值对各个时刻的股票数据进行静态聚类。从图4可以看出,每个类包含的股票数量趋近相同,这与前文分析得出的结论,7月的股市平稳相一致。但是7月18日每个类的股票数量发生了较大变化。为了进一步刻画,演化数据的变化程度,计算了相邻两个时刻的聚类结果的相似程度。这里使用聚类评价指标Rn,来衡量相邻时刻的聚类结果的相似程度。如图5所示,发现7月18日(第14个工作日),股票的聚类结构发生了很大变化。然而,这与7月份平稳的股市相矛盾;这就说明如果使用静态聚类结果对股票市场进行分析,得到的结果是不可靠的。
[0065] 3)使用基于知识重用的演化聚类算法对中国2013年7月的股票数据进行聚类分析,这里使用静态K均值得到的聚类结果作为基础聚类器,选择10个窗口长度的基础聚类分量进行融合。由于窗口长度为10,因此由图6起始时刻为10。从图6可以很清楚地看出,相邻时间的演化聚类具有很高的相似程度。并且图5中第14个工作日出现的聚类结果的急剧变化,在演化聚类中得到了弥补。下表1展示了从第10个工作日到最后一直在同一个类股票代码。
[0066] 表1
[0067]
[0068] 本实施例以股票动态数据为研究对象,利用基于知识重用的演化聚类算法对2013年7月的股票进行聚类分析,结果表明:基于知识重用的演化聚类方法不仅比静态聚类算法能够抵抗噪声的影响,得到稳定的结果,还能够处理不一致的样本点。因此,基于知识重用的演化聚类方法能够为股票提供更好的决策支持。
[0069] 尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。