一种基于自动编码机实现数据增量聚类的方法

xiaoxiao2020-10-23  20

一种基于自动编码机实现数据增量聚类的方法
【技术领域】
[0001] 本发明涉及计算机技术领域,具体涉及一种基于自动编码机实现数据增量聚类方 法。
【背景技术】
[0002] 随着信息技术的兴起和发展,数据量增长迅速,需要更多的空间来存储数据。由于 存储空间的限制,提出了增量聚类的方法,使得所有的数据不需要全部存储到内存中。
[0003] 近年来,国内外研宄者提出了很多增量聚类算法,主要分为两类:一类是将所有数 据进行迭代运算,这样得到的聚类结果精度高,但是没有利用上一次的聚类结果,造成资源 浪费;另一类是将新增样本划到离它最近的簇中,这样能够充分利用上一次的聚类结果,不 需要对所有数据重新聚类,提高了效率,但是该类方法泛化能力弱。
[0004] 1998年,MEster等人首先提出增量聚类的概念,提出基于DBSCAN的增量聚类算 法,由于DBSCAN算法是基于密度的聚类算法,当插入一个新的样本时,只会影响与该样本 距离相近的簇,因此使得它的增量聚类结果与非增量聚类结果相似,但是由于该方法每次 只能处理一个样本,因此存在效率很低的问题。针对这个问题,2004年黄永平等人提出了基 于密度的批量增量聚类算法,克服了一个一个处理数据的缺点,但是该方法计算量过大,不 能用于大数据集。
[0005] 2011年吴佳等人提出了改进的模糊c均值的增量聚类算法,首先对模糊c均值算 法进行加权,并将权系数归一化,并将该方法与增量式算法结合,实现增量式聚类,避免了 重复计算,并且不受孤立点影响。郑宏亮等人提出了基于Mahalanobis距离的增量聚类算 法,该算法将模糊c均值聚类中的欧式聚类用Mahalanobis距离替代,提出一种基于马氏 距离的增量聚类学习算法,该方法解决了模糊c均值聚类对非球形或椭球型分布的数据集 聚类效果差的缺陷,提高了聚类精度。2012年孟凡荣等人提出了一种基于代表点的增量聚 类算法,根据代表点与已存代表点之间的关系来判断是否将其添加到已存代表点所属的簇 中,或提升为新的代表点,该方法对参数敏感性低、效率高、占用空间小。2014年Lei1eiSun 等人提出了两种基于AP聚类算法的增量聚类算法,分别基于K-中心点和最临近距离分配 的增量AP聚类算法,这两种增量聚类算法能够取得较好的聚类效果,并且时间消耗更低。 这些增量聚类方法不能够学习数据样本的特征,进行低维特征整合。本文提出的方法,属于 第二类方法,但是与原有方法不同的是,首先利用自动编码机学习数据集样本的特征,进行 低维特征整合,这样能够提高聚类效果,并且重新定义了样本加入已有簇的策略,采用一遍 式读取数据样本和动态更新簇中心点,对样本进行增量聚类,使得我们的方法时间消耗低 并且能够识别离群点。

【发明内容】

