本发明属于电数字数据处理的技术领域,特别涉及一种以机器学习和数据挖掘为基础的、引入辅助信息的子集分组半监督模糊聚类方法。
背景技术:
在很多领域的数据处理和分析问题中,需要使用聚类算法把一个数据集中的样本进行分组,使得相似的样本被分在同一个组,进而基于分组结果对整个数据集的内部结构进行快速浏览、分析和处理。
模糊聚类比起硬聚类的优势是借助模糊集理论引入模糊隶属度的概念,从而能够自然的描述类之间的重叠性。为了提高传统无监督聚类方法的准确度,利用少量监督信息的半监督聚类被提出。现有的半监督聚类方法绝大多数采用两两对象之间的约束这种形式来实现监督,使得涉及到“mustlink”约束的两个对象被分在同一个类,而“cannotlink”约束的两个对象分在不同的类。
然而,对包含n个对象的数据集,一共有n2个可能的两两关系,因此需要足够大的数目的约束才能达到满意的效果,在实际应用中,获得大量约束需要付出较大的人力劳动,且效率低下。
技术实现要素:
本发明解决的技术问题是,现有技术中,半监督聚类方法对包含n个对象的数据集,一共有n2个可能的两两关系,因此需要足够大的数目的约束才能达到满意的效果,在实际应用中,获得大量约束需要付出较大的人力劳动,且效率低下的问题,进而提供了一种优化的子集分组半监督模糊聚类方法。
本发明所采用的技术方案是,一种子集分组半监督模糊聚类方法,所述方法包括以下步骤:
步骤1.1:收集用户对待分组数据集的若干子集的分组结果,由此得到所述待分组数据集中每个对象xi的近邻集
步骤1.2:利用近邻集
步骤1.3:输入矩阵x,利用矩阵w构建目标函数,设定k为最终得到的类的数目,k>1,计算得到聚类矩阵u,并输出。
优选地,所述步骤1.1中,所述近邻集
步骤1.1.1:对任一待分组样本子集s,将s分为k个组c1,c2,...ck,所述k个组满足c1uc2...uck=s,
步骤1.1.2:令xi∈cf,cf为第f个类,得到xi的近邻集合n=cf\xi和k-1个远邻集合{cr},r=1,2,...k且r≠f;
步骤1.1.3:统计所有样本子集,xi出现在ti个样本子集中,则对第t个样本子集,得到xi的近邻集
优选地,所述步骤1.2中,
优选地,所述步骤1.3的聚类方法为:
步骤1.3.1:设定最大循环次数a;当前次数m=1;
步骤1.3.2:产生u的初始值;
步骤1.3.3:基于当前的u,设置约束目标函数minj=jd-βjc,其中,
步骤1.3.4:对于每个δc,c=1,2,...k,当待分组集合为低维数据时,计算
步骤1.3.5:对每个c=1,2,...k,计算没有监督信息情况下的
步骤1.3.6:计算
步骤1.3.7:将uic中小于0的元素置为0并归一化,
步骤1.3.8:当m等于a或第m次的u和第m-1次的u差值小于ε时,结束,否则重复步骤1.3.4。
优选地,所述步骤1.3.2中,u的每个元素为随机非负值。
优选地,所述步骤1.3.2中,u的每个元素为基于k-means的结果,当xi被分在第f个类时,u的元素uif=1,u的其他元素为0.1。
优选地,所述步骤1.3.4中,将xi归一化为单位长度,||xi||=1。
优选地,所述步骤1.3.6中,
优选地,所述步骤1.3.8中,第m次的u和第m-1次的u差值以矩阵的f范数衡量,||um-um-1||f≤ε时,结束。
优选地,基于输出的u矩阵得到每个样本点的标签。
本发明提供了一种优化的子集分组半监督模糊聚类方法,通过收集用户对多个不同子集的分组结果,获取一定数目的子集分组信息作为对聚类的指导,基于这些结果得到子集中的对象的近邻集和远邻集,通过在模糊聚类的目标函数中加入惩罚项的方式实现子集中各个对象的类与其近邻集中对象的类别相近,而与其远邻集中对象的类别不同,完成聚类。本发明基于对象之间的两两关系,使得模糊聚类的时候不仅考虑分解误差,还同时考虑没有监督信息的情况和加入子集分组监督信息的情况,使得矩阵分解的时候不仅考虑分解误差,还同时考虑缩小子集中对象的分组和其近邻集中对象的分组的差别以及增大与远邻集中对象分组的差别,不需要过大的数目的约束就能达到满意的效果,在实际应用中聚类迅速,效率高,人工成本低。
具体实施方式
下面结合实施例对本发明做进一步的详细描述,但本发明的保护范围并不限于此。
本发明涉及一种子集分组半监督模糊聚类方法,所述方法包括以下步骤。
步骤1.1:收集用户对待分组数据集的若干子集的分组结果,由此得到所述待分组数据集中每个对象xi的近邻集
所述步骤1.1中,所述近邻集
步骤1.1.1:对任一待分组样本子集s,将s分为k个组c1,c2,...ck,所述k个组满足c1uc2...uck=s,
本发明中,即k个组c1,c2,...ck两两之间互不交叉。
步骤1.1.2:令xi∈cf,cf为第f个类,得到xi的近邻集合n=cf\xi和k-1个远邻集合{cr},r=1,2,...k且r≠f。
步骤1.1.3:统计所有样本子集,xi出现在ti个样本子集中,则对第t个样本子集,得到xi的近邻集
本发明中,处理所有子集分组后,得到所有子集中对象的近邻集和远邻集。
步骤1.2:利用近邻集
所述步骤1.2中,
本发明中,wij为基于前一步分组结果得到的对象之间的关系权重。
步骤1.3:输入矩阵x,利用矩阵w构建目标函数,设定k为最终得到的类的数目,k>1,计算得到聚类矩阵u,并输出。
本发明中,一般情况下,k远大于1且远小于数据集中对象的总数。
所述步骤1.3的聚类方法为:
步骤1.3.1:设定最大循环次数a;当前次数m=1;
步骤1.3.2:随机产生u的初始值;
所述步骤1.3.1中,u的每个元素为随机非负值。
所述步骤1.3.1中,u的每个元素为基于k-means的结果,当xi被分在第f个类时,u的元素uif=1,u的其他元素为0.1。
本发明中,u选择上述两种方式中的任意一种。
步骤1.3.3:基于当前的u,设置约束目标函数minj=jd-βjc,其中,
本发明中,jd为控制聚类的逐项,用于衡量每个类中的对象到其所属的类的距离和,jc为惩罚项。
本发明中,最大化jc要求每个对象与其近邻的分组尽可能接近,具体来说,即是每个对象的类的隶属度向量与各近邻隶属度向量的均值的欧式距离,每个对象与其每个远邻中的对象的分组尽可能不同,具体描述为每个对象到每个远邻中的对象的隶属度向量的均值的欧式距离。
步骤1.3.4:对于每个δc,c=1,2,...k,当待分组集合为低维数据时,计算
所述步骤1.3.4中,将xi归一化为单位长度,||xi||=1。
本发明中,一般来说,对于低维数据可以采用欧式距离,即
步骤1.3.5:对每个c=1,2,...k,计算没有监督信息情况下的
步骤1.3.6:计算
所述步骤1.3.6中,
步骤1.3.7:将uic中小于0的元素置为0并归一化,
步骤1.3.8:当m等于a或第m次的u和第m-1次的u差值小于ε时,结束,否则重复步骤1.3.4。
所述步骤1.3.8中,第m次的u和第m-1次的u差值以矩阵的f范数衡量,||um-um-1||f≤ε时,结束。
本发明中,循环结束的条件包括次数到达限定值或矩阵迭代差值小于限定值。
本发明中,第m次的矩阵u和第m-1次的矩阵u差值小于ε,主要采用矩阵的f-范数来衡量差别大小,即||um-um-1||f≤ε。
本发明中,ε的值可以由本领域技术人员自行设置。
本发明中,即是采用拉格朗日方法求解,得到uic和δc的迭代结果。
基于输出的u矩阵得到每个样本点的标签。
本发明中,把每个样本标签分配给对应的u值最大的类。
本发明中,给出一个实施例,从cora数据集中抽取本文数据集,包含1246篇英文文献的摘要,涉及4个关羽操作系统的不同主题,经过预处理后,剩下6737个单词。s取6和8,分别重复分组500次和300次,随机产生500个包含6个文档的子集和300个包含8个文档的子集。设k为4,对于s为8的情况,令β为7,对于s为6的情况,令β为10。ε=10-3。最终的聚类结果如表1所示,本发明的聚类准确率显然高于其他聚类方法。
表1:不同方法对cora数据聚类结果
本发明解决了现有技术中,半监督聚类方法对包含n个对象的数据集,一共有n2个可能的两两关系,因此需要足够大的数目的约束才能达到满意的效果,在实际应用中,获得大量约束需要付出较大的人力劳动,且效率低下的问题,通过收集用户对多个不同子集的分组结果,获取一定数目的子集分组信息作为对聚类的指导,基于这些结果得到子集中的对象的近邻集和远邻集,通过收集用户对多个不同子集的分组结果,获取一定数目的子集分组信息作为对聚类的指导,基于这些结果得到子集中的对象的近邻集和远邻集,通过在模糊聚类的目标函数中加入惩罚项的方式实现子集中各个对象的类与其近邻集中对象的类别相近,而与其远邻集中对象的类别不同,完成聚类。本发明基于对象之间的两两关系,使得模糊聚类的时候不仅考虑分解误差,还同时考虑没有监督信息的情况和加入子集分组监督信息的情况,使得矩阵分解的时候不仅考虑分解误差,还同时考虑缩小子集中对象的分组和其近邻集中对象的分组的差别以及增大与远邻集中对象分组的差别,不需要过大的数目的约束就能达到满意的效果,在实际应用中聚类迅速,效率高,人工成本低。