CN104899232B - 协同聚类的方法和设备 - Google Patents

协同聚类的方法和设备 Download PDF

Info

Publication number
CN104899232B
CN104899232B CN201410084478.7A CN201410084478A CN104899232B CN 104899232 B CN104899232 B CN 104899232B CN 201410084478 A CN201410084478 A CN 201410084478A CN 104899232 B CN104899232 B CN 104899232B
Authority
CN
China
Prior art keywords
row
column
cluster
class cluster
weight
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410084478.7A
Other languages
English (en)
Other versions
CN104899232A (zh
Inventor
肖龙飞
陈小军
王书强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410084478.7A priority Critical patent/CN104899232B/zh
Publication of CN104899232A publication Critical patent/CN104899232A/zh
Application granted granted Critical
Publication of CN104899232B publication Critical patent/CN104899232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明实施例提供了一种协同聚类的方法和装置,该方法包括:迭代执行下列过程,以对待聚类的数据进行协同聚类:根据上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过程得到的类簇中心的值,将待聚类的数据的每个元素划分到至少一个类簇中;根据待聚类的数据的每个元素的类簇的划分结果和待聚类的数据的每个元素的权重,更新待聚类的数据的类簇中心的值;根据更新后的待聚类的数据的类簇中心的值,更新待聚类的数据的每个元素的权重,其中,类簇中距离所述类簇的中心越远的元素的权重越小。本发明实施例的协同聚类的方法,能够降低噪声数据对聚类的影响,提高聚类效果。

Description

协同聚类的方法和设备
技术领域
本发明涉及数据处理领域,特别涉及一种协同聚类的方法和设备。
背景技术
协同聚类(Co-clustering)在文本挖掘、基因表达数据分析、协同过滤、推荐系统和矩阵近似等领域中有广泛的应用。协同聚类是一种对二维数据矩阵的行和列两个方向同时进行聚类的一类算法。聚类是根据数据集中数据的不同特征,将数据划分为不同的簇(Cluster),使得同一簇的个体之间的距离尽可能小(或相似度尽可能高),不同簇的个体问的距离尽可能大(或相似度尽可以低)。上述数据可以是不同用户针对不同项目或物品产生的用户行为数据,可以由二维矩阵来表示。在行方向上进行聚类时,依据不同行与行类簇的相似性,将行聚成至少一个行类簇,例如,聚成K个行类簇;在列方向上进行聚类时,依据不同列与列类簇的相似性,将列聚成至少一个列类簇,例如,聚成L个列类簇。这样,协同聚类可以将无序的数据矩阵划分成K*L个有序的聚类块。
现有聚类算法采取行划分和列划分交替进行,通过迭代优化,求解一个最优化问题,当算法收敛到最优化问题的目标函数的极小值时,停止迭代,完成聚类。上述数据可能会包含噪声数据,例如,用户的误操作产生的数据,这些噪声数据会影响聚类的准确性。现有聚类算法在进行数据处理时对噪声数据和有用数据作相同的处理,没有考虑噪声数据对聚类效果的影响。因此,现有技术无法降低噪声数据对聚类的影响,聚类效果差。
发明内容
本发明实施例提供一种协同聚类的方法和设备,能够降低噪声数据对聚类的影响,提高聚类效果。
第一方面,本发明实施例提供了一种协同聚类的方法,包括:迭代执行下列过程,以对待聚类的数据进行协同聚类:根据上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过程得到的类簇中心的值,将待聚类的数据的每个元素划分到至少一个类簇中;根据待聚类的数据的每个元素的类簇的划分结果和待聚类的数据的每个元素的权重,更新待聚类的数据的类簇中心的值;根据更新后的待聚类的数据的类簇中心的值,更新待聚类的数据的每个元素的权重,其中,类簇中距离类簇的中心越远的元素的权重越小。
结合第一方面,在第一种可能的实现方式中,该方法还包括:确定待聚类的数据,该数据为N行、M列的二维矩阵,该二维矩阵包括N*M个元素,其中,根据上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过程得到的类簇中心的值,将待聚类的数据的每个元素划分到至少一个类簇中,包括:根据上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个列类簇中,其中,所述根据待聚类的数据的每个元素的类簇的划分结果和待聚类的数据的每个元素的权重,更新待聚类的数据的类簇中心的值,包括:根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对每个聚类块的元素进行加权平均,得到每个聚类块的中心的值,其中根据更新后的待聚类的数据的类簇中心的值,更新待聚类的数据的每个元素的权重,包括:根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块的中心的值,得到二维矩阵的每行元素的行权重和每列元素的列权重,其中聚类块中距离所述聚类块的中心越远的元素行权重和列权重越小。
结合第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,根据上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个列类簇中,包括:确定N行元素中的每行M个元素与至少一个行类簇中的每个行类簇中的对应聚类块的中心的加权距离之和,得到至少一个行类簇对应的至少一个第一加权距离之和;将二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中;确定M列元素中的每列N个元素与至少一个列类簇中的每个列类簇中的对应聚类块的中心的加权距离之和,得到至少一个列类簇对应的至少一个第二加权距离之和;将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中。
结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,将二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中包括:根据以下公式将二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中:
其中,
其中,i=1,2,...,M,j=1,2,...,N,ui,g=1表示第i行的元素属于第g行类簇,ui,s=0表示第i行元素不属于第s行类簇,K为至少一个行类簇的个数,L为至少一个列类簇的个数,g=1,2,...,K,s=1,2,...,K,J(s)表示第i行元素与第s个行类簇所对应的第一加权距离之和,J(g)表示第i行元素与第g个行类簇所对应的第一加权距离之和,J(g)为至少一个第一加权距离之和中的最小值,表示上次迭代中第j列的元素属于第h个列类簇,表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第j列元素中属于第s行类簇的元素的列权重,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心的值,为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值,其中,将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中,包括:根据以下公式确定将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中:
其中,
其中,vj,h=1表示第该j列的元素属于第h列类簇,vj,t=0表示该第j列不属于第t列类簇,h=1,2,...,L,t=1,2,...,L,J′(h)表示第j列元素与第h个列类簇所对应的第二加权距离之和,J′(t)表示第j列元素与第t个列类簇所对应的第二加权距离之和,表示上次迭代中第i行的元素属于第g个行类簇,表示上次迭代中第i行的元素不属于第g个行类簇,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
结合第一方面第一至第三种可能的实现方式中的任一种可能的实现方式,在第一方面第四种可能的实现方式中,根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对每个聚类块的元素进行加权平均,得到每个聚类块的中心的值,包括:计算至少一个行类簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值;将加权平均值作为每个聚类块的中心的值。
结合第一方面第四种可能的实现方式,在第一方面第五种可能的实现方式中,计算至少一个行类簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值,包括:根据以下公式计算至少一个行类簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值:
其中,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,xi,j表示第i行与第j列所对应元素,表示上次迭代中第j列元素中属于第g个行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
结合第一方面第一至第四种可能的实现方式中的任一种可能的实现方式,在第一方面第六种可能的实现方式中,根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块的中心的值,得到二维矩阵的每行元素的行权重和每列元素的列权重,包括:确定二维矩阵的每行元素的行权重,使得行权重与每行元素与每行元素所属聚类块的中心的距离成反相关;确定二维矩阵的每列元素的列权重,使得列权重与每列元素与每列元素所属聚类块的中心的距离成反相关。
结合第一方面第六种可能的实现方式,在第一方面第七种可能的实现方式中,确定二维矩阵的每行元素的行权重,包括:根据以下公式计算二维矩阵的每行元素的行权重:
其中,
其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,表示上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值,i′=1,2,...,M,确定二维矩阵的每列元素的列权重,包括:根据以下公式计算二维矩阵的每列元素的列权重:
其中,
其中,cg,j表示第j列元素中属于第g行类簇的元素的列权重,j′=1,2,...,N。
结合第一方面第一至第七种可能的实现方式中的任一种可能的实现方式,在第一方面第八种可能的实现方式中,在迭代过程中的首次迭代过程之前,该方法还包括:确定二维矩阵的N*M个元素的行权重和列权重的初始值;在行方向上将N行元素划分到至少一个初始行类簇中,在列方向将N列元素划分到至少一个初始列类簇中;根据至少一个初始行类簇的划分结果、至少一个初始列类簇的划分结果以及至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,得到至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值,其中,在首次迭代过程中,上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重分别为至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,上次迭代过程得到的聚类块的中心的值为至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。
结合第一方面第一至第八种可能的实现方式中的任一种可能的实现方式,在第一方面第九种可能的实现方式中,该方法还包括:在两次迭代的至少一个行类簇的划分结果和至少一个列类簇的划分结果相同时,停止迭代过程;或者,在两次迭代的目标函数的值的变化小于设定的阈值时,停止迭代过程,其中目标函数用于求解二维矩阵的最优化问题。
结合第一方面第九种可能的实现方式,在第一方面第十种可能的实现方式中,目标函数为:
目标函数的限制条件为:
其中,K为至少一个行类簇的个数,L为至少一个列类簇的个数,U为大小为N*K的行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列属于哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的中心值,R为大小为L*N的矩阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,λ为参数,用来调整行权重的分布,η为参数,用来约束列权重的分布。
结合第一方面第一至第十种可能的实现方式中的任一种可能的实现方式,在第一方面第十一种可能的实现方式中,该方法还包括:将二维矩阵的每个元素所对应的行权重按照至少一个行类簇的划分结果重排列,将二维矩阵的每个元素所对应的列权重按照至少一个列类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少一个列类簇的划分结果;和/或,将二维矩阵的每个元素按照行至少一个行类簇的划分结果重排列,将二维矩阵的每个元素按照至少一个行类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少一个列类簇的划分结果。
第二方面,本发明实施例提供了一种协同聚类的设备,包括:划分单元,用于根据上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过程得到的类簇中心的值,将待聚类的数据的每个元素划分到至少一个类簇中;第一计算单元,用于根据待聚类的数据的每个元素的类簇的划分结果和待聚类的数据的每个元素的权重,更新待聚类的数据的类簇中心的值;第二计算单元,用于根据更新后的待聚类的数据的类簇中心的值,更新待聚类的数据的每个元素的权重,其中,类簇中距离所述类簇的中心越远的元素的权重越小。
结合第二方面,在第二方面第一种可能的实现方式中,该设备还包括确定单元,用于确定待聚类的数据,数据为N行、M列的二维矩阵,二维矩阵包括N*M个元素,其中,划分单元具体用于根据上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个列类簇中;第一计算单元具体用于根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对每个聚类块的元素进行加权平均,得到每个聚类块的中心的值;第二计算单元具体用于根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块的中心的值,得到二维矩阵的每行元素的行权重和每列元素的列权重,其中聚类块中距离聚类块的中心越远的元素行权重和列权重越小。
结合第二方面的第一种可能的实现方式,在第二方面第二种可能的实现方式中,划分单元包括:第一确定子单元,用于确定N行元素中的每行M个元素与至少一个行类簇中的每个行类簇中的对应聚类块的中心的加权距离之和,得到至少一个行类簇对应的至少一个第一加权距离之和;第一划分子单元,用于将二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中;第二确定子单元,用于确定M列元素中的每列N个元素与至少一个列类簇中的每个列类簇中的对应聚类块的中心的加权距离之和,得到至少一个列类簇对应的至少一个第二加权距离之和;第二划分子单元,用于将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中。
结合第二方面的第二种可能的实现方式,在第二方面第三种可能的实现方式中,第一划分子单元具体用于根据以下公式将二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中:
其中,
其中,i=1,2,...,M,j=1,2,...,N,ui,g=1表示第i行的元素属于第g行类簇,ui,s=0表示第i行元素不属于第s行类簇,K为至少一个行类簇的个数,L为至少一个列类簇的个数,g=1,2,...,K,s=1,2,...,K,J(s)表示第i行元素与第s个行类簇所对应的第一加权距离之和,J(g)表示第i行元素与第g个行类簇所对应的第一加权距离之和,J(g)为至少一个第一加权距离之和中的最小值,表示上次迭代中第j列的元素属于第h个列类簇,表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第j列元素中属于第s行类簇的元素的列权重,Egj表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心的值,为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值;第二划分子单元具体用于根据以下公式确定将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中:
其中,
其中,vj,h=1表示第该j列的元素属于第h列类簇,vj,h=0表示该第j列不属于第t列类簇,h=1,2,...,L,t=1,2,...,L,J′(h)表示第j列元素与第h个列类簇所对应的第二加权距离之和,J′(t)表示第j列元素与第t个列类簇所对应的第二加权距离之和,表示上次迭代中第i行的元素属于第g个行类簇,表示上次迭代中第i行的元素不属于第g个行类簇,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
结合第二方面的第一至第三种可能的实现方式中的任一种可能的实现方式,在第二方面第四种可能的实现方式中,第一计算单元包括:计算子单元,用于计算至少一个行类簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值;确定子单元,用于将加权平均值作为每个聚类块的中心的值。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,计算子单元具体用于根据以下公式计算至少一个行类簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值:
其中,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,xi,j表示第i行与第j列所对应元素,表示上次迭代中第j列元素中属于第g个行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
结合第二方面的第一至第五种可能的实现方式中的任一种可能的实现方式,在第二方面第六种可能的实现方式中,第二计算单元包括:第三确定子单元,用于确定二维矩阵的每行元素的行权重,使得行权重与每行元素与每行元素所属聚类块的中心的距离成反相关;第四确定子单元,用于确定二维矩阵的每列元素的列权重,使得列权重与每列元素与每列元素所属聚类块的中心的距离成反相关。
结合第二方面的第六种可能的实现方式,在第二方面第七种可能的实现方式中,第三确定子单元具体用于根据以下公式计算二维矩阵的每行元素的行权重:
其中,
其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,表示上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值,i′=1,2,...,M,第四确定子单元具体用于根据以下公式计算二维矩阵的每列元素的列权重:
其中,
其中,cg,j表示第j列元素中属于第g行类簇的元素的列权重,j′=1,2,...,N。
结合第二方面的第一至第七种可能的实现方式中的任一种可能的实现方式,在第二方面第八种可能的实现方式中,该设备还包括:初始单元,用于确定二维矩阵的N*M个元素的行权重和列权重的初始值;初始单元还用于在行方向上将N行元素划分到至少一个初始行类簇中,在列方向将N列元素划分到至少一个初始列类簇中;初始单元还用于根据至少一个初始行类簇的划分结果、至少一个初始列类簇的划分结果以及至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,得到至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值,其中,在首次迭代过程中,上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重分别为至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,上次迭代过程得到的聚类块的中心的值为至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。
结合第二方面的第一至第八种可能的实现方式中的任一种可能的实现方式,在第二方面第九种可能的实现方式中,该设备还包括;停止单元,用于在两次迭代的至少一个行类簇的划分结果和至少一个列类簇的划分结果相同时,停止迭代过程;或者,停止单元用于在两次迭代的目标函数的值的变化小于设定的阈值时,停止迭代过程,其中目标函数用于求解二维矩阵的最优化问题。
结合第二方面的第九种可能的实现方式,在第二方面第十种可能的实现方式中,目标函数为;
目标函数的限制条件为:
其中,K为至少一个行类簇的个数,L为至少一个列类簇的个数,U为大小为N*K的行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列属于哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的中心值,R为大小为L*N的矩阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,λ为参数,用来调整行权重的分布,η为参数,用来约束列权重的分布。
结合第二方面的第一至第十种可能的实现方式中的任一种可能的实现方式,在第二方面第十一种可能的实现方式中,该设备还包括:重排单元,用于将二维矩阵的每个元素所对应的行权重按照至少一个行类簇的划分结果重排列,将二维矩阵的每个元素所对应的列权重按照至少一个列类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少一个列类簇的划分结果;和/或,重排单元用于将二维矩阵的每个元素按照行至少一个行类簇的划分结果重排列,将二维矩阵的每个元素按照至少一个行类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少一个列类簇的划分结果。
基于上述技术方案,在对待聚类的数据的元素进行聚类的过程中,自动更新元素的权重进行类簇的划分,由于类簇中距离类簇的中心越远的元素的权重越小,而通常噪声信息到类簇的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明一个实施例的协同聚类方法的示意性流程图。
图2是根据本发明另一实施例的协同聚类方法的示意性流程图。
图3是根据本发明再一实施例的协同聚类方法的示意性流程图。
图4是根据本发明一个实施例的协同聚类的设备示意框图。
图5是根据本发明另一实施例的协同聚类的设备示意框图。
图6是根据本发明再一实施例的协同聚类的设备示意框图。
图7是根据本发明再一实施例的协同聚类的设备示意框图。
图8是根据本发明再一实施例的协同聚类的设备示意框图。
图9是根据本发明再一实施例的协同聚类的设备示意框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1是根据本发明一个实施例的一种协同聚类方法的示意性流程图。如图1所示,该方法包括如下内容。
迭代执行下列过程,以对待聚类的数据进行协同聚类:
110,根据上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过程得到的类簇中心的值,将待聚类的数据的每个元素划分到至少一个类簇中。
120,根据待聚类的数据的每个元素的类簇的划分结果和待聚类的数据的每个元素的权重,更新待聚类的数据的类簇中心的值。
130,根据更新后的待聚类的数据的类簇中心的值,更新待聚类的数据的每个元素的权重,其中,类簇中距离所述类簇的中心越远的元素的权重越小。
因此,本发明实施例在对待聚类的数据的元素进行聚类的过程中,自动更新元素的权重进行类簇的划分,由于类簇中距离类簇的中心越远的元素的权重越小,而通常噪声信息到类簇的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
应理解,本发明实施例中的待聚类的数据可以为可转化为二维数据的多维数据,也可以为二维数据,对可转化为二维数据的多维数据聚类时可以先将该数据转化为二维数据之后再进行聚类。
应注意,对数据聚类时,本发明实施例可以在行方向和列方向同时协同聚类,还可以先固定一个方向,在另一个方向上采用本发明实施例的方法进行聚类,也就是说在一个方向上固定,在另一个方向上采用本发明迭代的方法在聚类时对数据采用不同的权重,能够有效地增大有效信息的权重,降低噪声信息的权重,过滤噪声信息,提高聚类效果。例如在行方向上固定,仅在列方向上采用本发明实施例的方法,或在列方向上固定,仅在行方向上采用本发明实施例的方法,本发明实施例并不对此做限定
应理解,步骤110中类簇中心的值可以为多个也可以为一个,当在一个方向上聚类时,本发明实施例中的类簇中心值为一个值。当在行方向和列方向同时聚类时,本发明实施例中的类簇中心值为多个值,具体地,在行方向和列方向同时聚类后将待聚类数据聚类成多个行类簇和多个列类簇,多个行类簇和多个列类簇交叉形成多个聚类块,每一个行类簇的类簇中心值包括对应于该行类簇的多个聚类块的聚类块的中心的值。每一个列类簇的类簇中心值包括对应于该列类簇的多个聚类块的聚类块的中心的值。
下面结合图2的实施例具体描述待聚类的数据为二维数据的情形。对于待聚类的数据为多维数据时,可以将该多维数据转化为二维数据,同样可以采用图2的实施例的方法,本发明实施例并不对此做限定。
图2是根据本发明一个实施例的一种协同聚类方法的示意性流程图。如图2所示,该方法包括如下内容。
210,确定待聚类的数据,数据为N行、M列的二维矩阵,二维矩阵包括N*M个元素。
换句话说,二维矩阵的元素的值可以表示不同用户对不同项目或对象的行为产生的数据,例如,不同观众对不同电影的评分,不同网络用户对不同网页的点击次数等等。
执行下列步骤220至240的迭代过程,以对待聚类的数据进行协同聚类。
220,根据上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个列类簇中。
例如,在每次迭代过程中,可以根据上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重以及上次迭代过程得到的至少一个行类簇和至少一个列类簇组成的聚类块的中心的值,确定所述每行元素到每个行类簇的聚类块的中心的加权距离和每列元素到每个列类簇的聚类块的中心的加权距离。在每次迭代过程中,可以根据每行元素到每个行类簇的聚类块的中心的加权距离,在行方向上将N行元素划分到至少一个行类簇中,并根据每列元素到每个列类簇的聚类块的中心的加权距离,在列方向将M列元素划分到至少一个列类簇中。
230,根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对每个聚类块的元素进行加权平均,得到每个聚类块的中心的值。
240,根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块的中心的值,得到二维矩阵的每行元素的行权重和每列元素的列权重,其中聚类块中距离聚类块的中心越远的元素行权重和列权重越小。
例如,聚类块中的元素的行权重和列权重与该元素到聚类块的中心的距离反相关或成反比。
具体地说,本发明实施例在聚类过程中首先设定二维矩阵的元素的初始的行权重和列权重以及行类簇和列类簇,之后进行多次迭代优化,对二维矩阵的行、列两个方向自动更新元素的行权重和列权重,并根据更新的行权重和列权重对二维矩阵的元素进行协同聚类获得更新的行类簇和列类簇,并计算最优化问题,在最优化问题的目标函数收敛时,停止迭代过程,获得最终的聚类结果。
根据本发明的实施例,在对二维矩阵的元素进行聚类的过程中,根据二维矩阵的元素的自动更新的权重进行行类簇和列类簇的划分,由于聚类块中距离聚类块的中心越远的元素行权重和列权重越小,而通常噪声信息到聚类块的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
应理解,本发明实施例中的出现的M、N、K和L均为正整数。
应理解,本发明实施例还可以通过设定一定的迭代次数,迭代完一定的迭代次数后停止迭代,通过多次迭代,能够有效地增大有效信息的权重,降低噪声信息的权重,过滤噪声信息,提高聚类效果。
应理解,本发明实施例中的聚类例如可以是对数据的元素添加标识,该标识指示数据的元素属于哪一个行类簇和哪一个列类簇,还应理解,本发明实施例中的行类簇的个数和列类簇的个数可以是不变的,与初始设定的行类簇和列类簇的个数相同,并且,每个行类簇包括至少一行,每个列类簇包括至少一列。
应理解,本发明实施例可以在行方向和列方向同时协同聚类,还可以先固定一个方向,在另一个方向上采用本发明实施例的方法进行聚类,也就是说在一个方向上固定,在另一个方向上采用本发明迭代的方法在聚类时对数据采用不同的权重,能够有效地增大有效信息的权重,降低噪声信息的权重,过滤噪声信息,提高聚类效果。例如在行方向上固定,仅在列方向上采用本发明实施例的方法,或在列方向上固定,仅在行方向上采用本发明实施例的方法,本发明实施例并不对此做限定。
可选地,作为另一实施例,步骤110中,待聚类的数据还可以为能够转化为二维矩阵的高维数据,例如,对于一组用户电影评分数据集来说,由于考虑用户的年龄,性别,所属地区等不同,此电影评分数据可以看为一个高维数据,这里可以仅考虑一个因素,例如,基于年龄或性别将此高维数据转换为二位数据,并利用本发明实施例方法来对电影评分数据集聚类。
应理解,本发明实施例中的数据为元素可以为连续值或可以当作连续值来进行处理的数据。
可选地,在步骤220,在行方向上将N行元素划分到至少一个行类簇中包括:确定N行元素中的每行M个元素与至少一个行类簇中的每个行类簇中的对应聚类块的中心的加权距离之和,得到所述至少一个行类簇对应的至少一个第一加权距离之和;将二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中。
换句话说,针对每行的M个元素中的每个元素,计算该元素与每个行类簇的多个聚类块中与该元素对应的聚类块的中心的加权距离,即计算该元素对应的加权距离时,将该元素乘以该元素的行权重和列权重,得到每行的M个元素相对于每个行类簇的M个加权距离,并且将每行的M个元素相对于每个行类簇的M个加权距离相加,得到每行的M个元素相对于每个行类簇的加权距离之和,其中加权距离之和的个数与行类簇的个数相同。针对每行的M个元素,找到多个行类簇对应的多个加权距离之和中的最小值,并将该行划分到与该最小值对应的行类簇中。
具体地,根据以下公式确定将二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中:
其中,
其中,i=1,2,...,M,j=1,2,...,N,ui,g=1表示第i行的元素属于第g行类簇,ui,s=0表示第i行元素不属于第s行类簇,K为至少一个行类簇的个数,L为至少一个列类簇的个数,g=1,2,...,K,s=1,2,...,K,J(s)表示第i行元素与第s个行类簇所对应的第一加权距离之和,J(g)表示第i行元素与第g个行类簇所对应的第一加权距离之和,J(g)为至少一个第一加权距离之和中的最小值,表示上次迭代中第j列的元素属于第h个列类簇,表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第j列元素中属于第s行类簇的元素的列权重,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心值,为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心值。
在步骤220中,在列方向将M列元素划分到至少一个列类簇中,包括:确定M列元素中的每列N个元素与至少一个列类簇中的每个列类簇中的对应聚类块的中心值的加权距离之和,得到至少一个列类簇对应的至少一个第二加权距离之和;将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中。
换句话说,针对每行的N个元素中的每个元素,计算该元素与每个列类簇的多个聚类块中与该元素对应的聚类块中心的加权距离,即计算该元素对应的加权距离时,将该元素乘以该元素的行权重和列权重,得到每列的N个元素相对于每个列类簇的N个加权距离,并且将每列的N个元素相对于每每个列类簇的N个加权距离相加,得到每列的N个元素相对于每个列类簇的加权距离之和,其中加权距离之和的个数与列类簇的个数相同。针对每列的N个元素,找到多个列类簇对应的多个加权距离之和中的最小值,并将该列划分到与该最小值对应的列类簇中。
具体地,根据以下公式确定将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中:
其中,
其中,vj,h=1表示第该j列的元素属于第h列类簇,vj,t=0表示该第j列不属于第t列类簇,h=1,2,...,L,t=1,2,...,L,J′(h)表示第j列元素与第h个列类簇所对应的第二加权距离之和,J′(t)表示第j列元素与第t个列类簇所对应的第二加权距离之和,表示上次迭代中第i行的元素属于第g个行类簇,表示上次迭代中第i行的元素不属于第g个行类簇,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
在步骤230,根据至少一个行类簇和至少一个列类簇的划分的结果以及二维矩阵的每行元素的行权重和每列元素的列权重,得到至少一个行类簇和至少一个列类簇组成的聚类块的中心值,包括:计算至少一个行类簇和所述至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值;将加权平均值作为聚类块的中心的值。
换句话说,依据划分的至少一个行类簇和至少一个列类簇,将得到多个聚类块,例如,待聚类的数据将至少一个行类簇的个数化为K,至少一个列类簇的个数化为L,则该K个行类簇和L个类簇将待聚类数据划分为K*L个聚类块,对于每一个聚类块根据所包含的元素及元素的行权重和列权重计算每个聚类块的中心值。也就是计算每一个聚类块中的元素在各自的行权重和列权重的基础上的平均值。即将聚类块中的元素在各自的行权重和列权重的基础上相加然后除以每一聚类块中的元素的个数所得到的值。
具体地,根据以下公式计算至少一个行类簇和所述至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的平均值:
其中,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,xi,j表示第i行与第j列所对应元素,表示上次迭代中第j列元素中属于第g个行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
在步骤240中,根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块的中心值,得到二维矩阵的每行元素的行权重和每列元素的列权重。换句话说,步骤140包括行权重的确定和列权重的确定,其中,行权重的确定包括:确定二维矩阵的每行元素的行权重,使得行权重与元素所属聚类块的中心值的距离成反相关。
换句话说,每行元素的行权重的大小与每个元素与所属聚类块中心的距离成反相关,也就是说距离越大行权重越小,距离越小行权重越大,通常情况下噪声数据离聚类块中心的距离相对较大,所以通过上述处理,能够有效降低噪声数据的权重,进而过滤噪声信息,得到好的聚类效果。
具体地,根据以下公式计算二维矩阵的每行元素的行权重:
其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,表示上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值,i′=1,2,...,M。
列权重的确定包括:确定二维矩阵的每列元素的列权重,使得列权重与元素所属聚类块的中心值的距离成反相关。
换句话说,每列元素的列权重的大小与每个元素与所属聚类块中心的距离成反相关,也就是说距离越大列权重越小,距离越小列权重越大,通常情况下噪声数据离聚类块中心的距离相对较大,所以通过上述处理,能够有效降低噪声数据的权重,进而过滤噪声信息,得到好的聚类效果。
具体地,确定二维矩阵的每列元素的列权重,包括:
根据以下公式计算二维矩阵的每列元素的列权重:
其中,cg,j表示第j列元素中属于第g行类簇的元素的列权重,j′=1,2,...,N。
可选地,作为另一实施例,在迭代过程中的首次迭代过程之前,还包括:确定二维矩阵的N*M个元素的行权重和列权重的初始值;在行方向上将N行元素划分到至少一个初始行类簇中,在列方向将N列元素划分到至少一个初始列类簇中;根据至少一个初始行类簇的划分结果、至少一个初始列类簇的划分结果以及至少一个初始行类簇和所述至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,得到至少一个初始行类簇和所述至少一个初始列类簇组成的聚类块中每个聚类块的中心的值,其中在首次迭代过程中,上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重分别为至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重;在首次迭代过程中,上次迭代过程得到的聚类块的中心的值为所述至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。
例如,给二维矩阵的元素设置相同的行权重和相同的列权重;并根据经验将行和列划分为若干个行类簇和列类簇,然后根据上述初始设定值计算每个聚类块的中心的初始值。
具体地,为每个元素的行权重设置相同的初始值,为每个元素的列权重设置相同的初始值,例如,在数据为N行M列的二维矩阵时,设置行权重的初始值为1/N,设置列权重的初始值为1/M。然后,将行随机的分配到行类簇中,将列随机的分配到列类簇中。行类簇的个数和列类簇的个数根据经验而定,例如,将二维矩阵的行分为K个行类簇,将二维矩阵的列分为L个列类簇。根据初始分割的行类簇和列类簇,得到多个聚类块,例如,K*L个聚类块,并根据初始行权重和列权重计算每个聚类块的中心的初始值。中心的初始值为加权平均值,也就是将每个聚类块中的元素在各自的行权重和列权重的基础上的平均值。也即将每个聚类块中的元素在各自的行权重和列权重的基础上相加然后除以该聚类块中的元素的个数。
可选地,作为另一实施例,本发明实施例方法还包括:在两次迭代的至少一个行类簇的划分结果和至少一个列类簇的划分结果相同时,停止迭代过程;或两次迭代的目标函数的值的变化小于设定的阈值时,停止迭代过程,其中目标函数用于求解二维矩阵的最优化问题。
换句话说,本发明实施例给通过多次迭代来自动调整权重的聚类方法,并提出了最优化问题,通过求解该最优化问题来确定是否停止迭代,当最优化问题的目标函数收敛时,即两次迭代的目标函数值变化小于预先设定的阈值,或两次迭代的至少一个行类簇的划分结果和至少一个列类簇的划分结果相同时,停止迭代。
具体地,本发明实施例的最优化问题的目标函数如下:
最优化问题的目标函数的限制条件为:
其中,J(U,V,Z,R,C)为目标函数,表示每个元素与所属聚类块中心的加权距离之和;表示行权重的熵;表示列权重的熵;1≤i≤N表示每一行属于哪一个行类簇,vj,h∈{0,1},1≤j≤M表示每一列属于哪一个列类簇,0<rh,i<1,1≤h≤L表示每个列类簇的N行元素的行权重之和为1,0<cg,j<1,1≤g≤K表示每个行类簇的M列的列权重之和为1;K为所述至少一个行类簇的个数,L为所述至少一个列类簇的个数,U为大小为N*K的行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列属于哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的均值,R为大小为L*N的矩阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,λ为参数,用来调整行权重的分布,η为参数,用来约束列权重的分布。
可选地,作为另一实施例,本发明实施例方法还包括:将二维矩阵的每个元素所对应的行权重按照至少一个行类簇的划分结果重排列,将二维矩阵的每个元素所对应的列权重按照元素至少一个列类簇的划分结果重排列;将二维矩阵的每个元素按照至少一个行类簇的划分结果重排列,将二维矩阵的每个元素按照至少一个列类簇的划分结果重排列;和/或者将二维矩阵的每个元素和每个元素所对应的行列权重按照至少一个行类簇的划分结果和至少一个列类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少一个列类簇的划分结果。
也就是说,可以按照至少一个行类簇的划分结果和至少一个列类簇的划分结果重新排列行权重和列权重、元素、或者元素及其行列权重,根据重排列的结果分析至少一个行类簇的划分结果和至少一个列类簇的划分结果。例如,在对列权重和行权重排列时,可以将不同的权重值设置不同的颜色,例如颜色深代表权重小,表示相应的数据的意义比较小或者不太重要,颜色浅代表权重大,表示相应的数据的意义比较大或比较重要;通过观察重排列后的权重图像,能够直观表现聚类结果,从而能够很好的对聚类效果分析。另外,通过将聚类结果可视化,能够发现聚类块内部的子空间结构,以便于进一步理解聚类结果。
图3是根据本发明另一实施例的一种协同聚类方法的示意性流程图,如图3所示,该方法包括:
301,读入待聚类的数据。
具体地,读入的待聚类的数据是二维矩阵,例如,该数据为N行M列的二维矩阵,或者是可以转化为二维矩阵的高维数据;该二维矩阵中的元素的值可以为连续值或可以当作连续值进行处理。例如,该二维矩阵的元素可以是不同用户对不同项目的行为产生的数据或用户对不同项目的偏好。例如,该数据可以通过用户的诸如评分、投票、转发、保存、书签、标记、评论、点击、页面停留时间、是否购买等行为产生。这些信息均可以数字化,并由一个二维矩阵来表示。
302,对待聚类的数据进行初始化设置。
换句话说,在首次迭代之前,需要为待聚类的数据设置初始权重值,例如,为二维矩阵的元素设置相同的行权重,和相同的列权重,并且可以根据经验将二维矩阵的行和列划分为若干个行类簇和列类簇。应理解,也可以将二维矩阵的行和列随机划分为若干个行类簇和列类簇。
然后,根据上述初始权重值计算每个聚类块的初始中心值。例如,可以为每个元素的行权重设置相同的初始值,并为每个元素的列权重设置相同的初始值。例如,在待聚类的数据为N行M列的二维矩阵的情况下,可以设置每个元素的行权重的初始值为1/N,每个元素的列权重的初始值为1/M。之后,根据经验或随机地将行划分到行类簇中并将列划分到列类簇中。行类簇的个数和列类簇的个数可以根据经验而定,例如,将行分为K个行类簇,将列分为L个列类簇。根据初始划分的行类簇和列类簇,得到由这些行类簇和列类簇组成的多个聚类块,每个聚类块属于一个行类簇和一个列类簇,例如K个行类簇和L个列类簇可以组成K*L个聚类块,并根据初始权重值计算每个聚类块的初始中心值。该初始中心值可以为每个元素的值的加权平均值,也就是将每个聚类块中的元素在各自的权重的基础上的平均值。也即将该聚类块中的元素在各自的权重的基础上相加然后除以该聚类块中的元素的个数。
下面执行步骤303至308的迭代过程,以对待聚类的数据进行协同聚类。
303,将待聚类的数据的每一行划分到与其加权距离最近的行类簇。
具体地,首先计算待聚类的数据的每一行与每个行类簇的加权距离,并且将每一行划分到与其加权距离最近的行类簇。例如,计算每一行中的每个元素与每一行类簇的多个聚类块中与该元素对应的聚类块的中心的距离,计算每一个距离时要乘以每个元素的行权重和列权重,将该行对应于每一个行类簇的多个距离相加,得到每行的M个元素相对于每个行类簇的加权距离值之和,其中加权距离值的个数与行类簇的个数相同,找到多个行类簇对应的多个加权距离之和中的最小值,将行划分到与加权距离最小的值相对应的行类簇中。例如,待聚类的数据的第p行与第q行类簇的加权距离可以按照如下方法计算:基于第p行中每个元素的行权重和列权重,计算第p行中的每个元素与该元素所在的列类簇和第q行类簇组成的聚类块的中心之间的欧氏距离,然后将所有欧式距离之和作为第p行与第q行类簇的加权距离。
具体地,可以根据以下公式确定将待聚类的数据的每一行划分到与其距离最近的行类簇中:
其中,
其中,i=1,2,...,M,j=1,2,...,N,ui,g=1表示第i行的元素属于第g行类簇,ui,s=0表示第i行元素不属于第s行类簇,K为所述至少一个行类簇的个数,L为所述至少一个列类簇的个数,g=1,2,...,K,s=1,2,...,K,J(s)表示第i行元素与第s个行类簇所对应的第一加权距离之和,J(g)表示第i行元素与第g个行类簇所对应的第一加权距离之和,J(g)为所述至少一个第一个加权距离之和中的最小值,表示上次迭代中第j列的元素属于第h个列类簇,表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第j列元素中属于第s行类簇的元素的列权重,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心值,为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心值。
具体地,本发明实施例中的步骤303,可参见图3中的步骤320,为避免重复,这里不再赘述。
304,将待聚类的数据的每一列划分到与其加权距离最近的列类簇。
具体地,首先计算待聚类的数据的每一列与每个列类簇的加权距离,并且将每一列划分到与其加权距离最近的列类簇。例如,计算每一列中的每个元素与每一列类簇的多个聚类块中与该元素对应的聚类块的中心的距离,计算每一个距离时要乘以每个元素的行权重和列权重,将该列对应于每一个列类簇的多个距离相加,得到每列的N个元素相对于每个列类簇的加权距离值之和,其中加权距离值的个数与列类簇的个数相同,找到多个行类簇对应的多个加权距离之和中的最小值,将列划分到与加权距离最小的值相对于的列类簇中。例如,待聚类的数据的第p列与第q列类簇的加权距离可以按照如下方法计算:基于第p列中每个元素的行权重和列权重,计算第p列中的每个元素与该元素所在的行类簇和第q列类簇组成的聚类块的中心之间的欧氏距离,然后将所有欧式距离之和作为第p列与第q列类簇的加权距离。
具体地,可以根据以下公式将待聚类的数据的每一列划分到与其距离最近的列类簇中:
其中,
其中,vj,h=1表示第该j列的元素属于第h列类簇,vj,t=0表示该第j列不属于第t列类簇,h=1,2,...,L,t=1,2,...,L,J′(h)表示第j列元素与第h个列类簇所对应的第二加权距离之和,J′(t)表示第j列元素与第t个列类簇所对应的第二加权距离之和,表示上次迭代中第i行的元素属于第g个行类簇,表示上次迭代中第i行的元素不属于第g个行类簇,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
具体地,本发明实施例中的步骤304,可参见图2中的步骤220,为避免重复,这里不再赘述。
305,计算聚类块的中心值。
具体地,根据本次迭代过程中得到的行类簇和列类簇的划分结果,和上次迭代过程中确定的行权重和列权重,计算由行类簇和列类簇的划分结果确定的多个聚类块的中心的值,也就是说,根据至少一个行类簇和至少一个列类簇的划分结果和二维矩阵的每个元素的行权重和列权重,得到至少一个行类簇和至少一个列类簇组成的聚类块的中心值。
例如,依据划分的行类簇和列类簇,得到多个聚类块,如为K*L个聚类块,根据每个聚类块中的元素的行权重和列权重计算每个聚类块的中心值。也就是将每一个聚类块中的元素在各自的权重的基础上的加权平均值,即将聚类块中的元素在各自的行权重和列权重的基础上相加然后除以每一聚类块中的元素的个数所得到的值。
具体地,可以根据以下公式计算计算聚类块的中心值:
其中,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,xi,j表示第i行与第j列所对应元素,表示上次迭代中第j列元素中属于第g个行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
具体地,本发明实施例中的步骤305,可参见图2中的步骤230,为避免重复,这里不再赘述。
306,计算行权重。
具体地,根据本次迭代的行类簇和列类簇的划分结果,确定二维矩阵的每行元素的行权重,使得每个元素的行权重与该元素所属聚类块的中心的距离成反相关。也就是说距离越大行权重越小,距离越小行权重越大,通常情况下噪声数据离聚类块中心的距离相对较大,所以通过上述处理,能够有效降低噪声数据的权重,进而过滤噪声信息,得到好的聚类效果。
应理解,对于每一行在列方向上分为若干段,例如分为L段,在每一段上的元素的行权重是相同的。换句话说,每个聚类块中的每行元素的行权重是相同的。
具体地,可以根据以下公式计算行权重:
其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,表示上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值,i′=1,2,...,M。
具体地,本发明实施例中的步骤306,可参见图2中的步骤240,为避免重复,这里不再赘述。
307,计算列权重。
具体地,根据本次迭代的行列类簇的划分,确定二维矩阵的每列元素的列权重,使得列权重与元素所属聚类块的中心值的距离成反相关。也就是说距离越大列权重越小,距离越小列权重越大,通常情况下噪声数据离聚类块中心的距离相对较大,所以通过上述处理,能够有效降低噪声数据的权重,进而过滤噪声信息,得到好的聚类效果。
应理解,对于每一列在列方向上分为若干段,例如分为K段,在每一段上的元素的列权重是相同的。换句话说,每个聚类块中的每列元素的列权重是相同的。
具体地,可以根据以下公式计算列权重:
其中,cg,j表示第j列元素中属于第g行类簇的元素的列权重,j′=1,2,...,N。
具体地,本发明实施例中的步骤307,可参见图2中的步骤240,为避免重复,这里不再赘述。
308,判断是否收敛。如果是,执行步骤309;如果不是,执行步骤303。
具体地,判断本次迭代与前一次迭代的行和列的聚类结果或划分结果是否发生变化,如果行和列的聚类结果或划分结果没有发生变化,则执行步骤309;如果不是,则执行步骤303。可替代地,判断两次迭代的目标函数值J的变化是否小于预先设定的阈值,如果两次迭代目标函数值的变化小于预先设定的阈值,则说明收敛,执行步骤309;否则,也就是如果行和列的聚类发生变化或者两次迭代目标函数值的变化大于预先设定的阈值,则说明不收敛,执行步骤303至步骤308,也就是继续迭代过程,直到两次迭代的目标函数值J的变化小于预先设定的阈值或者目标函数收敛。
具体地,本发明实施例的最优化问题的目标函数可以如下:
最优化问题的目标函数的限制条件可以为:
其中,J(U,V,Z,R,C)为目标函数,表示每个元素与所属聚类块中心的加权距离之和;表示行权重的熵;表示列权重的熵;Ui,g∈{0,1},1≤i≤N表示每一行属于哪一个行类簇,vj,h∈{0,1},1≤j≤M表示每一列属于哪一个列类簇,0<rh,i<1,1≤h≤L表示每个列类簇的N行元素的行权重之和为1,0<cg,j<1,1≤g≤K表示每个行类簇的M列的列权重之和为1;K为所述至少一个行类簇的个数,L为所述至少一个列类簇的个数,U为大小为N*K的行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列属于哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的均值,R为大小为L*N的矩阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,λ为参数,用来调整行权重的分布,η为参数,用来约束列权重的分布。
具体地,本发明实施例中的步骤307,可参见图2中的方法,为避免重复,这里不再赘述。
309,输出迭代结果。
具体地,在迭代收敛时,也就是停止迭代过程后,将最后一次迭代的聚类结果输出,例如,输出最终的行聚类划分结果和列聚类结果、聚类块的中心值、行权重和列权重。
因此,根据本发明的实施例,在对二维矩阵的元素进行聚类的过程中,根据二维矩阵的元素的自动更新的权重进行行类簇和列类簇的划分,由于聚类块中距离聚类块的中心越远的元素行权重和列权重越小,而通常噪声信息到聚类块的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
应注意,图3的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。本领域技术人员根据所给出的图1和图2的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
应注意,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
例如,本发明实施例中的行聚类和列聚类没有先后顺序之分,例如,本发明实施例中的步骤303和步骤304只是示意性的,这两个步骤没有先后顺序,也就是说本发明实施例中的行划分和列划分没有先后顺序之分,步骤304可以在步骤303之前或之后进行,步骤303和步骤304还可以同时进行,本发明实施例并不对此做限定。同样地,步骤306和步骤307只是示意性的,这两个步骤没有先后顺序,也就是说本发明实施例中的行权重和列权重的计算没有先后顺序之分,步骤307可以在步骤306之前或之后进行,步骤306和步骤307还可以同时进行,本发明实施例并不对此做限定。
可选地,作为另一实施例,本发明实施例方法,还包括:
310,输出可视化聚类结果。
换句话说,根据步骤309得到的迭代结果对二维矩阵的元素及其行权重和列权重进行重排,也就是说,将每个元素所对应的行权重按照至少一个行类簇的划分结果重排列,将每个元素所对应的列权重按照至少一个列类簇的划分结果重排列;将每个元素按照至少一个行类簇的划分结果重排列,将每个元素按照至少一个列类簇的划分结果重排列;或者将每个元素和每个元素所对应的行权重和列权重按照至少一个行类簇的划分结果和至少一个列类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和所述至少一个列类簇的划分结果。也就是说可以按照至少一个行类簇的划分结果和至少一个列类簇的划分结果重新排列行权重和列权重、元素或者元素及其行列权重,根据重排结果分析至少一个行类簇的划分结果和至少一个列类簇的划分结果。
例如,在对权重重排列时,可以将不同的权重值设置不同的颜色,例如颜色深代表权重小,表示相应的数据的意义比较小,颜色浅代表权重大,表示相应的数据的意义比较大;通过观察重排后的权重图像,可以将算法结果直观的表现,能够很好的对聚类效果分析;并且通过将聚类结果可视化,可以发现聚类块内部的子空间结构。
应注意,本发明实施例可以在行方向和列方向上同时协同聚类,还可以先固定一个方向,在另一个方向上采用本发明实施例的方法进行聚类,也就是说在一个方向上固定,在另一个方向上采用本发明迭代的方法在聚类时对数据采用不同的权重,能够有效地增大有效信息的权重,降低噪声信息的权重,过滤噪声信息,提高聚类效果。例如在行方向上固定,仅在列方向上采用本发明实施例的方法,或在列方向上固定,仅在行方向上采用本发明实施例的方法,本发明实施例并不对此做限定。
下面以采用本发明实施例的方法对一组用户电影评分数据集聚类为例进行说明。例如,一组用户电影评分数据集包含6040位用户对3900部电影的1,000,000个评分,可以用二维矩阵来表示不同用户对不同电影的评分。二维矩阵的行方向代表用户,二维矩阵的列方向代表电影,二维矩阵的元素代表用户给电影的评分,评分值可以设置为从1到5的5个值,如果没有评分,则评分置设置为0。由于原始评分数据没有任何规律,采用本发明实施例的方法对二维矩阵表示的数据进行聚类分析,可以在两个方向上同时聚类,例如,对该二维矩阵表示的数据应用本发明实施例提出的方法将其聚类为6个行类簇和5个列类簇,也就是说在行方向上将6040行用户分为6类,在列方向上将3900列电影分为5类,按照本发明实施例的方法设值元素初始的行权重为1/6040,列权重为1/3900,并设置初始的行类簇为6,列类簇为5,初始将行分到6个行类簇中,将列分到5个列类簇中,之后通过求解目标函数根据初始设置进行迭代,在收敛时或两次迭代的结果相同时停止迭代,并按照聚类结果将属于同一类别的用户和电影对应的分数重排列,也就是说将元素按照聚类的结果重排列。这样可以将没有规律的数据进行聚类,得出明显的分组结构。
采用本发明实施例的方法对该用户电影评分数据聚类分析,还可以先固定一个方向,在另一个方向上进行聚类,例如,在行方向上将用户固定为7个年龄组,也就是说在行方向上根据用户的年龄的不同固定的分为7个类簇,然后在列方向上使用本专利提出的方法将电影聚为5个电影组,也就是在列方向上分为5个类簇,然后按照本发明实施例方法进行聚类,并按照用户分组和电影聚类结果将属于同一类别的用户和电影排列到一起得到数据的重排结果。例如,根据重排结果,可以看到,有些分组里的电影不被所有年龄段的用户喜欢;有的分组里的电影,用户年龄越大越喜欢;而有的分组里的电影,用户年龄越小越喜欢。
上文中结合图1至图3,详细描述了根据本发明实施例的协同聚类的方法。下面将给出根据本发明实施例的协同聚类的设备的具体实施例,具体将结合图4至图9描述根据本发明实施例的协同聚类的设备。
图4是根据本发明一个实施例的协同聚类的设备示意框图。图4所示的协同聚类的设备400包括:划分单元410、第一计算单元420和第二计算单元430。
具体地,划分单元410用于根据上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过程得到的类簇中心的值,将待聚类的数据的每个元素划分到至少一个类簇中;第一计算单元420用于根据待聚类的数据的每个元素的类簇的划分结果和待聚类的数据的每个元素的权重,更新待聚类的数据的类簇中心的值;第二计算单元430用于根据更新后的待聚类的数据的类簇中心的值,更新待聚类的数据的每个元素的权重,其中,类簇中距离类簇的中心越远的元素的权重越小。
因此,本发明实施例在对待聚类的数据的元素进行聚类的过程中,自动更新元素的权重进行类簇的划分,由于类簇中距离类簇的中心越远的元素的权重越小,而通常噪声信息到类簇的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
可选地,作为另一实施例,还包括确定单元,具体的,如图5所示所示的协同聚类的设备500包括:确定单元510,划分单元520、第一计算单元530和第二计算单元540。
本发明实施例图5中的划分单元520能够实现图4中的划分单元410的功能,图5中的第一计算单元530能够实现图4中的第一计算单元420的功能,图5中的第二计算单元540能够实现图4中的第二计算单元430的功能。为避免重复,此处省略详细描述。
具体地,确定单元510用于确定待聚类的数据,数据为N行、M列的二维矩阵,二维矩阵包括N*M个元素。划分单元520用于根据上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个列类簇中。第一计算单元530用于根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对每个聚类块的元素进行加权平均,得到每个聚类块的中心的值。第二计算单元540用于根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块的中心的值,得到二维矩阵的每行元素的行权重和每列元素的列权重,其中聚类块中距离聚类块的中心越远的元素行权重和列权重越小。
因此,根据本发明的实施例,在对二维矩阵的元素进行聚类的过程中,根据二维矩阵的元素的自动更新的权重进行行类簇和列类簇的划分,由于聚类块中距离聚类块的中心越远的元素行权重和列权重越小,而通常噪声信息到聚类块的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
图5中的协同聚类的设备500能够实现图1的实施例中的协同聚类的方法,为避免重复,此处不再详述。
可选地,作为另一实施例,划分单元520包括:第一确定子单元521、第一划分子单元522、第二确定子单元523和第二划分子单元524。
具体地,第一确定子单元521用于确定N行元素中的每行M个元素与至少一个行类簇中的每个行类簇中的对应聚类块的中心的加权距离之和,得到至少一个行类簇对应的至少一个第一加权距离之和。第一划分子单元522用于将二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中。第二确定子单元523用于确定M列元素中的每列N个元素与至少一个列类簇中的每个列类簇中的对应聚类块的中心的加权距离之和,得到至少一个列类簇对应的至少一个第二加权距离之和。第二划分子单元524用于将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中。
进一步地,作为另一实施例,第一划分子单元522具体用于根据以下公式将二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中:
其中,
其中,i=1,2,...,M,j=1,2,...,N,ui,g=1表示第i行的元素属于第g行类簇,ui,s=0表示第i行元素不属于第s行类簇,K为至少一个行类簇的个数,L为至少一个列类簇的个数,g=1,2,...,K,s=1,2,...,K,J(s)表示第i行元素与第s个行类簇所对应的第一加权距离之和,J(g)表示第i行元素与第g个行类簇所对应的第一加权距离之和,J(g)为至少一个第一加权距离之和中的最小值,表示上次迭代中第j列的元素属于第h个列类簇,表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第j列元素中属于第s行类簇的元素的列权重,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心的值,为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值。
第二划分子单元524具体用于根据以下公式确定将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中:
其中,
其中,vj,h=1表示第该j列的元素属于第h列类簇,vj,t=0表示该第j列不属于第t列类簇,h=1,2,...,L,t=1,2,...,L,J′(h)表示第j列元素与第h个列类簇所对应的第二加权距离之和,J′(t)表示第j列元素与第t个列类簇所对应的第二加权距离之和,表示上次迭代中第i行的元素属于第g个行类簇,表示上次迭代中第i行的元素不属于第g个行类簇,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
可选地,作为另一实施例,第一计算单元530包括:计算子单元531和第三确定子单元532。
具体地,计算子单元531用于计算至少一个行类簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值。第三确定子单元532用于将加权平均值作为每个聚类块的中心的值。
进一步地,作为另一实施例,计算子单元531具体用于根据以下公式计算至少一个行类簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值:
其中,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,xi,j表示第i行与第j列所对应元素,表示上次迭代中第j列元素中属于第g个行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
可选地,作为另一实施例,第二计算单元540包括:第四确定子单元541和第五确定子单元542。
具体地,第四确定子单元541用于确定二维矩阵的每行元素的行权重,使得行权重与每行元素与每行元素所属聚类块的中心的距离成反相关。第五确定子单元542用于确定二维矩阵的每列元素的列权重,使得列权重与每列元素与每列元素所属聚类块的中心的距离成反相关。
进一步地,作为另一实施例,第四确定子单元541具体用于根据以下公式计算二维矩阵的每行元素的行权重:
其中,
其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,表示上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值,i′=1,2,...,M。
第五确定子单元542具体用于根据以下公式计算二维矩阵的每列元素的列权重:
其中,
其中,cg,t表示第j列元素中属于第g行类簇的元素的列权重,j′=1,2,...,N。
可选地,作为另一实施例,如图6所示的协同聚类的设备600包括:确定单元610、划分单元620、第一计算单元630、第二计算单元640和初始单元650。
具体地,确定单元610、划分单元620、第一计算单元630和第二计算单元640分别能够实现图5中的确定单元510、划分单元520、第一计算单元530和第二计算单元540的功能,为了避免重复,此处不再赘述。初始单元650用于确定二维矩阵的N*M个元素的行权重和列权重的初始值;初始单元650还用于在行方向上将N行元素划分到至少一个初始行类簇中,在列方向将N列元素划分到至少一个初始列类簇中;初始单元650还用于根据至少一个初始行类簇的划分结果、至少一个初始列类簇的划分结果以及至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,得到至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。
其中,在首次迭代过程中,上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重分别为至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,上次迭代过程得到的聚类块的中心的值为至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。
因此,根据本发明的实施例,在对二维矩阵的元素进行聚类的过程中,根据二维矩阵的元素的自动更新的权重进行行类簇和列类簇的划分,由于聚类块中距离聚类块的中心越远的元素行权重和列权重越小,而通常噪声信息到聚类块的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
可选地,作为另一实施例,如图7所示的协同聚类的设备700包括;确定单元710、划分单元720、第一计算单元730、第二计算单元740和停止单元750。
具体地,确定单元710、划分单元720、第一计算单元730、第二计算单元740和停止单元750分别能够实现图5中的确定单元510、划分单元520、第一计算单元530和第二计算单元540的功能,为了避免重复,此处不再赘述。停止单元750用于在两次迭代的至少一个行类簇的划分结果和至少一个列类簇的划分结果相同时,停止迭代过程;或者,停止单元750用于在两次迭代的目标函数的值的变化小于设定的阈值时,停止迭代过程,其中目标函数用于求解二维矩阵的最优化问题。
因此,根据本发明的实施例,在对二维矩阵的元素进行聚类的过程中,根据二维矩阵的元素的自动更新的权重进行行类簇和列类簇的划分,由于聚类块中距离聚类块的中心越远的元素行权重和列权重越小,而通常噪声信息到聚类块的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
可选地,作为另一实施例,目标函数为;
目标函数的限制条件为:
其中,K为至少一个行类簇的个数,L为至少一个列类簇的个数,U为大小为N*K的行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列属于哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的中心值,R为大小为L*N的矩阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,λ为参数,用来调整行权重的分布,η为参数,用来约束列权重的分布。
可选地,作为另一实施例,图7所示的协同聚类的设备700还可以包括初始单元(图为示),该初始单元能够实现图6中初始单元650的功能,为了避免重复,此处不再赘述。
可选地,作为另一实施例,如图8所示的协同聚类的设备800包括:确定单元810、划分单元820、第一计算单元830、第二计算单元840和重排单元850。
具体地,确定单元810、划分单元820、第一计算单元830、第二计算单元840分别能够实现图5中的确定单元510、划分单元520、第一计算单元530和第二计算单元540的功能,为了避免重复,此处不再赘述。重排单元650用于将二维矩阵的每个元素所对应的行权重按照至少一个行类簇的划分结果重排列,将二维矩阵的每个元素所对应的列权重按照至少一个列类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少一个列类簇的划分结果;和/或,重排单元850用于将二维矩阵的每个元素按照行至少一个行类簇的划分结果重排列,将二维矩阵的每个元素按照至少一个行类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少一个列类簇的划分结果。
因此,根据本发明的实施例,在对二维矩阵的元素进行聚类的过程中,根据二维矩阵的元素的自动更新的权重进行行类簇和列类簇的划分,由于聚类块中距离聚类块的中心越远的元素行权重和列权重越小,而通常噪声信息到聚类块的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
可选地,作为另一实施例,图8所示的协同聚类的设备800还可以包括初始单元(图为示),该初始单元能够实现图6中初始单元650的功能,为了避免重复,此处不再赘述。
可选地,作为作为另一实施例,图8所示的协同聚类的设备800还可以包括停止单元(图未示),该停止单元能够实现图7中停止单元750的功能,为了避免重复,此处不再赘述。
图9是根据本发明再一实施例的协同聚类的设备示意框图。图9所示的协同聚类的设备900包括处理器910、存储器920和总线930。
具体地,处理器910用于通过总线930调用存储在存储器920中的代码,根据上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过程得到的类簇中心的值,将待聚类的数据的每个元素划分到至少一个类簇中;根据待聚类的数据的每个元素的类簇的划分结果和待聚类的数据的每个元素的权重,更新待聚类的数据的类簇中心的值;根据更新后的待聚类的数据的类簇中心的值,更新待聚类的数据的每个元素的权重,其中,类簇中距离所述类簇的中心越远的元素的权重越小。
因此,根据本发明的实施例,在对待聚类的数据的元素进行聚类的过程中,自动更新元素的权重进行类簇的划分,由于类簇中距离类簇的中心越远的元素的权重越小,而通常噪声信息到类簇的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
上述本发明实施例揭示的方法可以应用于处理器910中,或者由处理器910实现。处理器910可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器910中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器910可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read-Only Memory,ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器920,处理器910读取存储器920中的信息,结合其硬件完成上述方法的步骤。
协同聚类的设备900能够实现图1的实施例中由编码设备实现的各个过程,为避免重复,这里不再赘述。
可选地,作为另一实施例,处理器910还用于确定待聚类的数据,数据为N行、M列的二维矩阵,二维矩阵包括N*M个元素;执行下列迭代过程:根据上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个列类簇中;根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对每个聚类块的元素进行加权平均,得到每个聚类块的中心的值;根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块的中心的值,得到二维矩阵的每行元素的行权重和每列元素的列权重,其中聚类块中距离聚类块的中心越远的元素行权重和列权重越小。
可选地,作为另一实施例,处理器910还用于确定N行元素中的每行M个元素与至少一个行类簇中的每个行类簇中的对应聚类块的中心的加权距离之和,得到至少一个行类簇对应的至少一个第一加权距离之和;将二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中;确定M列元素中的每列N个元素与至少一个列类簇中的每个列类簇中的对应聚类块的中心的加权距离之和,得到至少一个列类簇对应的至少一个第二加权距离之和;将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中。
可选地,作为另一实施例,处理器910还用于根据以下公式将二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中:
其中,
其中,i=1,2,...,M,j=1,2,...,N,ui,g=1表示第i行的元素属于第g行类簇,ui,s=0表示第i行元素不属于第s行类簇,K为至少一个行类簇的个数,L为至少一个列类簇的个数,g=1,2,...,K,s=1,2,...,K,J(s)表示第i行元素与第s个行类簇所对应的第一加权距离之和,J(g)表示第i行元素与第g个行类簇所对应的第一加权距离之和,J(g)为至少一个第一加权距离之和中的最小值,表示上次迭代中第j列的元素属于第h个列类簇,表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第j列元素中属于第s行类簇的元素的列权重,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心的值,为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值。
其中,将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中,包括:
根据以下公式确定将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中:
其中,
其中,vj,h=1表示第该j列的元素属于第h列类簇,vj,t=0表示该第j列不属于第t列类簇,h=1,2,...,L,t=1,2,...,L,J′(h)表示第j列元素与第h个列类簇所对应的第二加权距离之和,J′(t)表示第j列元素与第t个列类簇所对应的第二加权距离之和,表示上次迭代中第i行的元素属于第g个行类簇,表示上次迭代中第i行的元素不属于第g个行类簇,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
可选地,作为另一实施例,处理器910还用于计算至少一个行类簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值;将加权平均值作为每个聚类块的中心的值。
可选地,作为另一实施例,处理器910还用于根据以下公式计算至少一个行类簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值:
其中,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,xi,j表示第i行与第j列所对应元素,表示上次迭代中第j列元素中属于第g个行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
可选地,作为另一实施例,处理器910还用于确定二维矩阵的每行元素的行权重,使得行权重与每行元素与每行元素所属聚类块的中心的距离成反相关;确定二维矩阵的每列元素的列权重,使得列权重与每列元素与每列元素所属聚类块的中心的距离成反相关。
可选地,作为另一实施例,处理器910还用于根据以下公式计算二维矩阵的每行元素的行权重:
其中,
其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,表示上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值,i′=1,2,...,M。
确定二维矩阵的每列元素的列权重,包括:
根据以下公式计算二维矩阵的每列元素的列权重:
其中,
其中,cg,j表示第j列元素中属于第g行类簇的元素的列权重,j′=1,2,...,N。
可选地,作为另一实施例,处理器910还用于确定二维矩阵的N*M个元素的行权重和列权重的初始值;在行方向上将N行元素划分到至少一个初始行类簇中,在列方向将N列元素划分到至少一个初始列类簇中;根据至少一个初始行类簇的划分结果、至少一个初始列类簇的划分结果以及至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,得到至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。其中,在首次迭代过程中,上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重分别为至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,上次迭代过程得到的聚类块的中心的值为至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。
可选地,作为另一实施例,处理器910还用于在两次迭代的至少一个行类簇的划分结果和至少一个列类簇的划分结果相同时,停止迭代过程;或者,在两次迭代的目标函数的值的变化小于设定的阈值时,停止迭代过程,其中目标函数用于求解二维矩阵的最优化问题。
其中目标函数为:
目标函数的限制条件为:
其中,K为至少一个行类簇的个数,L为至少一个列类簇的个数,U为大小为N*K的行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列属于哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的中心值,R为大小为L*N的矩阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,λ为参数,用来调整行权重的分布,η为参数,用来约束列权重的分布。
可选地,作为另一实施例,处理器910还用于将二维矩阵的每个元素所对应的行权重按照至少一个行类簇的划分结果重排列,将二维矩阵的每个元素所对应的列权重按照至少一个列类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少一个列类簇的划分结果;和/或,将二维矩阵的每个元素按照行至少一个行类簇的划分结果重排列,将二维矩阵的每个元素按照至少一个行类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少一个列类簇的划分结果。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (22)

1.一种协同聚类的方法,其特征在于,包括:
确定用户电影评分数据集,所述用户电影评分数据集以N行、M列的二维矩阵的形式表示,所述二维矩阵的行方向代表用户,所述二维矩阵的列方向代表电影,所述二维矩阵的元素代表用户对电影的评分;
迭代执行下列过程,以对待聚类的数据进行协同聚类:根据上次迭代过程得到的所述二维矩阵的每行元素的行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个列类簇中;根据所述至少一个行类簇的划分结果、所述至少一个列类簇的划分结果和所述至少一个行类簇和所述至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对所述每个聚类块的元素进行加权平均,得到所述每个聚类块的中心的值;根据所述至少一个行类簇的划分结果、所述至少一个列类簇的划分结果和所述至少一个行类簇和所述至少一个列类簇组成的聚类块的中心的值,得到所述二维矩阵的每行元素的行权重和每列元素的列权重,其中所述行类簇代表所述用户的分类,所述列类簇代表所述电影的分类,所述聚类块中距离所述聚类块的中心越远的元素行权重和列权重越小,表示所述元素为噪声信息的可能性越大;
输出所述用户电影评分数据集的划分结果,所述划分结果用于表示不同类型的用户对不同类型的电影的喜爱。
2.根据权利要求1所述的方法,其特征在于,所述根据上次迭代过程得到的所述二维矩阵的每行元素的行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个列类簇中,包括:
确定所述N行元素中的每行M个元素与所述至少一个行类簇中的每个行类簇中的对应聚类块的中心的加权距离之和,得到所述至少一个行类簇对应的至少一个第一加权距离之和;
将所述二维矩阵的每行元素划分到所述至少一个第一加权距离之和中的最小值所对应的行类簇中;
确定所述M列元素中的每列N个元素与所述至少一个列类簇中的每个列类簇中的对应聚类块的中心的加权距离之和,得到所述至少一个列类簇对应的至少一个第二加权距离之和;
将所述二维矩阵的每列元素划分到所述至少一个第二加权距离之和中的最小值所对应的列类簇中。
3.根据权利要求2所述的方法,其特征在于,所述将所述二维矩阵的每行元素划分到所述至少一个第一加权距离之和中的最小值所对应的行类簇中包括:
根据以下公式将所述二维矩阵的每行元素划分到所述至少一个第一加权距离之和中的最小值所对应的行类簇中:
其中,
其中,i=1,2,…,M,j=1,2,…,N,ui,g=1表示第i行的元素属于第g行类簇,ui,s=0表示第i行元素不属于第s行类簇,K为所述至少一个行类簇的个数,L为所述至少一个列类簇的个数,g=1,2,…,K,s=1,2,…,K,J(s)表示第i行元素与第s个行类簇所对应的第一加权距离之和,J(g)表示第i行元素与第g个行类簇所对应的第一加权距离之和,J(g)为所述至少一个第一加权距离之和中的最小值,表示上次迭代中第j列的元素属于第h个列类簇,表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第j列元素中属于第s行类簇的元素的列权重,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心的值,为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值,
其中,所述将所述二维矩阵的每列元素划分到所述至少一个第二加权距离之和中的最小值所对应的列类簇中,包括:
根据以下公式确定将二维矩阵的每列元素划分到所述至少一个第二加权距离之和中的最小值所对应的列类簇中:
其中,
其中,vj,h=1表示第j列的元素属于第h列类簇,vj,t=0表示该第j列不属于第t列类簇,h=1,2,…,L,t=1,2,…,L,J′(h)表示第j列元素与第h个列类簇所对应的第二加权距离之和,J′(t)表示第j列元素与第t个列类簇所对应的第二加权距离之和,表示上次迭代中第i行的元素属于第g个行类簇,表示上次迭代中第i行的元素不属于第g个行类簇,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述至少一个行类簇的划分结果、所述至少一个列类簇的划分结果和所述至少一个行类簇和所述至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对所述每个聚类块的元素进行加权平均,得到所述每个聚类块的中心的值,包括:
计算所述至少一个行类簇和所述至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值;
将所述加权平均值作为所述每个聚类块的中心的值。
5.根据权利要求4所述的方法,其特征在于,所述计算所述至少一个行类簇和所述至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值,包括:
根据以下公式计算所述至少一个行类簇和所述至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值:
其中,表示上次迭代中第j列的元素属于第h个列类簇,表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第i行的元素属于第g个行类簇,表示上次迭代中第i行的元素不属于第g个行类簇,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,xi,j表示第i行与第j列所对应元素,表示上次迭代中第j列元素中属于第g个行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
6.根据权利要求1或2所述的方法,其特征在于,所述根据所述至少一个行类簇的划分结果、所述至少一个列类簇的划分结果和所述至少一个行类簇和所述至少一个列类簇组成的聚类块的中心的值,得到所述二维矩阵的每行元素的行权重和每列元素的列权重,包括:
确定所述二维矩阵的每行元素的行权重,使得所述行权重与所述每行元素与所述每行元素所属聚类块的中心的距离成反相关;
确定所述二维矩阵的每列元素的列权重,使得所述列权重与所述每列元素与所述每列元素所属聚类块的中心的距离成反相关。
7.根据权利要求6所述的方法,其特征在于,所述确定所述二维矩阵的每行元素的行权重,包括:
根据以下公式计算所述二维矩阵的每行元素的行权重:
其中,
其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,表示上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值,i'=1,2,…,M,λ为参数,用来调整行权重的分布,表示上次迭代中第j列的元素属于第h个列类簇,表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第i行的元素属于第g个行类簇,表示上次迭代中第i行的元素不属于第g个行类簇,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,K为所述至少一个行类簇的个数,
所述确定所述二维矩阵的每列元素的列权重,包括:
根据以下公式计算所述二维矩阵的每列元素的列权重:
其中,
其中,η为参数,用来约束列权重的分布,L为所述至少一个列类簇的个数,表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重,cg,j表示第j列元素中属于第g行类簇的元素的列权重,j'=1,2,…,N。
8.根据权利要求1至3中任一项所述的方法,其特征在于,在所述迭代过程中的首次迭代过程之前,还包括:
确定所述二维矩阵的N*M个元素的行权重和列权重的初始值;
在行方向上将N行元素划分到至少一个初始行类簇中,在列方向将N列元素划分到至少一个初始列类簇中;
根据所述至少一个初始行类簇的划分结果、所述至少一个初始列类簇的划分结果以及所述至少一个初始行类簇和所述至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,得到所述至少一个初始行类簇和所述至少一个初始列类簇组成的聚类块中每个聚类块的中心的值,
其中,在所述首次迭代过程中,所述上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重分别为所述至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,所述上次迭代过程得到的聚类块的中心的值为所述至少一个初始行类簇和所述至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。
9.根据权利要求1或2所述的方法,其特征在于,还包括:
在两次迭代的所述至少一个行类簇的划分结果和所述至少一个列类簇的划分结果相同时,停止所述迭代过程;
或者,
在两次迭代的目标函数的值的变化小于设定的阈值时,停止所述迭代过程,其中所述目标函数用于求解所述二维矩阵的最优化问题。
10.根据权利要求9所述的方法,其特征在于,所述目标函数为:
所述目标函数的限制条件为:
其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,cg,j表示第j列元素中属于第g行类簇的元素的列权重,vj,h=1表示第j列的元素属于第h列类簇,ui,g=1表示第i行的元素属于第g行类簇,K为所述至少一个行类簇的个数,L为所述至少一个列类簇的个数,U为大小为N*K的行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列属于哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的中心值,R为大小为L*N的矩阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,λ为参数,用来调整行权重的分布,η为参数,用来约束列权重的分布。
11.根据权利要求1至3中的任一项所述的方法,其特征在于,还包括:
将所述二维矩阵的每个元素所对应的行权重按照所述至少一个行类簇的划分结果重排列,将所述二维矩阵的每个元素所对应的列权重按照所述至少一个列类簇的划分结果重排列,以便分析所述至少一个行类簇的划分结果和所述至少一个列类簇的划分结果;
和/或,
将所述二维矩阵的每个元素按照行所述至少一个行类簇的划分结果重排列,将所述二维矩阵的每个元素按照所述至少一个行类簇的划分结果重排列,以便分析所述至少一个行类簇的划分结果和所述至少一个列类簇的划分结果。
12.一种协同聚类的设备,其特征在于,包括:
存储器,用于存储代码;
处理器,用于执行所述存储器中存储的代码,以执行以下操作:
确定用户电影评分数据集,所述用户电影评分数据集以N行、M列的二维矩阵的形式表示,所述二维矩阵的行方向代表用户,所述二维矩阵的列方向代表电影,所述二维矩阵的元素代表用户对电影的评分;
迭代执行下列过程,以对待聚类的数据进行协同聚类:根据上次迭代过程得到的所述二维矩阵的每行元素的行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个列类簇中;根据所述至少一个行类簇的划分结果、所述至少一个列类簇的划分结果和所述至少一个行类簇和所述至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对所述每个聚类块的元素进行加权平均,得到所述每个聚类块的中心的值;根据所述至少一个行类簇的划分结果、所述至少一个列类簇的划分结果和所述至少一个行类簇和所述至少一个列类簇组成的聚类块的中心的值,得到所述二维矩阵的每行元素的行权重和每列元素的列权重,其中所述行类簇代表所述用户的分类,所述列类簇代表所述电影的分类,其中所述聚类块中距离所述聚类块的中心越远的元素行权重和列权重越小,表示所述元素为噪声信息的可能性越大;
输出所述用户电影评分数据集的划分结果,所述划分结果用于表示不同类型的用户对不同类型的电影的喜爱。
13.根据权利要求12所述的设备,其特征在于,所述处理器具体用于确定所述N行元素中的每行M个元素与所述至少一个行类簇中的每个行类簇中的对应聚类块的中心的加权距离之和,得到所述至少一个行类簇对应的至少一个第一加权距离之和;将所述二维矩阵的每行元素划分到所述至少一个第一加权距离之和中的最小值所对应的行类簇中;确定所述M列元素中的每列N个元素与所述至少一个列类簇中的每个列类簇中的对应聚类块的中心的加权距离之和,得到所述至少一个列类簇对应的至少一个第二加权距离之和;将所述二维矩阵的每列元素划分到所述至少一个第二加权距离之和中的最小值所对应的列类簇中。
14.根据权利要求13所述的设备,其特征在于,所述处理器具体用于根据以下公式将所述二维矩阵的每行元素划分到所述至少一个第一加权距离之和中的最小值所对应的行类簇中:
其中,
其中,i=1,2,…,M,j=1,2,…,N,ui,g=1表示第i行的元素属于第g行类簇,ui,s=0表示第i行元素不属于第s行类簇,K为所述至少一个行类簇的个数,L为所述至少一个列类簇的个数,g=1,2,…,K,s=1,2,…,K,J(s)表示第i行元素与第s个行类簇所对应的第一加权距离之和,J(g)表示第i行元素与第g个行类簇所对应的第一加权距离之和,J(g)为所述至少一个第一加权距离之和中的最小值,表示上次迭代中第j列的元素属于第h个列类簇,表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第j列元素中属于第s行类簇的元素的列权重,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心的值,为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值;根据以下公式确定将二维矩阵的每列元素划分到所述至少一个第二加权距离之和中的最小值所对应的列类簇中:
其中,
其中,vj,h=1表示第j列的元素属于第h列类簇,vj,t=0表示该第j列不属于第t列类簇,h=1,2,…,L,t=1,2,…,L,J′(h)表示第j列元素与第h个列类簇所对应的第二加权距离之和,J′(t)表示第j列元素与第t个列类簇所对应的第二加权距离之和,表示上次迭代中第i行的元素属于第g个行类簇,表示上次迭代中第i行的元素不属于第g个行类簇,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d(·)为欧式距离,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
15.根据权利要求12或13所述的设备,其特征在于,所述处理器具体用于计算所述至少一个行类簇和所述至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值;将所述加权平均值作为所述每个聚类块的中心的值。
16.根据权利要求15所述的设备,其特征在于,所述处理器具体用于根据以下公式计算所述至少一个行类簇和所述至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值:
其中,表示上次迭代中第j列的元素属于第h个列类簇,表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第i行的元素属于第g个行类簇,表示上次迭代中第i行的元素不属于第g个行类簇,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,xi,j表示第i行与第j列所对应元素,表示上次迭代中第j列元素中属于第g个行类簇的元素的列权重,表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
17.根据权利要求12或13所述的设备,其特征在于,所述处理器具体用于确定所述二维矩阵的每行元素的行权重,使得所述行权重与所述每行元素与所述每行元素所属聚类块的中心的距离成反相关;确定所述二维矩阵的每列元素的列权重,使得所述列权重与所述每列元素与所述每列元素所属聚类块的中心的距离成反相关。
18.根据权利要求17所述的设备,其特征在于,所述处理器具体用于根据以下公式计算所述二维矩阵的每行元素的行权重:
其中,
其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,表示上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值,i'=1,2,…,M,λ为参数,用来调整行权重的分布,表示上次迭代中第j列的元素属于第h个列类簇,表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第i行的元素属于第g个行类簇,表示上次迭代中第i行的元素不属于第g个行类簇,表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,K为所述至少一个行类簇的个数,
根据以下公式计算所述二维矩阵的每列元素的列权重:
其中,
其中,η为参数,用来约束列权重的分布,L为所述至少一个列类簇的个数,表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重,cg,j表示第j列元素中属于第g行类簇的元素的列权重,j'=1,2,…,N。
19.根据权利要求12至14中任一项所述的设备,其特征在于,所述处理器还用于在所述迭代过程中的首次迭代过程之前,确定所述二维矩阵的N*M个元素的行权重和列权重的初始值;在行方向上将N行元素划分到至少一个初始行类簇中,在列方向将N列元素划分到至少一个初始列类簇中;根据所述至少一个初始行类簇的划分结果、所述至少一个初始列类簇的划分结果以及所述至少一个初始行类簇和所述至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,得到所述至少一个初始行类簇和所述至少一个初始列类簇组成的聚类块中每个聚类块的中心的值,
其中,在所述首次迭代过程中,所述上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重分别为所述至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,所述上次迭代过程得到的聚类块的中心的值为所述至少一个初始行类簇和所述至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。
20.根据权利要求12或13所述的设备,其特征在于,所述处理器还用于在两次迭代的所述至少一个行类簇的划分结果和所述至少一个列类簇的划分结果相同时,停止所述迭代过程;
或者,
在两次迭代的目标函数的值的变化小于设定的阈值时,停止所述迭代过程,其中所述目标函数用于求解所述二维矩阵的最优化问题。
21.根据权利要求20所述的设备,其特征在于,所述目标函数为;
所述目标函数的限制条件为:
其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,cg,j表示第j列元素中属于第g行类簇的元素的列权重,vj,h=1表示第j列的元素属于第h列类簇,ui,g=1表示第i行的元素属于第g行类簇,K为所述至少一个行类簇的个数,L为所述至少一个列类簇的个数,U为大小为N*K的行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列属于哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的中心值,R为大小为L*N的矩阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,λ为参数,用来调整行权重的分布,η为参数,用来约束列权重的分布。
22.根据权利要求12至14中任一项所述的设备,其特征在于,所述处理器还用于将所述二维矩阵的每个元素所对应的行权重按照所述至少一个行类簇的划分结果重排列,将所述二维矩阵的每个元素所对应的列权重按照所述至少一个列类簇的划分结果重排列,以便分析所述至少一个行类簇的划分结果和所述至少一个列类簇的划分结果;
和/或,
将所述二维矩阵的每个元素按照行所述至少一个行类簇的划分结果重排列,将所述二维矩阵的每个元素按照所述至少一个行类簇的划分结果重排列,以便分析所述至少一个行类簇的划分结果和所述至少一个列类簇的划分结果。
CN201410084478.7A 2014-03-07 2014-03-07 协同聚类的方法和设备 Active CN104899232B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410084478.7A CN104899232B (zh) 2014-03-07 2014-03-07 协同聚类的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410084478.7A CN104899232B (zh) 2014-03-07 2014-03-07 协同聚类的方法和设备

Publications (2)

Publication Number Publication Date
CN104899232A CN104899232A (zh) 2015-09-09
CN104899232B true CN104899232B (zh) 2019-05-24

Family

ID=54031899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410084478.7A Active CN104899232B (zh) 2014-03-07 2014-03-07 协同聚类的方法和设备

Country Status (1)

Country Link
CN (1) CN104899232B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909635B (zh) * 2017-02-09 2020-05-19 深圳市瑞迪兴智能科技有限公司 基于多媒体数字影像评论的数据挖掘与处理方法及系统
CN110069485B (zh) * 2017-09-21 2024-01-23 阿里云计算有限公司 数据获取模型建立的方法和数据获取的方法及装置
CN109885684B (zh) * 2019-01-31 2022-11-22 腾讯科技(深圳)有限公司 一种类簇处理方法及装置
CN113868545B (zh) * 2021-11-30 2022-02-22 武汉卓尔数字传媒科技有限公司 一种项目推荐方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008073055A1 (en) * 2006-12-14 2008-06-19 Agency For Science, Technology And Research Method and device of determining co-clusters from a dataset
CN102663100A (zh) * 2012-04-13 2012-09-12 西安电子科技大学 一种两阶段混合粒子群优化聚类方法
CN103218509A (zh) * 2013-02-01 2013-07-24 北京航空航天大学 一种基于硬件的复合抗干扰数据关联方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008073055A1 (en) * 2006-12-14 2008-06-19 Agency For Science, Technology And Research Method and device of determining co-clusters from a dataset
CN102663100A (zh) * 2012-04-13 2012-09-12 西安电子科技大学 一种两阶段混合粒子群优化聚类方法
CN103218509A (zh) * 2013-02-01 2013-07-24 北京航空航天大学 一种基于硬件的复合抗干扰数据关联方法

Also Published As

Publication number Publication date
CN104899232A (zh) 2015-09-09

Similar Documents

Publication Publication Date Title
CN108595585B (zh) 样本数据分类方法、模型训练方法、电子设备及存储介质
CN109871886A (zh) 基于谱聚类的异常点比例优化方法、装置及计算机设备
CN109376615A (zh) 用于提升深度学习网络预测性能的方法、装置及存储介质
CN103729383B (zh) 商品信息的推送方法和装置
CN110472681A (zh) 基于知识蒸馏的神经网络训练方案和图像处理方案
CN108681973A (zh) 电力用户的分类方法、装置、计算机设备和存储介质
CN104899232B (zh) 协同聚类的方法和设备
CN107358293A (zh) 一种神经网络训练方法及装置
CN108664999A (zh) 一种分类模型的训练方法及其装置、计算机服务器
CN107784597A (zh) 出行方式识别方法、装置、终端设备及存储介质
CN110019876A (zh) 数据查询方法、电子设备及存储介质
CN109816032A (zh) 基于生成式对抗网络的无偏映射零样本分类方法和装置
CN108647571A (zh) 视频动作分类模型训练方法、装置及视频动作分类方法
CN112016450B (zh) 机器学习模型的训练方法、装置和电子设备
CN109522945A (zh) 一种群体情感识别方法、装置、智能设备及存储介质
CN104391879B (zh) 层次聚类的方法及装置
CN108536595A (zh) 测试用例智能化匹配方法、装置、计算机设备及存储介质
CN109117742A (zh) 手势检测模型处理方法、装置、设备及存储介质
CN111311702B (zh) 一种基于BlockGAN的图像生成和识别模块及方法
CN108509996A (zh) 基于Filter和Wrapper选择算法的特征选择方法
CN109978074A (zh) 基于深度多任务学习的图像美感和情感联合分类方法及系统
CN107729416A (zh) 一种书籍的推荐方法及系统
CN110503113A (zh) 一种基于低秩矩阵恢复的图像显著性目标检测方法
CN105512156A (zh) 点击模型生成方法和装置
CN114783021A (zh) 一种口罩佩戴智能检测方法、装置、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210421

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Device Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right