[0006] 基于传统的增量聚类方法不能学习数据样本的特征,进行低维特征整合,本发明 提供了一种基于自动编码机实现数据增量聚类的方法,基于自动编码机组合数据的低层特 征形成更加抽象的高层特征,既能够学习数据样本的特征,也能够对数据样本进行特征整 合从而对数据集样本进行压缩和降维。
[0007] 本发明提供了一种基于自动编码机实现数据增量聚类的方法,包括如下步骤:
[0008] 对新增数据集进行归一化预处理;
[0009] 利用数据集对自动编码机进行训练,根据前向传播和反向传导的方法,调整自动 编码机的权重;
[0010] 数据集通过自动编码机,根据训练得到的权重,得到数据集的一种新的高层特征 表示形式;
[0011] 对新生成的数据集中的每条样本逐条进行聚类,使得每条样本都聚到合适的类 中。
[0012] 所述对新增数据集进行归一化预处理具体为:
[0013] 对新增数据集中样本的每个属性,分别选取每个属性的最大值和最小值,之后对 于每个样本的每个属性值,(每个属性值-对应最小值)八对应最大值-对应最小值),得 到的值即为对应属性的新值,进行归一化的目的是使得样本的每个属性的重要性能够在同 等条件下进行比较。
[0014] 所述根据前向传播和反向传导的方法调整自动编码机的权重具体为:
[0015] 如果该数据集为首个到达的数据集,则随机为自动编码机指定权重,否则自动编 码机的权重为上一个数据集训练后得到的权重。新到达的数据集在该权重的基础上,通过 前向传播得到新的数据集,通过反向传导的方法使得重构数据集与原数据集的误差最小来 调整自动编码机的权重。
[0016] 所述数据集通过自动编码机,根据训练得到的权重,得到数据集的一种新的高层 特征表示形式具体为:
[0017] 新增数据集重新进入自动编码机,并根据此前训练得到的权重,进行前向传播,组 合低层特征,得到该数据集的一种更加抽象的高层表示形式。
[0018] 所述对新生成的数据集中的每条样本逐条进行聚类,使得每条样本都聚到合适的 类中具体为:
[0019] 判断样本到达的顺序,如果为前k个到达的样本,则自动定义为k个簇心,从第k+1 个样本开始,计算样本与簇心之间的距离;
[0020] 如果样本与簇心直接的最小距离〉簇心之间的最大距离,则该样本单独为一个 簇;
[0021] 如果样本与簇心之间的最小距离〈簇心之间的最小距离,则该样本进入距离其最 近的簇中;
[0022] 如果样本与簇心之间的最小距离〉簇心之间的最小距离,则距离最近的两个簇合 并为一个簇,样本独立为一个簇。
[0023] 在本发明提供了基于自动编码机实现数据增量聚类的方法,该方案针对数据样本 具有丰富的低层特征,构建自动编码机组合低层形成更加抽象的高层表示特征,以发现数 据的分布式特征,对数据进行降维和压缩,进而对样本进行增量式聚类,能够有效的提高增 量聚类效果。
【附图说明】
[0024] 图1是本发明实施例中的基于自动编码机实现增量聚类的方法流程图;
[0025] 图2是本发明实施例中的自动编码机结构原理示意图;
[0026] 图3是本发明实施例中的两层叠加自动编码机结构原理示意图;
【具体实施方式】
[0027] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它 实施例,都属于本发明保护的范围。
[0028] 图1示出了本发明实施例中的基于深度学习实现数据增量聚类的方法流程图,包 括如下步骤:
[0029] S101、对新增数据集进行归一化预处理;
[0030] 设整个数据集为U,且U= {up%,........un},U中每个对象由m个属性组成{ai, a2,......,aj,max(i),min(i)分别为属性i的最大值和最小值,则设对数据集进行归一化 得到的数据集为0, 0 ={op〇2,.......〇J,〇中第j个对象对应的第i个属性by,
[0032] 进行归一化的目的是使得样本的每个属性的重要性能够在同等条件下进行比较。
[0033] S102、利用数据集对自动编码机进行训练,根据前向传播和反向传导的方法,调整 自动编码机的权重;
[0034] 单个自动编码机的结构原理示意图如图2所示。自动编码机包括两个部分, 编码阶段和解码阶段。选用sigmoid函数作为激活函数。sigmoid函数的计算公式为
[0035] 编码阶段属于前向传播过程,对于样本X,假设x包含三个属性{Xl,x2,x3},则编码 阶段对应输出
[0037] 解码阶段属于反向传导过程,通过编码阶段得到的新属性{ai,a2}重构样本X,
[0038] 通过调整权重11^2^3馮 1'^2'^3',偏置项131、132,使得代价函数||1'1|| 2 最小。
[0039] 当输入数据集中样本属性多于5个属性式,采用栈式自动编码机来对数据集进行 训练,栈式自动编码机的结构原理示意图如图3所示,上一层自动编码机得到的特征作为 下一层自动编码机的输入,采用逐层训练的方式对栈式自动编码机进行参数调整,使得整 体代价函数最小。当数据集为首个到达的数据集时,为自动编码机随机初始化权重;否则将 上一个数据集训练得到的权重以及偏置项作为此次自动编码机的初始权重和偏置项,对数 据集进行训练。
[0040] S103、新增数据集重新进入自动编码机,并根据此前训练得到的权重,进行前向传 播,组合低层特征,得到该数据集的一种更加抽象的高层表示形式;
[0041] 在S102得到的最终权重W,偏置项bl以及数据集作为输入,通过公式
[0042]
-得到数据集的抽象压缩表示。其中
[0043] z=
[0044] S104、对新生成的数据集 中的每条样本逐条进行聚类,使得每条样本都聚到合适 的类中。
[0045] 经过自动编码机的数据集是原数据集的一种更加抽象压缩的表示形式,能够更加 体现数据集样本的分布式特征。对生成的数据集中每个样本进行逐条聚类。首先定义一个 临近度矩阵proximity_matrix,用来存储每个簇心之间的距离,定义一个集合u用来存储 每个簇的簇心。
[0046] 对于前k个到达的样本,将该k个样本自动定义为k个初始的簇心,并将其存储在 u中,通过公式
计算各个簇心之间的距离并存储在proximity_ matrix中。
[0047] 从第k+1个样本开始,通过公式
计算样本与簇心之间 的距离,得到样本到达簇心的最小距离dk;通过临近度矩阵proximityjnatrix得到簇心之 间的最大距离max(dxy)以及簇心之间的最小距离min(dij);
[0048]如果dk>max(dxy),则该样本单独为一个簇;更新临近度矩阵proximity_matrix和 簇心集合u;
[0049]如果dk〈min(dj;,则该样本加入到簇k中,通过公式
(mk表示簇k中 样本数量,P表示簇k中的样本)更新簇心;更新临近度矩阵proximity_matrix;
[0050] 如果dk>min(dij),则簇i和簇j合并为一个新簇,新到样本独立为一个簇。更新簇 心和临近度矩阵proximity_matrix〇
[0051] 对于数据集中的每个样本都进行如上处理,使得每个样本都能到达合适的簇中。
[0052] 结合本发明的方案,进行实验分析如下:
[0053] 为了验证本文提出的算法(ANIC)的有效性,采用UCI中的四个数据集Iris、pima、 Balance-scale和Wine来验证算法的准确性,共进行两种类型的实验。
[0054] 本文使用纯度来衡量算法的聚类效果。纯度的定义为簇包含单个类的对象的程 度。簇i的纯度的计算公式为:
[0056] (其中mi是簇i中对象个数,mij是簇i中类j的对象个数。)
[0057] 聚类的总纯度的计算公式为
(m为样本总数)。
[0058] 纯度越高说明算法的聚类效果越好。此外,通过比较聚类的时间消耗来评价算法 的性能。
[0059] 实验1 :将整个数据集作为一个整体进行聚类,并将其与Kmeans和FCM进行比较; 实验结果如表1和表2所示。从表1可以看出,对于数据集Iris、pima和Balance-scale, 本文提出的算法的聚类纯度好于Kmeans和FCM算法,特别是对于Balance-scale数据集, 聚类纯度相对于另外两种算法提高20%左右。而对于数据集wine,本文提出算法的聚类纯 度高于Kmeans算法而低于FCM算法的聚类纯度3%,这说明对于这4个数据集,本文提出的 算法均能得到很好的聚类效果,具有更好的通用性。从表2可以看出,在对四个数据集进行 聚类时,本文算法的时间消耗整体低于FCM的时间消耗,而与Kmeans的时间消耗基本持平, 这是因为在对自动编码机进行训练时会消耗一定的时间,自动编码机会对样本属性进行压 缩,并且在聚类过程汇总只需要维护临近度矩阵,导致聚类时时间消耗降低,因此整体时间 消耗很低。
[0060] 表1.整体聚类结果:purity
[0063] 表2.整体聚类:平均时间消耗
[0064]
[0065] 实验2 :将一个数据集划分成多个数据集,进行增量聚类,并将其与FCM增量聚类 算法、IFCM增量聚类算法和基于马氏聚类的增量聚类算法进行比较。数据集进行划分时, Iris数据集随机划分为两个分别包含100个和50个样本的数据集,pima数据集随机划分 成两个分别包含384个样本的数据集,Balance-scale随机划分成5个分别包含125个样本 的数据集,Wine数据集随机划分成两个分别包含89个样本的数据集。实验结果如表3和 表4所示。从表3可以看出,对于数据集Iris和wine进行分批聚类时,得到的聚类的纯度 要高于采用FCM增量聚类算法和IFCM增量聚类算法。这说明本文提出的算法能够有效的 对分批数据集进行增量聚类。从表4可以看出,对于数据集Iris,Balance_scale和wine, 本文提出的算法进行增量聚类的聚类纯度高于基于马氏距离的FCM增量算法。其中对于数 据集Balance_scale、wine,本文提出算法进行聚类的纯度分别高于基于马氏距离的FCM增 量算法聚类纯度18. 5%和44. 4%,而对于数据集pima,本文提出算法进行聚类的纯度低于 基于马氏距离的FCM增量算法聚类纯度14. 1 %。这说明本文提出的算法相对于基于马氏距 离的FCM增量算法有更好的稳定性,并且对于多数数据集能够产生更好的聚类效果。
[0066] 表3.分批聚类结果:purity
[0068] 表4分批聚类结果:purity
[0069]
[0070] 综上,基于自动编码机实现增量聚类的方法,该方案针对数据样本具有丰富的低 层特征表示,构建栈式自动编码机组合数据集的低层特征,得到数据集的高层特征表示,学 习到数据的样本特征,从而对数据集进行压缩和降维,能够有效提高聚类效果。
[0071] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存 储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
[0072] 以上对本发明实施例所提供的基于自动编码机实现增量聚类的方法进行了详细 介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明 只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本 发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应 理解为对本发明的限制。
【主权项】
1. 一种基于自动编码机实现数据增量聚类的方法,其特征包括如下步骤: (1) 对新增数据集进行归一化预处理 对新增数据集中样本的每个属性,分别选取每个属性的最大值和最小值,之后对于每 个样本的每个属性,每个属性-对应最小值/对应最大值-对应最小值,得到的值即为对应 属性的新值,进行归一化的目的是使得样本的每个属性的重要性能够在同等条件下进行比 较; (2) 利用数据集对自动编码机进行训练,根据前向传播和反向传导的方法,调整自动编 码机的权重;具体为: 如果该数据集为首个到达的数据集,则随机为自动编码机指定权重,否则自动编码机 的权重为上一个数据集训练后得到的权重;新到达的数据集在该权重的基础上,通过前向 传播得到新的数据集,通过反向传导的方法使得重构数据集与原数据集的误差最小来调整 自动编码机的权重; (3) 数据集通过自动编码机,根据训练得到的权重,得到数据集的一种新的高层特征表 示形式;具体为: 新增数据集重新进入自动编码机,并根据此前训练得到的权重,进行前向传播,组合低 层特征,得到该数据集的一种更加抽象的高层表示形式; (4) 对新生成的数据集中的每条样本逐条进行聚类,使得每条样本都聚到合适的类中; 具体为: 该数据集为首个到达的数据集,则该数据集的前k个样本自动定义为k个簇心,从第k+1个样本开始,计算样本与簇心之间的距离; 如果样本与簇心直接的最小距离〉簇心之间的最大距离,则该样本单独为一个簇; 如果样本与簇心之间的最小距离〈簇心之间的最小距离,则该样本进入距离其最近的 簇中; 如果样本与簇心之间的最小距离〉簇心之间的最小距离,则距离最近的两个簇合并为 一个簇,样本独立为一个簇。
【专利摘要】一种基于自动编码机实现数据增量聚类的方法,步骤如下:对新到达的数据集进行归一化处理,使数据集内每个样本的各个属性的重要性能够在同等条件下进行比较;利用新到达的数据集对自动编码机进行训练,采用前向传播以及反向传播算法不断调整权重;数据集通过自动编码机以及训练中得到的权重,得到一种新的数据集表示形式,自动编码机通过组合低层特征形成更加抽象的高层表示特征;对经过自动编码机的数据集中的样本进行逐个聚类,使得每个新到达的样本都能够加入到合适的类中。本发明通过自动编码机学习数据样本的特征,进行低维特征整合,得到数据样本的压缩表示形式,对数据集中的样本进行增量聚类,能够有效提高对数据集样本进行增量聚类效果。
【IPC分类】G06K9/62
【公开号】CN104899605
【申请号】CN201510337583
【发明人】陈志奎, 杨镇楠, 赵亮
【申请人】大连理工大学
【公开日】2015年9月9日
【申请日】2015年6月17日

最新回复(0)