协同聚类的方法和设备的制造方法

xiaoxiao2020-10-23  19

协同聚类的方法和设备的制造方法
【技术领域】
[0001] 本发明涉及数据处理领域,特别涉及一种协同聚类的方法和设备。
【背景技术】
[0002] 协同聚类(Co-clustering)在文本挖掘、基因表达数据分析、协同过滤、推荐系统 和矩阵近似等领域中有广泛的应用。协同聚类是一种对二维数据矩阵的行和列两个方向 同时进行聚类的一类算法。聚类是根据数据集中数据的不同特征,将数据划分为不同的簇 (Cluster),使得同一簇的个体之间的距离尽可能小(或相似度尽可能高),不同簇的个体 问的距离尽可能大(或相似度尽可以低)。上述数据可以是不同用户针对不同项目或物品 产生的用户行为数据,可以由二维矩阵来表示。在行方向上进行聚类时,依据不同行与行类 簇的相似性,将行聚成至少一个行类簇,例如,聚成K个行类簇;在列方向上进行聚类时,依 据不同列与列类簇的相似性,将列聚成至少一个列类簇,例如,聚成L个列类簇。这样,协同 聚类可以将无序的数据矩阵划分成K*L个有序的聚类块。
[0003] 现有聚类算法采取行划分和列划分交替进行,通过迭代优化,求解一个最优化问 题,当算法收敛到最优化问题的目标函数的极小值时,停止迭代,完成聚类。上述数据可能 会包含噪声数据,例如,用户的误操作产生的数据,这些噪声数据会影响聚类的准确性。现 有聚类算法在进行数据处理时对噪声数据和有用数据作相同的处理,没有考虑噪声数据对 聚类效果的影响。因此,现有技术无法降低噪声数据对聚类的影响,聚类效果差。

【发明内容】

[0004] 本发明实施例提供一种协同聚类的方法和设备,能够降低噪声数据对聚类的影 响,提高聚类效果。
[0005] 第一方面,本发明实施例提供了一种协同聚类的方法,包括:迭代执行下列过程, 以对待聚类的数据进行协同聚类:根据上次迭代过程得到的待聚类的数据的每个元素的权 重以及上次迭代过程得到的类簇中心的值,将待聚类的数据的每个元素划分到至少一个类 簇中;根据待聚类的数据的每个元素的类簇的划分结果和待聚类的数据的每个元素的权 重,更新待聚类的数据的类簇中心的值;根据更新后的待聚类的数据的类簇中心的值,更新 待聚类的数据的每个元素的权重,其中,类簇中距离类簇的中心越远的元素的权重越小。
[0006] 结合第一方面,在第一种可能的实现方式中,该方法还包括:确定待聚类的数据, 该数据为N行、M列的二维矩阵,该二维矩阵包括N*M个元素,其中,根据上次迭代过程得到 的待聚类的数据的每个元素的权重以及上次迭代过程得到的类簇中心的值,将待聚类的数 据的每个元素划分到至少一个类簇中,包括:根据上次迭代过程得到的二维矩阵的每行元 素的行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的值,在行方向上 将N行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个列类簇中,其 中,所述根据待聚类的数据的每个元素的类簇的划分结果和待聚类的数据的每个元素的权 重,更新待聚类的数据的类簇中心的值,包括:根据至少一个行类簇的划分结果、至少一个 列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块中每个聚类块的元 素的行权重和列权重对每个聚类块的元素进行加权平均,得到每个聚类块的中心的值,其 中根据更新后的待聚类的数据的类簇中心的值,更新待聚类的数据的每个元素的权重,包 括:根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至 少一个列类簇组成的聚类块的中心的值,得到二维矩阵的每行元素的行权重和每列元素的 列权重,其中聚类块中距离所述聚类块的中心越远的元素行权重和列权重越小。
[0007] 结合第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,根 据上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重以及上次迭代 过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行类簇中,在列方 向将M列元素划分到至少一个列类簇中,包括:确定N行元素中的每行M个元素与至少一个 行类簇中的每个行类簇中的对应聚类块的中心的加权距离之和,得到至少一个行类簇对应 的至少一个第一加权距离之和;将二维矩阵的每行元素划分到至少一个第一加权距离之和 中的最小值所对应的行类簇中;确定M列元素中的每列N个元素与至少一个列类簇中的每 个列类簇中的对应聚类块的中心的加权距离之和,得到至少一个列类簇对应的至少一个第 二加权距离之和;将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所 对应的列类簇中。
[0008] 结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,将 二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中包 括:根据以下公式将二维矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所 对应的行类簇中:
[0010]其中,
[0012] 其中,i= 1,2, ? ? ?,M,j=l,2, ? ? ?,N,11"=1表示第i行的元素属于第g行类簇, Ui,s = 0表示第i行元素不属于第s行类簇,K为至少一个行类簇的个数,L为至少一个列 类簇的个数,g=l,2, . . .,K,s=l,2, . . .,K,Jte)表示第i行元素与第s个行类簇所对应的第 一加权距离之和,表示第i行元素与第g个行类簇所对应的第一加权距离之和,为 至少一个第一加权距离之和中的最小值,i)# =1表示上次迭代中第j列的元素属于第h个 列类簇,= 〇表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中第 j列元素中属于第s行类簇的元素的列权重,I;表示上次迭代中第j列元素中属于第g行 类簇的元素的列权重,&表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重, (!(?)为欧式距离,^^为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心的值, 为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值,其中,将二维矩阵的每列 元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中,包括:根据以下公 式确定将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列 类簇中:
[0014]其中,
[0016] 其中,Vj,h = 1表示第该j列的元素属于第h列类簇,Vj,t = 0表示该第j列不属 于第t列类簇,h=l,2,. . .,L,t=l,2,. . .,L,J'&)表示第j列元素与第h个列类簇所对 应的第二加权距离之和,J'w表示第j列元素与第t个列类簇所对应的第二加权距离之 和,=1表示上次迭代中第i行的元素属于第g个行类簇,=〇表示上次迭代中第i行 的元素不属于第g个行类簇,I;表示上次迭代中第j列元素中属于第g行类簇的元素的列 权重,t表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d( ?)为欧式距 离,&,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
[0017] 结合第一方面第一至第三种可能的实现方式中的任一种可能的实现方式,在第一 方面第四种可能的实现方式中,根据至少一个行类簇的划分结果、至少一个列类簇的划分 结果和至少一个行类簇和至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和 列权重对每个聚类块的元素进行加权平均,得到每个聚类块的中心的值,包括:计算至少一 个行类簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列 权重的基础上的加权平均值;将加权平均值作为每个聚类块的中心的值。
[0018] 结合第一方面第四种可能的实现方式,在第一方面第五种可能的实现方式中,计 算至少一个行类簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行 权重和列权重的基础上的加权平均值,包括:根据以下公式计算至少一个行类簇和至少一 个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加 权平均值:
[0020] 其中,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,Xq表示第i 行与第j列所对应元素,I;表示上次迭代中第j列元素中属于第g个行类簇的元素的列权 重,I表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
[0021] 结合第一方面第一至第四种可能的实现方式中的任一种可能的实现方式,在第一 方面第六种可能的实现方式中,根据至少一个行类簇的划分结果、至少一个列类簇的划分 结果和至少一个行类簇和至少一个列类簇组成的聚类块的中心的值,得到二维矩阵的每行 元素的行权重和每列元素的列权重,包括:确定二维矩阵的每行元素的行权重,使得行权重 与每行元素与每行元素所属聚类块的中心的距离成反相关;确定二维矩阵的每列元素的列 权重,使得列权重与每列元素与每列元素所属聚类块的中心的距离成反相关。
[0022] 结合第一方面第六种可能的实现方式,在第一方面第七种可能的实现方式中,确 定二维矩阵的每行元素的行权重,包括:根据以下公式计算二维矩阵的每行元素的行权 重:
[0024]其中,
[0026] 其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,表示上次迭 代中第g行类簇和第h列类簇组成的聚类块的中心的值,i' =1,2,...,M,确定二维矩阵的 每列元素的列权重,包括:根据以下公式计算二维矩阵的每列元素的列权重:
[0028]其中,
[0030] 其中,cg,j表示第j列元素中属于第g行类簇的元素的列权重,j' =1,2, . . .,N。
[0031] 结合第一方面第一至第七种可能的实现方式中的任一种可能的实现方式,在第一 方面第八种可能的实现方式中,在迭代过程中的首次迭代过程之前,该方法还包括:确定二 维矩阵的N*M个元素的行权重和列权重的初始值;在行方向上将N行元素划分到至少一个 初始行类簇中,在列方向将N列元素划分到至少一个初始列类簇中;根据至少一个初始行 类簇的划分结果、至少一个初始列类簇的划分结果以及至少一个初始行类簇和至少一个初 始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,得到至少一个初始行类簇 和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值,其中,在首次迭代过程中, 上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重分别为至少一个 初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,上次迭代过程得到的聚 类块的中心的值为至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类 块的中心的值。
[0032] 结合第一方面第一至第八种可能的实现方式中的任一种可能的实现方式,在第一 方面第九种可能的实现方式中,该方法还包括:在两次迭代的至少一个行类簇的划分结果 和至少一个列类簇的划分结果相同时,停止迭代过程;或者,在两次迭代的目标函数的值的 变化小于设定的阈值时,停止迭代过程,其中目标函数用于求解二维矩阵的最优化问题。
[0033] 结合第一方面第九种可能的实现方式,在第一方面第十种可能的实现方式中,目 标函数为:
[0035]目标函数的限制条件为:
[0037] 其中,K为至少一个行类簇的个数,L为至少一个列类簇的个数,U为大小为N*K的 行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列属于 哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的中心值,R为大小为L*N的矩 阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,入为参数,用来调整行权重 的分布,n为参数,用来约束列权重的分布。
[0038] 结合第一方面第一至第十种可能的实现方式中的任一种可能的实现方式,在第一 方面第i^一种可能的实现方式中,该方法还包括:将二维矩阵的每个元素所对应的行权重 按照至少一个行类簇的划分结果重排列,将二维矩阵的每个元素所对应的列权重按照至少 一个列类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少一个列类簇的 划分结果;和/或,将二维矩阵的每个元素按照行至少一个行类簇的划分结果重排列,将二 维矩阵的每个元素按照至少一个行类簇的划分结果重排列,以便分析至少一个行类簇的划 分结果和至少一个列类簇的划分结果。
[0039] 第二方面,本发明实施例提供了一种协同聚类的设备,包括:划分单元,用于根据 上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过程得到的类簇中心 的值,将待聚类的数据的每个元素划分到至少一个类簇中;第一计算单元,用于根据待聚类 的数据的每个元素的类簇的划分结果和待聚类的数据的每个元素的权重,更新待聚类的数 据的类簇中心的值;第二计算单元,用于根据更新后的待聚类的数据的类簇中心的值,更新 待聚类的数据的每个元素的权重,其中,类簇中距离所述类簇的中心越远的元素的权重越 小。
[0040] 结合第二方面,在第二方面第一种可能的实现方式中,该设备还包括确定单元,用 于确定待聚类的数据,数据为N行、M列的二维矩阵,二维矩阵包括N*M个元素,其中,划分 单元具体用于根据上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权 重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行 类簇中,在列方向将M列元素划分到至少一个列类簇中;第一计算单元具体用于根据至少 一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇 组成的聚类块中每个聚类块的元素的行权重和列权重对每个聚类块的元素进行加权平均, 得到每个聚类块的中心的值;第二计算单元具体用于根据至少一个行类簇的划分结果、至 少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块的中心的值, 得到二维矩阵的每行元素的行权重和每列元素的列权重,其中聚类块中距离聚类块的中心 越远的元素行权重和列权重越小。
[0041] 结合第二方面的第一种可能的实现方式,在第二方面第二种可能的实现方式中, 划分单元包括:第一确定子单元,用于确定N行元素中的每行M个元素与至少一个行类簇中 的每个行类簇中的对应聚类块的中心的加权距离之和,得到至少一个行类簇对应的至少一 个第一加权距离之和;第一划分子单元,用于将二维矩阵的每行元素划分到至少一个第一 加权距离之和中的最小值所对应的行类簇中;第二确定子单元,用于确定M列元素中的每 列N个元素与至少一个列类簇中的每个列类簇中的对应聚类块的中心的加权距离之和,得 到至少一个列类簇对应的至少一个第二加权距离之和;第二划分子单元,用于将二维矩阵 的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中。
[0042] 结合第二方面的第二种可能的实现方式,在第二方面第三种可能的实现方式中, 第一划分子单元具体用于根据以下公式将二维矩阵的每行元素划分到至少一个第一加权 距离之和中的最小值所对应的行类簇中:
[0044]其中,
[0046]其中,i= 1,2, . . .,M,j=l,2, . . .,N,Ui,g=l表示第i行的元素属于第g行类簇,Ui,s = 0表示第i行元素不属于第s行类簇,K为至少一个行类簇的个数,L为至少一个列 类簇的个数,g=l,2, . . .,K,s=l,2, . . .,K,Jte)表示第i行元素与第s个行类簇所对应的第 一加权距离之和,表示第i行元素与第g个行类簇所对应的第一加权距离之和,为 至少一个第一加权距离之和中的最小值,i)# =1表示上次迭代中第j列的元素属于第h个 列类簇,= 〇表示上次迭代中第j列的元素不属于第h个列类簇,〗q表示上次迭代中第j列元素中属于第s行类簇的元素的列权重,Egj表示上次迭代中第j列元素中属于第g行 类簇的元素的列权重,&表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重, d(?)为欧式距离,^^为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心的值,&A 为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值;第二划分子单元具体用 于根据以下公式确定将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小 值所对应的列类簇中:
[0048]其中,
[0050] 其中,Vj,h=l表示第该j列的元素属于第h列类簇,Vj,h=0表示该第j列不属于第t列类簇,h=l,2,. ..,L,t=l,2,. . .,L,J'&)表示第j列元素与第h个列类簇所对应的第二 加权距离之和,J'w表示第j列元素与第t个列类簇所对应的第二加权距离之和,= 1 表示上次迭代中第i行的元素属于第g个行类簇,= 〇表示上次迭代中第i行的元素不 属于第g个行类簇,I;表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,t 表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d( ?)为欧式距离,&,为 上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
[0051] 结合第二方面的第一至第三种可能的实现方式中的任一种可能的实现方式,在第 二方面第四种可能的实现方式中,第一计算单元包括:计算子单元,用于计算至少一个行类 簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的 基础上的加权平均值;确定子单元,用于将加权平均值作为每个聚类块的中心的值。
[0052] 结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,计算子单 元具体用于根据以下公式计算至少一个行类簇和至少一个列类簇组成的聚类块中的每个 聚类块中的元素在各自的行权重和列权重的基础上的加权平均值:
[0054] 其中,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,表示第i行与第j列所对应元素,I;表示上次迭代中第j列元素中属于第g个行类簇的元素的列权 重,I表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
[0055] 结合第二方面的第一至第五种可能的实现方式中的任一种可能的实现方式,在第 二方面第六种可能的实现方式中,第二计算单元包括:第三确定子单元,用于确定二维矩阵 的每行元素的行权重,使得行权重与每行元素与每行元素所属聚类块的中心的距离成反相 关;第四确定子单元,用于确定二维矩阵的每列元素的列权重,使得列权重与每列元素与每 列元素所属聚类块的中心的距离成反相关。
[0056] 结合第二方面的第六种可能的实现方式,在第二方面第七种可能的实现方式中 , 第三确定子单元具体用于根据以下公式计算二维矩阵的每行元素的行权重:
[0058]其中,
[0060] 其中,rh,,表示第i行元素中属于第h个列类簇的元素的行权重,U表示上次迭 代中第g行类簇和第h列类簇组成的聚类块的中心的值,i' =1,2,...,M,第四确定子单元 具体用于根据以下公式计算二维矩阵的每列元素的列权重:
[0062]其中,
[0064]其中,cg,j表示第j列元素中属于第g行类簇的元素的列权重,j' =1,2, . . .,N。[0065] 结合第二方面的第一至第七种可能的实现方式中的任一种可能的实现方式,在第 二方面第八种可能的实现方式中,该设备还包括:初始单元,用于确定二维矩阵的N*M个元 素的行权重和列权重的初始值;初始单元还用于在行方向上将N行元素划分到至少一个初 始行类簇中,在列方向将N列元素划分到至少一个初始列类簇中;初始单元还用于根据至 少一个初始行类簇的划分结果、至少一个初始列类簇的划分结果以及至少一个初始行类簇 和至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,得到至少一 个初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值,其中,在首 次迭代过程中,上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重分 别为至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,上次迭代 过程得到的聚类块的中心的值为至少一个初始行类簇和至少一个初始列类簇组成的聚类 块中每个聚类块的中心的值。
[0066] 结合第二方面的第一至第八种可能的实现方式中的任一种可能的实现方式,在第 二方面第九种可能的实现方式中,该设备还包括;停止单元,用于在两次迭代的至少一个行 类簇的划分结果和至少一个列类簇的划分结果相同时,停止迭代过程;或者,停止单元用于 在两次迭代的目标函数的值的变化小于设定的阈值时,停止迭代过程,其中目标函数用于 求解二维矩阵的最优化问题。
[0067] 结合第二方面的第九种可能的实现方式,在第二方面第十种可能的实现方式中, 目标函数为;
[0068]
[0069] 目标函数的限制条件为:
[0071] 其中,K为至少一个行类簇的个数,L为至少一个列类簇的个数,U为大小为N*K的 行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列属于 哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的中心值,R为大小为L*N的矩 阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,入为参数,用来调整行权重 的分布,n为参数,用来约束列权重的分布。
[0072] 结合第二方面的第一至第十种可能的实现方式中的任一种可能的实现方式,在第 二方面第十一种可能的实现方式中,该设备还包括:重排单元,用于将二维矩阵的每个元 素所对应的行权重按照至少一个行类簇的划分结果重排列,将二维矩阵的每个元素所对应 的列权重按照至少一个列类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和 至少一个列类簇的划分结果;和/或,重排单元用于将二维矩阵的每个元素按照行至少一 个行类簇的划分结果重排列,将二维矩阵的每个元素按照至少一个行类簇的划分结果重排 列,以便分析至少一个行类簇的划分结果和至少一个列类簇的划分结果。
[0073] 基于上述技术方案,在对待聚类的数据的元素进行聚类的过程中,自动更新元素 的权重进行类簇的划分,由于类簇中距离类簇的中心越远的元素的权重越小,而通常噪声 信息到类簇的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权 重,从而过滤噪声信息,提高聚类效果。
【附图说明】
[0074] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使 用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。
[0075] 图1是根据本发明一个实施例的协同聚类方法的示意性流程图。
[0076] 图2是根据本发明另一实施例的协同聚类方法的示意性流程图。
[0077] 图3是根据本发明再一实施例的协同聚类方法的示意性流程图。
[0078] 图4是根据本发明一个实施例的协同聚类的设备示意框图。
[0079] 图5是根据本发明另一实施例的协同聚类的设备示意框图。
[0080] 图6是根据本发明再一实施例的协同聚类的设备示意框图。
[0081] 图7是根据本发明再一实施例的协同聚类的设备示意框图。
[0082] 图8是根据本发明再一实施例的协同聚类的设备示意框图。
[0083] 图9是根据本发明再一实施例的协同聚类的设备示意框图。
【具体实施方式】
[0084] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发 明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实 施例,都应属于本发明保护的范围。
[0085] 图1是根据本发明一个实施例的一种协同聚类方法的示意性流程图。如图1所示, 该方法包括如下内容。
[0086] 迭代执行下列过程,以对待聚类的数据进行协同聚类:
[0087] 110,根据上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过 程得到的类簇中心的值,将待聚类的数据的每个元素划分到至少一个类簇中。
[0088] 120,根据待聚类的数据的每个元素的类簇的划分结果和待聚类的数据的每个元 素的权重,更新待聚类的数据的类簇中心的值。
[0089] 130,根据更新后的待聚类的数据的类簇中心的值,更新待聚类的数据的每个元素 的权重,其中,类簇中距离所述类簇的中心越远的元素的权重越小。
[0090] 因此,本发明实施例在对待聚类的数据的元素进行聚类的过程中,自动更新元素 的权重进行类簇的划分,由于类簇中距离类簇的中心越远的元素的权重越小,而通常噪声 信息到类簇的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权 重,从而过滤噪声信息,提高聚类效果。
[0091] 应理解,本发明实施例中的待聚类的数据可以为可转化为二维数据的多维数据, 也可以为二维数据,对可转化为二维数据的多维数据聚类时可以先将该数据转化为二维数 据之后再进行聚类。
[0092] 应注意,对数据聚类时,本发明实施例可以在行方向和列方向同时协同聚类,还可 以先固定一个方向,在另一个方向上采用本发明实施例的方法进行聚类,也就是说在一个 方向上固定,在另一个方向上采用本发明迭代的方法在聚类时对数据采用不同的权重,能 够有效地增大有效信息的权重,降低噪声信息的权重,过滤噪声信息,提高聚类效果。例如 在行方向上固定,仅在列方向上采用本发明实施例的方法,或在列方向上固定,仅在行方向 上采用本发明实施例的方法,本发明实施例并不对此做限定
[0093] 应理解,步骤110中类簇中心的值可以为多个也可以为一个,当在一个方向上聚 类时,本发明实施例中的类簇中心值为一个值。当在行方向和列方向同时聚类时,本发明实 施例中的类簇中心值为多个值,具体地,在行方向和列方向同时聚类后将待聚类数据聚类 成多个行类簇和多个列类簇,多个行类簇和多个列类簇交叉形成多个聚类块,每一个行类 簇的类簇中心值包括对应于该行类簇的多个聚类块的聚类块的中心的值。每一个列类簇的 类簇中心值包括对应于该列类簇的多个聚类块的聚类块的中心的值。
[0094] 下面结合图2的实施例具体描述待聚类的数据为二维数据的情形。对于待聚类的 数据为多维数据时,可以将该多维数据转化为二维数据,同样可以采用图2的实施例的方 法,本发明实施例并不对此做限定。
[0095] 图2是根据本发明一个实施例的一种协同聚类方法的示意性流程图。如图2所示, 该方法包括如下内容。
[0096] 210,确定待聚类的数据,数据为N行、M列的二维矩阵,二维矩阵包括N*M个元素。
[0097] 换句话说,二维矩阵的元素的值可以表示不同用户对不同项目或对象的行为产生 的数据,例如,不同观众对不同电影的评分,不同网络用户对不同网页的点击次数等等。
[0098] 执行下列步骤220至240的迭代过程,以对待聚类的数据进行协同聚类。
[0099] 220,根据上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权 重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行 类簇中,在列方向将M列元素划分到至少一个列类簇中。
[0100] 例如,在每次迭代过程中,可以根据上次迭代过程得到的二维矩阵的每行元素的 行权重和每列元素的列权重以及上次迭代过程得到的至少一个行类簇和至少一个列类簇 组成的聚类块的中心的值,确定所述每行元素到每个行类簇的聚类块的中心的加权距离和 每列元素到每个列类簇的聚类块的中心的加权距离。在每次迭代过程中,可以根据每行元 素到每个行类簇的聚类块的中心的加权距离,在行方向上将N行元素划分到至少一个行类 簇中,并根据每列元素到每个列类簇的聚类块的中心的加权距离,在列方向将M列元素划 分到至少一个列类簇中。
[0101] 230,根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行 类簇和至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对每个聚类 块的元素进行加权平均,得到每个聚类块的中心的值。
[0102] 240,根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行 类簇和至少一个列类簇组成的聚类块的中心的值,得到二维矩阵的每行元素的行权重和每 列元素的列权重,其中聚类块中距离聚类块的中心越远的元素行权重和列权重越小。
[0103] 例如,聚类块中的元素的行权重和列权重与该元素到聚类块的中心的距离反相关 或成反比。
[0104] 具体地说,本发明实施例在聚类过程中首先设定二维矩阵的元素的初始的行权重 和列权重以及行类簇和列类簇,之后进行多次迭代优化,对二维矩阵的行、列两个方向自动 更新元素的行权重和列权重,并根据更新的行权重和列权重对二维矩阵的元素进行协同聚 类获得更新的行类簇和列类簇,并计算最优化问题,在最优化问题的目标函数收敛时,停止 迭代过程,获得最终的聚类结果。
[0105] 根据本发明的实施例,在对二维矩阵的元素进行聚类的过程中,根据二维矩阵的 元素的自动更新的权重进行行类簇和列类簇的划分,由于聚类块中距离聚类块的中心越远 的元素行权重和列权重越小,而通常噪声信息到聚类块的中心的距离较远,因此,经过多次 迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
[0106] 应理解,本发明实施例中的出现的M、N、K和L均为正整数。
[0107] 应理解,本发明实施例还可以通过设定一定的迭代次数,迭代完一定的迭代次数 后停止迭代,通过多次迭代,能够有效地增大有效信息的权重,降低噪声信息的权重,过滤 噪声信息,提高聚类效果。
[0108] 应理解,本发明实施例中的聚类例如可以是对数据的元素添加标识,该标识指示 数据的元素属于哪一个行类簇和哪一个列类簇,还应理解,本发明实施例中的行类簇的个 数和列类簇的个数可以是不变的,与初始设定的行类簇和列类簇的个数相同,并且,每个行 类簇包括至少一行,每个列类簇包括至少一列。
[0109]应理解,本发明实施例可以在行方向和列方向同时协同聚类,还可以先固定一个 方向,在另一个方向上采用本发明实施例的方法进行聚类,也就是说在一个方向上固定,在 另一个方向上采用本发明迭代的方法在聚类时对数据采用不同的权重,能够有效地增大有 效信息的权重,降低噪声信息的权重,过滤噪声信息,提高聚类效果。例如在行方向上固定, 仅在列方向上采用本发明实施例的方法,或在列方向上固定,仅在行方向上采用本发明实 施例的方法,本发明实施例并不对此做限定。
[0110] 可选地,作为另一实施例,步骤110中,待聚类的数据还可以为能够转化为二维矩 阵的高维数据,例如,对于一组用户电影评分数据集来说,由于考虑用户的年龄,性别,所属 地区等不同,此电影评分数据可以看为一个高维数据,这里可以仅考虑一个因素,例如,基 于年龄或性别将此高维数据转换为二位数据,并利用本发明实施例方法来对电影评分数据 集聚类。
[0111] 应理解,本发明实施例中的数据为元素可以为连续值或可以当作连续值来进行处 理的数据。
[0112] 可选地,在步骤220,在行方向上将N行元素划分到至少一个行类簇中包括:确定N行元素中的每行M个元素与至少一个行类簇中的每个行类簇中的对应聚类块的中心的加 权距离之和,得到所述至少一个行类簇对应的至少一个第一加权距离之和;将二维矩阵的 每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中。
[0113]换句话说,针对每行的M个元素中的每个元素,计算该元素与每个行类簇的多个 聚类块中与该元素对应的聚类块的中心的加权距离,即计算该元素对应的加权距离时,将 该元素乘以该元素的行权重和列权重,得到每行的M个元素相对于每个行类簇的M个加权 距离,并且将每行的M个元素相对于每个行类簇的M个加权距离相加,得到每行的M个元素 相对于每个行类簇的加权距离之和,其中加权距离之和的个数与行类簇的个数相同。针对 每行的M个元素,找到多个行类簇对应的多个加权距离之和中的最小值,并将该行划分到 与该最小值对应的行类簇中。
[0114] 具体地,根据以下公式确定将二维矩阵的每行元素划分到至少一个第一加权距离 之和中的最小值所对应的行类簇中:
[0116]其中,
[0118] 其中,i= 1,2, . . .,M,j=l,2, . . .,N,Ui,g=l表示第i行的元素属于第g行类簇, Ui,s = 0表示第i行元素不属于第s行类簇,K为至少一个行类簇的个数,L为至少一个列 类簇的个数,g=l,2, . . .,K,s=l,2, . . .,K,Jte)表示第i行元素与第s个行类簇所对应的第 一加权距离之和,J(g)表示第i行元素与第g个行类簇所对应的第一加权距离之和,J(g)为 至少一个第一加权距离之和中的最小值,i)# =1表示上次迭代中第j列的元素属于第h个 列类簇,=〇表示上次迭代中第j列的元素不属于第h个列类簇,之,表示上次迭代中第 j列元素中属于第s行类簇的元素的列权重,表示上次迭代中第j列元素中属于第g行 类簇的元素的列权重,I表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重, d( ?)为欧式距离,50为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心值, 为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心值。
[0119] 在步骤220中,在列方向将M列元素划分到至少一个列类簇中,包括:确定M列元 素中的每列N个元素与至少一个列类簇中的每个列类簇中的对应聚类块的中心值的加权 距离之和,得到至少一个列类簇对应的至少一个第二加权距离之和;将二维矩阵的每列元 素划分到至少一个第二加权距离之和中的最小值所对应的列类簇中。
[0120] 换句话说,针对每行的N个元素中的每个元素,计算该元素与每个列类簇的多个 聚类块中与该元素对应的聚类块中心的加权距离,即计算该元素对应的加权距离时,将该 元素乘以该元素的行权重和列权重,得到每列的N个元素相对于每个列类簇的N个加权距 离,并且将每列的N个元素相对于每每个列类簇的N个加权距离相加,得到每列的N个元素 相对于每个列类簇的加权距离之和,其中加权距离之和的个数与列类簇的个数相同。针对 每列的N个元素,找到多个列类簇对应的多个加权距离之和中的最小值,并将该列划分到 与该最小值对应的列类簇中。
[0121] 具体地,根据以下公式确定将二维矩阵的每列元素划分到至少一个第二加权距离 之和中的最小值所对应的列类簇中:
[0123]其中,
[0125]其中,Vj,h = 1表示第该j列的元素属于第h列类簇,Vj,t = 0表示该第j列不属 于第t列类簇,h=l,2, . . .,L,t=l,2, . . .,L,J' &)表示第j列元素与第h个列类簇所对 应的第二加权距离之和,J'w表示第j列元素与第t个列类簇所对应的第二加权距离之 和,= 1表示上次迭代中第i行的元素属于第g个行类簇,= 〇表示上次迭代中第i行 的元素不属于第g个行类簇,I;表示上次迭代中第j列元素中属于第g行类簇的元素的列 权重,^表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d( ?)为欧式距 离,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
[0126] 在步骤230,根据至少一个行类簇和至少一个列类簇的划分的结果以及二维矩阵 的每行元素的行权重和每列元素的列权重,得到至少一个行类簇和至少一个列类簇组成的 聚类块的中心值,包括:计算至少一个行类簇和所述至少一个列类簇组成的聚类块中的每 个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值;将加权平均值作为聚 类块的中心的值。
[0127] 换句话说,依据划分的至少一个行类簇和至少一个列类簇,将得到多个聚类块,例 如,待聚类的数据将至少一个行类簇的个数化为K,至少一个列类簇的个数化为L,则该K个 行类簇和L个类簇将待聚类数据划分为K*L个聚类块,对于每一个聚类块根据所包含的元 素及元素的行权重和列权重计算每个聚类块的中心值。也就是计算每一个聚类块中的元素 在各自的行权重和列权重的基础上的平均值。即将聚类块中的元素在各自的行权重和列权 重的基础上相加然后除以每一聚类块中的元素的个数所得到的值。
[0128] 具体地,根据以下公式计算至少一个行类簇和所述至少一个列类簇组成的聚类块 中的每个聚类块中的元素在各自的行权重和列权重的基础上的平均值:
[0130]其中,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,表示第i行与第j列所对应元素,I;表示上次迭代中第j列元素中属于第g个行类簇的元素的列权 重, I表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
[0131] 在步骤240中,根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和 至少一个行类簇和至少一个列类簇组成的聚类块的中心值,得到二维矩阵的每行元素的行 权重和每列元素的列权重。换句话说,步骤140包括行权重的确定和列权重的确定,其中, 行权重的确定包括:确定二维矩阵的每行元素的行权重,使得行权重与元素所属聚类块的 中心值的距离成反相关。
[0132] 换句话说,每行元素的行权重的大小与每个元素与所属聚类块中心的距离成反相 关,也就是说距离越大行权重越小,距离越小行权重越大,通常情况下噪声数据离聚类块中 心的距离相对较大,所以通过上述处理,能够有效降低噪声数据的权重,进而过滤噪声信 息,得到好的聚类效果。
[0133] 具体地,根据以下公式计算二维矩阵的每行元素的行权重:
[0135] 其中
rh,i表示第i行元素中属于第h个列类簇 的元素的行权重,a表示上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值, i' =1,2, ???,M〇
[0136] 列权重的确定包括:确定二维矩阵的每列元素的列权重,使得列权重与元素所属 聚类块的中心值的距离成反相关。
[0137] 换句话说,每列元素的列权重的大小与每个元素与所属聚类块中心的距离成反相 关,也就是说距离越大列权重越小,距离越小列权重越大,通常情况下噪声数据离聚类块中 心的距离相对较大,所以通过上述处理,能够有效降低噪声数据的权重,进而过滤噪声信 息,得到好的聚类效果。
[0138] 具体地,确定二维矩阵的每列元素的列权重,包括:
[0139] 根据以下公式计算二维矩阵的每列元素的列权重:
[0141] 其中:
,(^表示第j列元素中属于第g行类簇的元 素的列权重,j' =1,2,...,N。
[0142] 可选地,作为另一实施例,在迭代过程中的首次迭代过程之前,还包括:确定二维 矩阵的N*M个元素的行权重和列权重的初始值;在行方向上将N行元素划分到至少一个初 始行类簇中,在列方向将N列元素划分到至少一个初始列类簇中;根据至少一个初始行类 簇的划分结果、至少一个初始列类簇的划分结果以及至少一个初始行类簇和所述至少一个 初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,得到至少一个初始行类 簇和所述至少一个初始列类簇组成的聚类块中每个聚类块的中心的值,其中在首次迭代过 程中,上次迭代过程得到的二维矩阵的每行元素的行权重和每列元素的列权重分别为至少 一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重;在首次迭代过程 中,上次迭代过程得到的聚类块的中心的值为所述至少一个初始行类簇和至少一个初始列 类簇组成的聚类块中每个聚类块的中心的值。
[0143] 例如,给二维矩阵的元素设置相同的行权重和相同的列权重;并根据经验将行和 列划分为若干个行类簇和列类簇,然后根据上述初始设定值计算每个聚类块的中心的初始 值。
[0144] 具体地,为每个元素的行权重设置相同的初始值,为每个元素的列权重设置相同 的初始值,例如,在数据为N行M列的二维矩阵时,设置行权重的初始值为1 /N,设置列权 重的初始值为1 /M。然后,将行随机的分配到行类簇中,将列随机的分配到列类簇中。行 类簇的个数和列类簇的个数根据经验而定,例如,将二维矩阵的行分为K个行类簇,将二维 矩阵的列分为L个列类簇。根据初始分割的行类簇和列类簇,得到多个聚类块,例如,K*L个 聚类块,并根据初始行权重和列权重计算每个聚类块的中心的初始值。中心的初始值为加 权平均值,也就是将每个聚类块中的元素在各自的行权重和列权重的基础上的平均值。也 即将每个聚类块中的元素在各自的行权重和列权重的基础上相加然后除以该聚类块中的 元素的个数。
[0145] 可选地,作为另一实施例,本发明实施例方法还包括:在两次迭代的至少一个行类 簇的划分结果和至少一个列类簇的划分结果相同时,停止迭代过程;或两次迭代的目标函 数的值的变化小于设定的阈值时,停止迭代过程,其中目标函数用于求解二维矩阵的最优 化问题。
[0146] 换句话说,本发明实施例给通过多次迭代来自动调整权重的聚类方法,并提出了 最优化问题,通过求解该最优化问题来确定是否停止迭代,当最优化问题的目标函数收敛 时,即两次迭代的目标函数值变化小于预先设定的阈值,或两次迭代的至少一个行类簇的 划分结果和至少一个列类簇的划分结果相同时,停止迭代。
[0147] 具体地,本发明实施例的最优化问题的目标函数如下:
[0149] 最优化问题的目标函数的限制条件为:
[0151] 其中,J(U,V,Z,R,C)为目标函数:
表示每个元 素与所属聚类块中心的加权距离之和:
表示行权重的熵
表不列权重的熵:
e {〇, 1},1 <i<N表不每一行属于哪一个行类簇,
Vj,hG{〇, 1},1彡j彡M表示每一列属于哪一个列类簇:
〇〈rh, '1, 1 <h<L表示每个列类簇的N行元素的行权重之和为1
0 < \」〈1,1 <g<K 表示每个行类簇的M列的列权重之和为1 ;K为所述至少一个行类簇的个数,L为所述至少 一个列类簇的个数,U为大小为N*K的行划分矩阵,表示不同行属于哪个行类簇;V为大小为 M*L的列划分矩阵,表示不同列属于哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类 块的均值,R为大小为L*N的矩阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权 重,A为参数,用来调整行权重的分布,n为参数,用来约束列权重的分布。
[0152] 可选地,作为另一实施例,本发明实施例方法还包括:将二维矩阵的每个元素所对 应的行权重按照至少一个行类簇的划分结果重排列,将二维矩阵的每个元素所对应的列权 重按照元素至少一个列类簇的划分结果重排列;将二维矩阵的每个元素按照至少一个行 类簇的划分结果重排列,将二维矩阵的每个元素按照至少一个列类簇的划分结果重排列; 和/或者将二维矩阵的每个元素和每个元素所对应的行列权重按照至少一个行类簇的划 分结果和至少一个列类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少 一个列类簇的划分结果。
[0153] 也就是说,可以按照至少一个行类簇的划分结果和至少一个列类簇的划分结果重 新排列行权重和列权重、元素、或者元素及其行列权重,根据重排列的结果分析至少一个行 类簇的划分结果和至少一个列类簇的划分结果。例如,在对列权重和行权重排列时,可以将 不同的权重值设置不同的颜色,例如颜色深代表权重小,表示相应的数据的意义比较小或 者不太重要,颜色浅代表权重大,表示相应的数据的意义比较大或比较重要;通过观察重排 列后的权重图像,能够直观表现聚类结果,从而能够很好的对聚类效果分析。另外,通过将 聚类结果可视化,能够发现聚类块内部的子空间结构,以便于进一步理解聚类结果。
[0154] 图3是根据本发明另一实施例的一种协同聚类方法的示意性流程图,如图3所示, 该方法包括:
[0155] 301,读入待聚类的数据。
[0156] 具体地,读入的待聚类的数据是二维矩阵,例如,该数据为N行M列的二维矩阵,或 者是可以转化为二维矩阵的高维数据;该二维矩阵中的元素的值可以为连续值或可以当作 连续值进行处理。例如,该二维矩阵的元素可以是不同用户对不同项目的行为产生的数据 或用户对不同项目的偏好。例如,该数据可以通过用户的诸如评分、投票、转发、保存、书签、 标记、评论、点击、页面停留时间、是否购买等行为产生。这些信息均可以数字化,并由一个 二维矩阵来表示。
[0157] 302,对待聚类的数据进行初始化设置。
[0158] 换句话说,在首次迭代之前,需要为待聚类的数据设置初始权重值,例如,为二维 矩阵的元素设置相同的行权重,和相同的列权重,并且可以根据经验将二维矩阵的行和列 划分为若干个行类簇和列类簇。应理解,也可以将二维矩阵的行和列随机划分为若干个行 类簇和列类簇。
[0159] 然后,根据上述初始权重值计算每个聚类块的初始中心值。例如,可以为每个元素 的行权重设置相同的初始值,并为每个元素的列权重设置相同的初始值。例如,在待聚类的 数据为N行M列的二维矩阵的情况下,可以设置每个元素的行权重的初始值为1 /N,每个 元素的列权重的初始值为1 /M。之后,根据经验或随机地将行划分到行类簇中并将列划 分到列类簇中。行类簇的个数和列类簇的个数可以根据经验而定,例如,将行分为K个行类 簇,将列分为L个列类簇。根据初始划分的行类簇和列类簇,得到由这些行类簇和列类簇组 成的多个聚类块,每个聚类块属于一个行类簇和一个列类簇,例如K个行类簇和L个列类簇 可以组成K*L个聚类块,并根据初始权重值计算每个聚类块的初始中心值。该初始中心值 可以为每个元素的值的加权平均值,也就是将每个聚类块中的元素在各自的权重的基础上 的平均值。也即将该聚类块中的元素在各自的权重的基础上相加然后除以该聚类块中的元 素的个数。
[0160] 下面执行步骤303至308的迭代过程,以对待聚类的数据进行协同聚类。
[0161] 303,将待聚类的数据的每一行划分到与其加权距离最近的行类簇。
[0162] 具体地,首先计算待聚类的数据的每一行与每个行类簇的加权距离,并且将每一 行划分到与其加权距离最近的行类簇。例如,计算每一行中的每个元素与每一行类簇的多 个聚类块中与该元素对应的聚类块的中心的距离,计算每一个距离时要乘以每个元素的行 权重和列权重,将该行对应于每一个行类簇的多个距离相加,得到每行的M个元素相对于 每个行类簇的加权距离值之和,其中加权距离值的个数与行类簇的个数相同,找到多个行 类簇对应的多个加权距离之和中的最小值,将行划分到与加权距离最小的值相对应的行类 簇中。例如,待聚类的数据的第P行与第q行类簇的加权距离可以按照如下方法计算:基于 第P行中每个元素的行权重和列权重,计算第P行中的每个元素与该元素所在的列类簇和 第q行类簇组成的聚类块的中心之间的欧氏距离,然后将所有欧式距离之和作为第P行与 第q行类簇的加权距离。
[0163] 具体地,可以根据以下公式确定将待聚类的数据的每一行划分到与其距离最近的 行类簇中:
[0165]其中,
[0167] 其中,i= 1,2, . . .,M,j=l,2, . . .,N,Ui,g=l表示第i行的元素属于第g行类簇, Ui,s = 0表示第i行元素不属于第s行类簇,K为所述至少一个行类簇的个数,L为所述至 少一个列类簇的个数,g=l,2, . . .,K,s=l,2,. . .,K,Jte)表示第i行元素与第s个行类簇所 对应的第一加权距离之和,J(g)表示第i行元素与第g个行类簇所对应的第一加权距离之 和,J(g)为所述至少一个第一个加权距离之和中的最小值表示上次迭代中第j列的 元素属于第h个列类簇,=〇表示上次迭代中第j列的元素不属于第h个列类簇,之;表 示上次迭代中第j列元素中属于第s行类簇的元素的列权重,匕,表示上次迭代中第j列元 素中属于第g行类簇的元素的列权重,&表示上次迭代中第i行元素中属于第h个列类簇 的元素的行权重,d( ?)为欧式距离,1a为上次迭代中第s行类簇和第h列类簇组成的聚类 块的中心值,^^为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心值。
[0168] 具体地,本发明实施例中的步骤303,可参见图3中的步骤320,为避免重复,这里 不再赘述。
[0169] 304,将待聚类的数据的每一列划分到与其加权距离最近的列类簇。
[0170] 具体地,首先计算待聚类的数据的每一列与每个列类簇的加权距离,并且将每一 列划分到与其加权距离最近的列类簇。例如,计算每一列中的每个元素与每一列类簇的多 个聚类块中与该元素对应的聚类块的中心的距离,计算每一个距离时要乘以每个元素的行 权重和列权重,将该列对应于每一个列类簇的多个距离相加,得到每列的N个元素相对于 每个列类簇的加权距离值之和,其中加权距离值的个数与列类簇的个数相同,找到多个行 类簇对应的多个加权距离之和中的最小值,将列划分到与加权距离最小的值相对于的列类 簇中。例如,待聚类的数据的第P列与第q列类簇的加权距离可以按照如下方法计算:基于 第P列中每个元素的行权重和列权重,计算第P列中的每个元素与该元素所在的行类簇和 第q列类簇组成的聚类块的中心之间的欧氏距离,然后将所有欧式距离之和作为第P列与 第q列类簇的加权距离。
[0171] 具体地,可以根据以下公式将待聚类的数据的每一列划分到与其距离最近的列类 簇中:
[0172]
[0173]其中,
[0175] 其中,Vj,h=1表示第该j列的元素属于第h列类簇,Vj,t=0表示该第j列不属 于第t列类簇,h=l,2,. . .,L,t=l,2,. . .,L,J'&)表示第j列元素与第h个列类簇所对 应的第二加权距离之和,J'w表示第j列元素与第t个列类簇所对应的第二加权距离之 和,= 1表示上次迭代中第i行的元素属于第g个行类簇,= 0表示上次迭代中第i行 的元素不属于第g个行类簇,I;表示上次迭代中第j列元素中属于第g行类簇的元素的列 权重,t表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d( ?)为欧式距 离,&,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
[0176] 具体地,本发明实施例中的步骤304,可参见图2中的步骤220,为避免重复,这里 不再赘述。
[0177] 305,计算聚类块的中心值。
[0178] 具体地,根据本次迭代过程中得到的行类簇和列类簇的划分结果,和上次迭代过 程中确定的行权重和列权重,计算由行类簇和列类簇的划分结果确定的多个聚类块的中心 的值,也就是说,根据至少一个行类簇和至少一个列类簇的划分结果和二维矩阵的每个元 素的行权重和列权重,得到至少一个行类簇和至少一个列类簇组成的聚类块的中心值。
[0179] 例如,依据划分的行类簇和列类簇,得到多个聚类块,如为K*L个聚类块,根据每 个聚类块中的元素的行权重和列权重计算每个聚类块的中心值。也就是将每一个聚类块中 的元素在各自的权重的基础上的加权平均值,即将聚类块中的元素在各自的行权重和列权 重的基础上相加然后除以每一聚类块中的元素的个数所得到的值。
[0180] 具体地,可以根据以下公式计算计算聚类块的中心值:
[0182] 其中,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,表示第i 行与第j列所对应元素,I;表示上次迭代中第j列元素中属于第g个行类簇的元素的列权 重,I表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
[0183] 具体地,本发明实施例中的步骤305,可参见图2中的步骤230,为避免重复,这里 不再赘述。
[0184] 306,计算行权重。
[0185] 具体地,根据本次迭代的行类簇和列类簇的划分结果,确定二维矩阵的每行元素 的行权重,使得每个元素的行权重与该元素所属聚类块的中心的距离成反相关。也就是说 距离越大行权重越小,距离越小行权重越大,通常情况下噪声数据离聚类块中心的距离相 对较大,所以通过上述处理,能够有效降低噪声数据的权重,进而过滤噪声信息,得到好的 聚类效果。
[0186] 应理解,对于每一行在列方向上分为若干段,例如分为L段,在每一段上的兀素的 行权重是相同的。换句话说,每个聚类块中的每行元素的行权重是相同的。
[0187] 具体地,可以根据以下公式计算行权重:
[0189] 其中,
,rh,i表示第i行元素中属于第h个列类簇 的元素的行权重,a表示上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值,i' =1,2,??? ,M。
[0190] 具体地,本发明实施例中的步骤306,可参见图2中的步骤240,为避免重复,这里 不再赘述。
[0191] 307,计算列权重。
[0192] 具体地,根据本次迭代的行列类簇的划分,确定二维矩阵的每列元素的列权重,使 得列权重与元素所属聚类块的中心值的距离成反相关。也就是说距离越大列权重越小,距 离越小列权重越大,通常情况下噪声数据离聚类块中心的距离相对较大,所以通过上述处 理,能够有效降低噪声数据的权重,进而过滤噪声信息,得到好的聚类效果。
[0193] 应理解,对于每一列在列方向上分为若干段,例如分为K段,在每一段上的兀素的 列权重是相同的。换句话说,每个聚类块中的每列元素的列权重是相同的。
[0194] 具体地,可以根据以下公式计算列权重:
[0196] 其中
,cgd表示第j列元素中属于第g行类簇的元 素的列权重,j' =1,2,...,N。
[0197] 具体地,本发明实施例中的步骤307,可参见图2中的步骤240,为避免重复,这里 不再赘述。
[0198] 308,判断是否收敛。如果是,执行步骤309;如果不是,执行步骤303。
[0199] 具体地,判断本次迭代与前一次迭代的行和列的聚类结果或划分结果是否发生变 化,如果行和列的聚类结果或划分结果没有发生变化,则执行步骤309 ;如果不是,则执行 步骤303。可替代地,判断两次迭代的目标函数值J的变化是否小于预先设定的阈值,如果 两次迭代目标函数值的变化小于预先设定的阈值,则说明收敛,执行步骤309 ;否则,也就 是如果行和列的聚类发生变化或者两次迭代目标函数值的变化大于预先设定的阈值,则说 明不收敛,执行步骤303至步骤308,也就是继续迭代过程,直到两次迭代的目标函数值J的 变化小于预先设定的阈值或者目标函数收敛。
[0200] 具体地,本发明实施例的最优化问题的目标函数可以如下:
[0202] 最优化问题的目标函数的限制条件可以为:
[0204]其中,J(U,V,Z,R,C)为目标函数
1表示每个元 素与所属聚类块中心的加权距离之和;
表示行权重的熵 表不列权重的熵
_A,gG{〇, 1},1 <i<N表不每一行属于哪一个行类簇,
Vj,hG{〇, 1},1彡j彡M表示每一列属于哪一个列类簇,
,〇〈rh, '1, 1 <h<L表示每个列类簇的N行元素的行权重之和为1,
0<cgjJ<l,l^g^K 表示每个行类簇的M列的列权重之和为1 ;K为所述至少一个行类簇的个数,L为所述至少 一个列类簇的个数,U为大小为N*K的行划分矩阵,表示不同行属于哪个行类簇;V为大小为 M*L的列划分矩阵,表示不同列属于哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类 块的均值,R为大小为L*N的矩阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权 重,A为参数,用来调整行权重的分布,n为参数,用来约束列权重的分布。
[0205] 具体地,本发明实施例中的步骤307,可参见图2中的方法,为避免重复,这里不再 赘述。
[0206] 309,输出迭代结果。
[0207] 具体地,在迭代收敛时,也就是停止迭代过程后,将最后一次迭代的聚类结果输 出,例如,输出最终的行聚类划分结果和列聚类结果、聚类块的中心值、行权重和列权重。
[0208]因此,根据本发明的实施例,在对二维矩阵的元素进行聚类的过程中,根据二维矩 阵的元素的自动更新的权重进行行类簇和列类簇的划分,由于聚类块中距离聚类块的中心 越远的元素行权重和列权重越小,而通常噪声信息到聚类块的中心的距离较远,因此,经过 多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
[0209] 应注意,图3的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非 要限制本发明实施例的范围。本领域技术人员根据所给出的图1和图2的例子,显然可以 进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
[0210] 应注意,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺 序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0211] 例如,本发明实施例中的行聚类和列聚类没有先后顺序之分,例如,本发明实施例 中的步骤303和步骤304只是示意性的,这两个步骤没有先后顺序,也就是说本发明实施例 中的行划分和列划分没有先后顺序之分,步骤304可以在步骤303之前或之后进行,步骤 303和步骤304还可以同时进行,本发明实施例并不对此做限定。同样地,步骤306和步骤 307只是示意性的,这两个步骤没有先后顺序,也就是说本发明实施例中的行权重和列权重 的计算没有先后顺序之分,步骤307可以在步骤306之前或之后进行,步骤306和步骤307 还可以同时进行,本发明实施例并不对此做限定。
[0212] 可选地,作为另一实施例,本发明实施例方法,还包括:
[0213]310,输出可视化聚类结果。
[0214]换句话说,根据步骤309得到的迭代结果对二维矩阵的元素及其行权重和列权重 进行重排,也就是说,将每个元素所对应的行权重按照至少一个行类簇的划分结果重排列, 将每个元素所对应的列权重按照至少一个列类簇的划分结果重排列;将每个元素按照至少 一个行类簇的划分结果重排列,将每个元素按照至少一个列类簇的划分结果重排列;或者 将每个元素和每个元素所对应的行权重和列权重按照至少一个行类簇的划分结果和至少 一个列类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和所述至少一个列类 簇的划分结果。也就是说可以按照至少一个行类簇的划分结果和至少一个列类簇的划分结 果重新排列行权重和列权重、元素或者元素及其行列权重,根据重排结果分析至少一个行 类簇的划分结果和至少一个列类簇的划分结果。
[0215]例如,在对权重重排列时,可以将不同的权重值设置不同的颜色,例如颜色深代表 权重小,表示相应的数据的意义比较小,颜色浅代表权重大,表示相应的数据的意义比较 大;通过观察重排后的权重图像,可以将算法结果直观的表现,能够很好的对聚类效果分 析;并且通过将聚类结果可视化,可以发现聚类块内部的子空间结构。
[0216]应注意,本发明实施例可以在行方向和列方向上同时协同聚类,还可以先固定一 个方向,在另一个方向上采用本发明实施例的方法进行聚类,也就是说在一个方向上固定, 在另一个方向上采用本发明迭代的方法在聚类时对数据采用不同的权重,能够有效地增大 有效信息的权重,降低噪声信息的权重,过滤噪声信息,提高聚类效果。例如在行方向上固 定,仅在列方向上采用本发明实施例的方法,或在列方向上固定,仅在行方向上采用本发明 实施例的方法,本发明实施例并不对此做限定。
[0217]下面以采用本发明实施例的方法对一组用户电影评分数据集聚类为例进行说明。 例如,一组用户电影评分数据集包含6040位用户对3900部电影的1,000, 000个评分,可以 用二维矩阵来表示不同用户对不同电影的评分。二维矩阵的行方向代表用户,二维矩阵的 列方向代表电影,二维矩阵的元素代表用户给电影的评分,评分值可以设置为从1到5的5 个值,如果没有评分,则评分置设置为0。由于原始评分数据没有任何规律,采用本发明实施 例的方法对二维矩阵表示的数据进行聚类分析,可以在两个方向上同时聚类,例如,对该二 维矩阵表示的数据应用本发明实施例提出的方法将其聚类为6个行类簇和5个列类簇,也 就是说在行方向上将6040行用户分为6类,在列方向上将3900列电影分为5类,按照本发 明实施例的方法设值元素初始的行权重为1 / 6040,列权重为1 / 3900,并设置初始的行 类簇为6,列类簇为5,初始将行分到6个行类簇中,将列分到5个列类簇中,之后通过求解 目标函数根据初始设置进行迭代,在收敛时或两次迭代的结果相同时停止迭代,并按照聚 类结果将属于同一类别的用户和电影对应的分数重排列,也就是说将元素按照聚类的结果 重排列。这样可以将没有规律的数据进行聚类,得出明显的分组结构。
[0218] 采用本发明实施例的方法对该用户电影评分数据聚类分析,还可以先固定一个方 向,在另一个方向上进行聚类,例如,在行方向上将用户固定为7个年龄组,也就是说在行 方向上根据用户的年龄的不同固定的分为7个类簇,然后在列方向上使用本专利提出的方 法将电影聚为5个电影组,也就是在列方向上分为5个类簇,然后按照本发明实施例方法进 行聚类,并按照用户分组和电影聚类结果将属于同一类别的用户和电影排列到一起得到数 据的重排结果。例如,根据重排结果,可以看到,有些分组里的电影不被所有年龄段的用户 喜欢;有的分组里的电影,用户年龄越大越喜欢;而有的分组里的电影,用户年龄越小越喜 欢。
[0219] 上文中结合图1至图3,详细描述了根据本发明实施例的协同聚类的方法。下面将 给出根据本发明实施例的协同聚类的设备的具体实施例,具体将结合图4至图9描述根据 本发明实施例的协同聚类的设备。
[0220] 图4是根据本发明一个实施例的协同聚类的设备示意框图。图4所示的协同聚类 的设备400包括:划分单元410、第一计算单元420和第二计算单元430。
[0221] 具体地,划分单元410用于根据上次迭代过程得到的待聚类的数据的每个元素的 权重以及上次迭代过程得到的类簇中心的值,将待聚类的数据的每个元素划分到至少一个 类簇中;第一计算单元420用于根据待聚类的数据的每个元素的类簇的划分结果和待聚类 的数据的每个元素的权重,更新待聚类的数据的类簇中心的值;第二计算单元430用于根 据更新后的待聚类的数据的类簇中心的值,更新待聚类的数据的每个元素的权重,其中,类 簇中距离类簇的中心越远的元素的权重越小。
[0222] 因此,本发明实施例在对待聚类的数据的元素进行聚类的过程中,自动更新元素 的权重进行类簇的划分,由于类簇中距离类簇的中心越远的元素的权重越小,而通常噪声 信息到类簇的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息的权 重,从而过滤噪声信息,提高聚类效果。
[0223] 可选地,作为另一实施例,还包括确定单元,具体的,如图5所示所示的协同聚类 的设备500包括:确定单元510,划分单元520、第一计算单元530和第二计算单元540。
[0224] 本发明实施例图5中的划分单元520能够实现图4中的划分单元410的功能,图5 中的第一计算单元530能够实现图4中的第一计算单元420的功能,图5中的第二计算单 元540能够实现图4中的第二计算单元430的功能。为避免重复,此处省略详细描述。
[0225] 具体地,确定单元510用于确定待聚类的数据,数据为N行、M列的二维矩阵,二维 矩阵包括N*M个元素。划分单元520用于根据上次迭代过程得到的二维矩阵的每行元素的 行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N 行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个列类簇中。第一计 算单元530用于根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个 行类簇和至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对每个聚 类块的元素进行加权平均,得到每个聚类块的中心的值。第二计算单元540用于根据至少 一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类簇和至少一个列类簇 组成的聚类块的中心的值,得到二维矩阵的每行元素的行权重和每列元素的列权重,其中 聚类块中距离聚类块的中心越远的元素行权重和列权重越小。
[0226] 因此,根据本发明的实施例,在对二维矩阵的元素进行聚类的过程中,根据二维矩 阵的元素的自动更新的权重进行行类簇和列类簇的划分,由于聚类块中距离聚类块的中心 越远的元素行权重和列权重越小,而通常噪声信息到聚类块的中心的距离较远,因此,经过 多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
[0227] 图5中的协同聚类的设备500能够实现图1的实施例中的协同聚类的方法,为避 免重复,此处不再详述。
[0228] 可选地,作为另一实施例,划分单元520包括:第一确定子单元521、第一划分子单 元522、第二确定子单元523和第二划分子单元524。
[0229] 具体地,第一确定子单元521用于确定N行元素中的每行M个元素与至少一个行 类簇中的每个行类簇中的对应聚类块的中心的加权距离之和,得到至少一个行类簇对应的 至少一个第一加权距离之和。第一划分子单元522用于将二维矩阵的每行元素划分到至少 一个第一加权距离之和中的最小值所对应的行类簇中。第二确定子单元523用于确定M列 元素中的每列N个元素与至少一个列类簇中的每个列类簇中的对应聚类块的中心的加权 距离之和,得到至少一个列类簇对应的至少一个第二加权距离之和。第二划分子单元524 用于将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对应的列类 簇中。
[0230] 进一步地,作为另一实施例,第一划分子单元522具体用于根据以下公式将二维 矩阵的每行元素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中:
[0232]其中,
[0234]其中,i= 1,2, . . .,M,j=l,2, . . .,N,Ui,g=l表示第i行的元素属于第g行类簇,ui,s= 0表示第〗行元素不属于第s行类簇,K为至少一个行类簇的个数,L为至少一个列类 簇的个数,g=l,2, . . .,K,s=l,2, . . .,K,Jte)表示第i行元素与第s个行类簇所对应的第一 加权距离之和,表示第i行元素与第g个行类簇所对应的第一加权距离之和,为至 少一个第一加权距离之和中的最小值,= 1表示上次迭代中第j列的元素属于第h个列类 簇,&= 〇表示上次迭代中第j列的元素不属于第h个列类簇,&表示上次迭代中第j列元 素中属于第s行类簇的元素的列权重,I;表示上次迭代中第j列元素中属于第g行类簇的 元素的列权重,&表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重,d( ?) 为欧式距离,之;!为上次迭代中第S行类簇和第h列类簇组成的聚类块的中心的值,匕;!为上 次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值。
[0235] 第二划分子单元524具体用于根据以下公式确定将二维矩阵的每列元素划分到 至少一个第二加权距离之和中的最小值所对应的列类簇中:
[0237]其中,
[0239] 其中,Vj,h = 1表示第该j列的元素属于第h列类簇,Vj,t = 0表示该第j列不属 于第t列类簇,h=l,2, . . .,L,t=l,2, . . .,L,J' &)表示第j列元素与第h个列类簇所对 应的第二加权距离之和,J'w表示第j列元素与第t个列类簇所对应的第二加权距离之 和,= 1表示上次迭代中第i行的元素属于第g个行类簇,= 0表示上次迭代中第i行 的元素不属于第g个行类簇,表示上次迭代中第j列元素中属于第g行类簇的元素的列 权重,I表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d( ?)为欧式距 离,&,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
[0240] 可选地,作为另一实施例,第一计算单元530包括:计算子单元531和第三确定子 单元532。
[0241] 具体地,计算子单元531用于计算至少一个行类簇和至少一个列类簇组成的聚类 块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值。第三确定子 单元532用于将加权平均值作为每个聚类块的中心的值。
[0242] 进一步地,作为另一实施例,计算子单元531具体用于根据以下公式计算至少一 个行类簇和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列 权重的基础上的加权平均值:
[0244] 其中,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,Xq表示第i 行与第j列所对应元素,I;表示上次迭代中第j列元素中属于第g个行类簇的元素的列权 重,&表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
[0245] 可选地,作为另一实施例,第二计算单元540包括:第四确定子单元541和第五确 定子单元542。
[0246] 具体地,第四确定子单元541用于确定二维矩阵的每行元素的行权重,使得行权 重与每行元素与每行元素所属聚类块的中心的距离成反相关。第五确定子单元542用于确 定二维矩阵的每列元素的列权重,使得列权重与每列元素与每列元素所属聚类块的中心的 距离成反相关。
[0247] 进一步地,作为另一实施例,第四确定子单元541具体用于根据以下公式计算二 维矩阵的每行元素的行权重:
[0249]其中,
[0251] 其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,表示上次迭代 中第g行类簇和第h列类簇组成的聚类块的中心的值,i' =1,2, . . .,M。
[0252] 第五确定子单元542具体用于根据以下公式计算二维矩阵的每列元素的列权重:
[0254]其中,
[0256] 其中,cg,t表示第j列元素中属于第g行类簇的元素的列权重,j' =1,2, . . .,N。
[0257] 可选地,作为另一实施例,如图6所示的协同聚类的设备600包括:确定单元610、 划分单元620、第一计算单元630、第二计算单元640和初始单元650。
[0258] 具体地,确定单元610、划分单元620、第一计算单元630和第二计算单元640分别 能够实现图5中的确定单元510、划分单元520、第一计算单元530和第二计算单元540的 功能,为了避免重复,此处不再赘述。初始单元650用于确定二维矩阵的N*M个元素的行权 重和列权重的初始值;初始单元650还用于在行方向上将N行元素划分到至少一个初始行 类簇中,在列方向将N列元素划分到至少一个初始列类簇中;初始单元650还用于根据至少 一个初始行类簇的划分结果、至少一个初始列类簇的划分结果以及至少一个初始行类簇和 至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权重和列权重,得到至少一个 初始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。
[0259] 其中,在首次迭代过程中,上次迭代过程得到的二维矩阵的每行元素的行权重和 每列元素的列权重分别为至少一个初始列类簇组成的聚类块中每个聚类块的元素的行权 重和列权重,上次迭代过程得到的聚类块的中心的值为至少一个初始行类簇和至少一个初 始列类簇组成的聚类块中每个聚类块的中心的值。
[0260] 因此,根据本发明的实施例,在对二维矩阵的元素进行聚类的过程中,根据二维矩 阵的元素的自动更新的权重进行行类簇和列类簇的划分,由于聚类块中距离聚类块的中心 越远的元素行权重和列权重越小,而通常噪声信息到聚类块的中心的距离较远,因此,经过 多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
[0261] 可选地,作为另一实施例,如图7所示的协同聚类的设备700包括;确定单元710、 划分单元720、第一计算单元730、第二计算单元740和停止单元750。
[0262] 具体地,确定单元710、划分单元720、第一计算单元730、第二计算单元740和停止 单元750分别能够实现图5中的确定单元510、划分单元520、第一计算单元530和第二计 算单元540的功能,为了避免重复,此处不再赘述。停止单元750用于在两次迭代的至少一 个行类簇的划分结果和至少一个列类簇的划分结果相同时,停止迭代过程;或者,停止单元 750用于在两次迭代的目标函数的值的变化小于设定的阈值时,停止迭代过程,其中目标函 数用于求解二维矩阵的最优化问题。
[0263] 因此,根据本发明的实施例,在对二维矩阵的元素进行聚类的过程中,根据二维矩 阵的元素的自动更新的权重进行行类簇和列类簇的划分,由于聚类块中距离聚类块的中心 越远的元素行权重和列权重越小,而通常噪声信息到聚类块的中心的距离较远,因此,经过 多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
[0264] 可选地,作为另一实施例,目标函数为;
[0266] 目标函数的限制条件为:
[0268] 其中,K为至少一个行类簇的个数,L为至少一个列类簇的个数,U为大小为N*K的 行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列属于 哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的中心值,R为大小为L*N的矩 阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,入为参数,用来调整行权重 的分布,n为参数,用来约束列权重的分布。
[0269] 可选地,作为另一实施例,图7所示的协同聚类的设备700还可以包括初始单元 (图为示),该初始单元能够实现图6中初始单元650的功能,为了避免重复,此处不再赘 述。
[0270] 可选地,作为另一实施例,如图8所示的协同聚类的设备800包括:确定单元810、 划分单元820、第一计算单元830、第二计算单元840和重排单元850。
[0271] 具体地,确定单元810、划分单元820、第一计算单元830、第二计算单元840分别能 够实现图5中的确定单元510、划分单元520、第一计算单元530和第二计算单元540的功 能,为了避免重复,此处不再赘述。重排单元650用于将二维矩阵的每个元素所对应的行权 重按照至少一个行类簇的划分结果重排列,将二维矩阵的每个元素所对应的列权重按照至 少一个列类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少一个列类簇 的划分结果;和/或,重排单元850用于将二维矩阵的每个元素按照行至少一个行类簇的 划分结果重排列,将二维矩阵的每个元素按照至少一个行类簇的划分结果重排列,以便分 析至少一个行类簇的划分结果和至少一个列类簇的划分结果。
[0272] 因此,根据本发明的实施例,在对二维矩阵的元素进行聚类的过程中,根据二维矩 阵的元素的自动更新的权重进行行类簇和列类簇的划分,由于聚类块中距离聚类块的中心 越远的元素行权重和列权重越小,而通常噪声信息到聚类块的中心的距离较远,因此,经过 多次迭代之后,能够有效地降低噪声信息的权重,从而过滤噪声信息,提高聚类效果。
[0273] 可选地,作为另一实施例,图8所示的协同聚类的设备800还可以包括初始单元 (图为示),该初始单元能够实现图6中初始单元650的功能,为了避免重复,此处不再赘 述。
[0274] 可选地,作为作为另一实施例,图8所示的协同聚类的设备800还可以包括停止单 元(图未示),该停止单元能够实现图7中停止单元750的功能,为了避免重复,此处不再赘 述。
[0275] 图9是根据本发明再一实施例的协同聚类的设备示意框图。图9所示的协同聚类 的设备900包括处理器910、存储器920和总线930。
[0276] 具体地,处理器910用于通过总线930调用存储在存储器920中的代码,根据上次 迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过程得到的类簇中心的值, 将待聚类的数据的每个元素划分到至少一个类簇中;根据待聚类的数据的每个元素的类簇 的划分结果和待聚类的数据的每个元素的权重,更新待聚类的数据的类簇中心的值;根据 更新后的待聚类的数据的类簇中心的值,更新待聚类的数据的每个元素的权重,其中,类簇 中距离所述类簇的中心越远的元素的权重越小。
[0277] 因此,根据本发明的实施例,在对待聚类的数据的元素进行聚类的过程中,自动更 新元素的权重进行类簇的划分,由于类簇中距离类簇的中心越远的元素的权重越小,而通 常噪声信息到类簇的中心的距离较远,因此,经过多次迭代之后,能够有效地降低噪声信息 的权重,从而过滤噪声信息,提高聚类效果。
[0278] 上述本发明实施例揭示的方法可以应用于处理器910中,或者由处理器910实现。 处理器910可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各 步骤可以通过处理器910中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处 理器910可以是通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集 成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、 分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通 用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例 所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬 件及软件模块组合执行完成。软件模块可以位于随机存取存储器(RandomAccessMemory, RAM)、闪存、只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器或者电可擦写可编程 存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器920,处理器910读取 存储器920中的信息,结合其硬件完成上述方法的步骤。
[0279] 协同聚类的设备900能够实现图1的实施例中由编码设备实现的各个过程,为避 免重复,这里不再赘述。
[0280] 可选地,作为另一实施例,处理器910还用于确定待聚类的数据,数据为N行、M列 的二维矩阵,二维矩阵包括N*M个元素;执行下列迭代过程:根据上次迭代过程得到的二维 矩阵的每行元素的行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的 值,在行方向上将N行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个 列类簇中;根据至少一个行类簇的划分结果、至少一个列类簇的划分结果和至少一个行类 簇和至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对每个聚类块 的元素进行加权平均,得到每个聚类块的中心的值;根据至少一个行类簇的划分结果、至少 一个列类簇的划分结果和至少一个行类簇和至少一个列类簇组成的聚类块的中心的值,得 到二维矩阵的每行元素的行权重和每列元素的列权重,其中聚类块中距离聚类块的中心越 远的元素行权重和列权重越小。
[0281] 可选地,作为另一实施例,处理器910还用于确定N行元素中的每行M个元素与至 少一个行类簇中的每个行类簇中的对应聚类块的中心的加权距离之和,得到至少一个行类 簇对应的至少一个第一加权距离之和;将二维矩阵的每行元素划分到至少一个第一加权距 离之和中的最小值所对应的行类簇中;确定M列元素中的每列N个元素与至少一个列类簇 中的每个列类簇中的对应聚类块的中心的加权距离之和,得到至少一个列类簇对应的至少 一个第二加权距离之和;将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最 小值所对应的列类簇中。
[0282] 可选地,作为另一实施例,处理器910还用于根据以下公式将二维矩阵的每行元 素划分到至少一个第一加权距离之和中的最小值所对应的行类簇中:
[0284]其中,
[0286] 其中,i= 1,2, . . .,M,j=l,2, . . .,N,Ui,g=l表示第i行的元素属于第g行类簇, ui,s= 0表示第〗行元素不属于第s行类簇,K为至少一个行类簇的个数,L为至少一个列类 簇的个数,g=l,2, . . .,K,s=l,2, . . .,K,Jte)表示第i行元素与第s个行类簇所对应的第一 加权距离之和,表示第i行元素与第g个行类簇所对应的第一加权距离之和,为至 少一个第一加权距离之和中的最小值=1表示上次迭代中第j列的元素属于第h个列类 簇,&= 〇表示上次迭代中第j列的元素不属于第h个列类簇A;表示上次迭代中第j列元 素中属于第s行类簇的元素的列权重,表示上次迭代中第j列元素中属于第g行类簇的 元素的列权重,I表示上次迭代中第i行元素中属于第h个列类簇的元素的行权重,d( ?) 为欧式距离,之;!为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心的值,为上 次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值。
[0287] 其中,将二维矩阵的每列元素划分到至少一个第二加权距离之和中的最小值所对 应的列类簇中,包括:
[0288] 根据以下公式确定将二维矩阵的每列元素划分到至少一个第二加权距离之和中 的最小值所对应的列类簇中:
[0290]其中,
[0292] 其中,Vj,h = 1表示第该j列的元素属于第h列类簇,Vj,t = 0表示该第j列不属 于第t列类簇,h=l,2,. . .,L,t=l,2,. . .,L,J'&)表示第j列元素与第h个列类簇所对 应的第二加权距离之和,J'w表示第j列元素与第t个列类簇所对应的第二加权距离之 和,=1表示上次迭代中第i行的元素属于第g个行类簇,=〇表示上次迭代中第i行 的元素不属于第g个行类簇,表示上次迭代中第j列元素中属于第g行类簇的元素的列 权重,I表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d( ?)为欧式距 离,&,为上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。
[0293] 可选地,作为另一实施例,处理器910还用于计算至少一个行类簇和至少一个列 类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上的加权平 均值;将加权平均值作为每个聚类块的中心的值。
[0294] 可选地,作为另一实施例,处理器910还用于根据以下公式计算至少一个行类簇 和至少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基 础上的加权平均值:
[0296] 其中,zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,Xq表示第i 行与第j列所对应元素,I;表示上次迭代中第j列元素中属于第g个行类簇的元素的列权 重,&表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。
[0297] 可选地,作为另一实施例,处理器910还用于确定二维矩阵的每行元素的行权重, 使得行权重与每行元素与每行元素所属聚类块的中心的距离成反相关;确定二维矩阵的每 列元素的列权重,使得列权重与每列元素与每列元素所属聚类块的中心的距离成反相关。
[0298] 可选地,作为另一实施例,处理器910还用于根据以下公式计算二维矩阵的每行 元素的行权重:
[0300]其中,
[0302] 其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,表示上次迭 代中第g行类簇和第h列类簇组成的聚类块的中心的值,i' =1,2, . . .,M。
[0303] 确定二维矩阵的每列元素的列权重,包括:
[0304] 根据以下公式计算二维矩阵的每列元素的列权重:
[0306]其中,
[0308] 其中,cg,j表示第j列元素中属于第g行类簇的元素的列权重,j' =1,2, . . .,N。
[0309] 可选地,作为另一实施例,处理器910还用于确定二维矩阵的N*M个元素的行权重 和列权重的初始值;在行方向上将N行元素划分到至少一个初始行类簇中,在列方向将N列 元素划分到至少一个初始列类簇中;根据至少一个初始行类簇的划分结果、至少一个初始 列类簇的划分结果以及至少一个初始行类簇和至少一个初始列类簇组成的聚类块中每个 聚类块的元素的行权重和列权重,得到至少一个初始行类簇和至少一个初始列类簇组成的 聚类块中每个聚类块的中心的值。其中,在首次迭代过程中,上次迭代过程得到的二维矩阵 的每行元素的行权重和每列元素的列权重分别为至少一个初始列类簇组成的聚类块中每 个聚类块的元素的行权重和列权重,上次迭代过程得到的聚类块的中心的值为至少一个初 始行类簇和至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。
[0310] 可选地,作为另一实施例,处理器910还用于在两次迭代的至少一个行类簇的划 分结果和至少一个列类簇的划分结果相同时,停止迭代过程;或者,在两次迭代的目标函数 的值的变化小于设定的阈值时,停止迭代过程,其中目标函数用于求解二维矩阵的最优化 问题。
[0311] 其中目标函数为:
[0312]
[0313]目标函数的限制条件为:
[0315] 其中,K为至少一个行类簇的个数,L为至少一个列类簇的个数,U为大小为N*K的 行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列属于 哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的中心值,R为大小为L*N的矩 阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,入为参数,用来调整行权重 的分布,n为参数,用来约束列权重的分布。
[0316] 可选地,作为另一实施例,处理器910还用于将二维矩阵的每个元素所对应的行 权重按照至少一个行类簇的划分结果重排列,将二维矩阵的每个元素所对应的列权重按照 至少一个列类簇的划分结果重排列,以便分析至少一个行类簇的划分结果和至少一个列类 簇的划分结果;和/或,将二维矩阵的每个元素按照行至少一个行类簇的划分结果重排列, 将二维矩阵的每个元素按照至少一个行类簇的划分结果重排列,以便分析至少一个行类簇 的划分结果和至少一个列类簇的划分结果。
[0317] 应理解,本文中术语"和/或",仅仅是一种描述关联对象的关联关系,表示可以存 在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情 况。另外,本文中字符" / ",一般表示前后关联对象是一种"或"的关系。
[0318] 应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺 序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施 过程构成任何限定。
[0319] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单 元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟 以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员 可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出 本发明的范围。
[0320] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、 装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0321] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以 通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件 可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或 讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦 合或通信连接,可以是电性,机械或其它的形式。
[0322] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0323] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0324] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以 存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说 对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计 算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个 人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。 而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取 存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0325] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【主权项】
1. 一种协同聚类的方法,其特征在于,包括: 迭代执行下列过程,以对待聚类的数据进行协同聚类: 根据上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过程得到的 类簇中心的值,将所述待聚类的数据的每个元素划分到至少一个类簇中; 根据所述待聚类的数据的每个元素的类簇的划分结果和所述待聚类的数据的每个元 素的权重,更新所述待聚类的数据的类簇中心的值; 根据更新后的待聚类的数据的类簇中心的值,更新所述待聚类的数据的每个元素的权 重,其中,所述类簇中距离所述类簇的中心越远的元素的权重越小。2. 根据权利要求1所述的方法,其特征在于,还包括: 确定待聚类的数据,所述数据为N行、M列的二维矩阵,所述二维矩阵包括N*M个元素, 其中,所述根据上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过 程得到的类簇中心的值,将所述待聚类的数据的每个元素划分到至少一个类簇中,包括: 根据上次迭代过程得到的所述二维矩阵的每行元素的行权重和每列元素的列权重以 及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素划分到至少一个行类簇 中,在列方向将M列元素划分到至少一个列类簇中, 其中,所述根据所述待聚类的数据的每个元素的类簇的划分结果和所述待聚类的数据 的每个元素的权重,更新所述待聚类的数据的类簇中心的值,包括: 根据所述至少一个行类簇的划分结果、所述至少一个列类簇的划分结果和所述至少一 个行类簇和所述至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对 所述每个聚类块的元素进行加权平均,得到所述每个聚类块的中心的值, 其中所述根据更新后的待聚类的数据的类簇中心的值,更新所述待聚类的数据的每个 元素的权重,包括: 根据所述至少一个行类簇的划分结果、所述至少一个列类 簇的划分结果和所述至少一 个行类簇和所述至少一个列类簇组成的聚类块的中心的值,得到所述二维矩阵的每行元素 的行权重和每列元素的列权重,其中所述聚类块中距离所述聚类块的中心越远的元素行权 重和列权重越小。3. 根据权利要求2所述的方法,其特征在于,所述根据上次迭代过程得到的所述二维 矩阵的每行元素的行权重和每列元素的列权重以及上次迭代过程得到的聚类块的中心的 值,在行方向上将N行元素划分到至少一个行类簇中,在列方向将M列元素划分到至少一个 列类簇中,包括: 确定所述N行元素中的每行M个元素与所述至少一个行类簇中的每个行类簇中的对应 聚类块的中心的加权距离之和,得到所述至少一个行类簇对应的至少一个第一加权距离之 和; 将所述二维矩阵的每行元素划分到所述至少一个第一加权距离之和中的最小值所对 应的行类簇中; 确定所述M列元素中的每列N个元素与所述至少一个列类簇中的每个列类簇中的对应 聚类块的中心的加权距离之和,得到所述至少一个列类簇对应的至少一个第二加权距离之 和; 将所述二维矩阵的每列元素划分到所述至少一个第二加权距离之和中的最小值所对 应的列类簇中。4.根据权利要求3所述的方法,其特征在于,所述将所述二维矩阵的每行元素划分到 所述至少一个第一加权距离之和中的最小值所对应的行类簇中包括: 根据以下公式将所述二维矩阵的每行元素划分到所述至少一个第一加权距离之和中 的最小值所对应的行类簇中: 其中,其中,i=l,2,. . .,M,j = 1,2,. . .,N,Ui,g=l表示第i行的元素属于第g行类簇,Uis=O 表示第i行元素不属于第s行类簇,K为所述至少一个行类簇的个数,L为所述至少一个列 类簇的个数,g=l,2, . . .,K,s=l,2,. . .,K,J(s)表示第i行元素与第s个行类簇所对应的第 一加权距离之和,J(g)表示第i行元素与第g个行类簇所对应的第一加权距离之和,J(g)为 所述至少一个第一加权距离之和中的最小值,1? =1表示上次迭代中第j列的元素属于第h 个列类簇,=〇表示上次迭代中第j列的元素不属于第h个列类簇,表示上次迭代中 第j列元素中属于第s行类簇的元素的列权重,匕;表示上次迭代中第j列元素中属于第g 行类簇的元素的列权重,I表示上次迭代中第i行元素中属于第h个列类簇的元素的行权 重,d( ·)为欧式距离,U为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心的 值,为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值, 其中,所述将所述二维矩阵的每列元素划分到所述至少一个第二加权距离之和中的最 小值所对应的列类簇中,包括: 根据以下公式确定将二维矩阵的每列元素划分到所述至少一个第二加权距离之和中 的最小值所对应的列类簇中: 其中,其中,vj,h = 1表示第该j列的元素属于第h列类簇,Vj,t = 〇表示该第j列不属于第t 列类簇,h=l,2,. . .,L,t=l,2,. . .,L,J' (h)表示第j列元素与第h个列类簇所对应的第二 加权距离之和,Γ ω表示第j列元素与第t个列类簇所对应的第二加权距离之和,= 1 表示上次迭代中第i行的元素属于第g个行类簇,= O表示上次迭代中第i行的元素不 属于第g个行类簇,I;表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,^ 表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d( ·)为欧式距离,&,为 上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。5. 根据权利要求2至4中的任一项所述的方法,其特征在于,所述根据所述至少一个行 类簇的划分结果、所述至少一个列类簇的划分结果和所述至少一个行类簇和所述至少一个 列类簇组成的聚类块中每个聚类块的元素的行权重和列权重对所述每个聚类块的元素进 行加权平均,得到所述每个聚类块的中心的值,包括: 计算所述至少一个行类簇和所述至少一个列类簇组成的聚类块中的每个聚类块中的 元素在各自的行权重和列权重的基础上的加权平均值; 将所述加权平均值作为所述每个聚类块的中心的值。6. 根据权利要求5所述的方法,其特征在于,所述计算所述至少一个行类簇和所述至 少一个列类簇组成的聚类块中的每个聚类块中的元素在各自的行权重和列权重的基础上 的加权平均值,包括: 根据以下公式计算所述至少一个行类簇和所述至少一个列类簇组成的聚类块中的每 个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值:其中,Zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,Xy表示第i行与 第j列所对应元素,I;表示上次迭代中第j列元素中属于第g个行类簇的元素的列权重, I表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。7. 根据权利要求2至6中任一项所述的方法,其特征在于,所述根据所述至少一个行类 簇的划分结果、所述至少一个列类簇的划分结果和所述至少一个行类簇和所述至少一个列 类簇组成的聚类块的中心的值,得到所述二维矩阵的每行元素的行权重和每列元素的列权 重,包括: 确定所述二维矩阵的每行元素的行权重,使得所述行权重与所述每行元素与所述每行 元素所属聚类块的中心的距离成反相关; 确定所述二维矩阵的每列元素的列权重,使得所述列权重与所述每列元素与所述每列 元素所属聚类块的中心的距离成反相关。8. 根据权利要求7所述的方法,其特征在于,所述确定所述二维矩阵的每行元素的行 权重,包括: 根据以下公式计算所述二维矩阵的每行元素的行权重: 其中,其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,表示上次迭代中第 g行类簇和第h列类簇组成的聚类块的中心的值,i ' =1,2, . . .,M, 所述确定所述二维矩阵的每列元素的列权重,包括: 根据以下公式计算所述二维矩阵的每列元素的列权重: 其中,其中,表示第j列元素中属于第g行类簇的元素的列权重,j' =1,2, ...,N。9. 根据权利要求2至8中任一项所述的方法,其特征在于,在所述迭代过程中的首次迭 代过程之前,还包括: 确定所述二维矩阵的N*M个元素的行权重和列权重的初始值; 在行方向上将N行元素划分到至少一个初始行类簇中,在列方向将N列元素划分到至 少一个初始列类簇中; 根据所述至少一个初始行类簇的划分结果、所述至少一个初始列类簇的划分结果以及 所述至少一个初始行类簇和所述至少一个初始列类簇组成的聚类块中每个聚类块的元素 的行权重和列权重,得到所述至少一个初始行类簇和所述至少一个初始列类簇组成的聚类 块中每个聚类块的中心的值, 其中,在所述首次迭代过程中,所述上次迭代过程得到的二维矩阵的每行元素的行权 重和每列元素的列权重分别为所述至少一个初始列类簇组成的聚类块中每个聚类块的元 素的行权重和列权重,所述上次迭代过程得到的聚类块的中心的值为所述至少一个初始行 类簇和所述至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。10. 根据权利要求2至9中任一项所述的方法,其特征在于,还包括: 在两次迭代的所述至少一个行类簇的划分结果和所述至少一个列类簇的划分结果相 同时,停止所述迭代过程; 或者, 在两次迭代的目标函数的值的变化小于设定的阈值时,停止所述迭代过程,其中所述 目标函数用于求解所述二维矩阵的最优化问题。11. 根据权利要求10所述的方法,其特征在于,所述目标函数为:所述目标函数的限制条件为:其中,K为所述至少一个行类簇的个数,L为所述至少一个列类簇的个数,U为大小为 N*K的行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列 属于哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的中心值,R为大小为L*N的 矩阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,λ为参数,用来调整行权 重的分布,Π 为参数,用来约束列权重的分布。12. 根据权利要求2至11中的任一项所述的方法,其特征在于,还包括: 将所述二维矩阵的每个元素所对应的行权重按照所述至少一个行类簇的划分结果重 排列,将所述二维矩阵的每个元素所对应的列权重按照所述至少一个列类簇的划分结果重 排列,以便分析所述至少一个行类簇的划分结果和所述至少一个列类簇的划分结果; 和/或, 将所述二维矩阵的每个元素按照行所述至少一个行类簇的划分结果重排列,将所述二 维矩阵的每个元素按照所述至少一个行类簇的划分结果重排列,以便分析所述至少一个行 类簇的划分结果和所述至少一个列类簇的划分结果。13. -种协同聚类的设备,其特征在于,包括: 划分单元,用于根据上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭 代过程得到的类簇中心的值,将所述待聚类的数据的每个元素划分到至少一个类簇中; 第一计算单元,用于根据所述待聚类的数据的每个元素的类簇的划分结果和所述待聚 类的数据的每个元素的权重,更新所述待聚类的数据的类簇中心的值; 第二计算单元,用于根据更新后的待聚类的数据的类簇中心的值,更新所述待聚类的 数据的每个元素的权重,其中,所述类簇中距离所述类簇的中心越远的元素的权重越小。14. 根据权利要求13所述的设备,其特征在于,还包括: 确定单元,用于确定待聚类的数据,所述数据为N行、M列的二维矩阵,所述二维矩阵包 括Ν*Μ个元素, 其中,划分单元具体用于根据上次迭代过程得到的所述二维矩阵的每行元素的行权重 和每列元素的列权重以及上次迭代过程得到的聚类块的中心的值,在行方向上将N行元素 划分到至少一个行类簇中,在列方向将M列元素划分到至少一个列类簇中;所述第一计算 单元具体用于根据所述至少一个行类簇的划分结果、所述至少一个列类簇的划分结果和所 述至少一个行类簇和所述至少一个列类簇组成的聚类块中每个聚类块的元素的行权重和 列权重对所述每个聚类块的元素进行加权平均,得到所述每个聚类块的中心的值;第二计 算单元具体用于根据所述至少一个行类簇的划分结果、所述至少一个列类簇的划分结果和 所述至少一个行类簇和所述至少一个列类簇组成的聚类块的中心的值,得到所述二维矩阵 的每行元素的行权重和每列元素的列权重,其中所述聚类块中距离所述聚类块的中心越远 的元素行权重和列权重越小。15. 根据权利要求14所述的设备,其特征在于,所述划分单元包括: 第一确定子单元,用于确定所述N行元素中的每行M个元素与所述至少一个行类簇中 的每个行类簇中的对应聚类块的中心的加权距离之和,得到所述至少一个行类簇对应的至 少一个第一加权距离之和; 第一划分子单元,用于将所述二维矩阵的每行元素划分到所述至少一个第一加权距离 之和中的最小值所对应的行类簇中; 第二确定子单元,用于确定所述M列元素中的每列N个元素与所述至少一个列类簇中 的每个列类簇中的对应聚类块的中心的加权距离之和,得到所述至少一个列类簇对应的至 少一个第二加权距离之和; 第二划分子单元,用于将所述二维矩阵的每列元素划分到所述至少一个第二加权距离 之和中的最小值所对应的列类簇中。16.根据权利要求15所述的设备,其特征在于,所述第一划分子单元具体用于根据以 下公式将所述二维矩阵的每行元素划分到所述至少一个第一加权距离之和中的最小值所 对应的行类簇中: 其中, 其中,i = 1,2, . . .,M,j=l,2, . . .,N,Ui,g=l表示第i行的元素属于第g行类簇,Ui,s=O表示第i行元素不属于第s行类簇,K为所述至少一个行类簇的个数,L为所述至少一 个列类簇的个数,g=l,2, . . .,K,s=l,2,. . .,K,J(s)表示第i行元素与第s个行类簇所对应 的第一加权距离之和,J(g)表示第i行元素与第g个行类簇所对应的第一加权距离之和,J(g)为所述至少一个第一加权距离之和中的最小值,=1表示上次迭代中第j列的元素属于 第h个列类簇,&= 〇表示上次迭代中第j列的元素不属于第h个列类簇,&表示上次迭代 中第j列元素中属于第s行类簇的元素的列权重,匕,表示上次迭代中第j列元素中属于第 g行类簇的元素的列权重,I表示上次迭代中第i行元素中属于第h个列类簇的元素的行 权重,d( ·)为欧式距离,毛>为上次迭代中第s行类簇和第h列类簇组成的聚类块的中心的 值,匕A为上次迭代中第g行类簇和第h列类簇组成的聚类块的中心的值; 所述第二划分子单元具体用于根据以下公式确定将二维矩阵的每列元素划分到所述 至少一个第二加权距离之和中的最小值所对应的列类簇中: 其中,其中,vj,h = 1表示第该j列的元素属于第h列类簇,Vj,t = 〇表示该第j列不属于第t 列类簇,h=l,2,. . .,L,t=l,2,. . .,L,J' (h)表示第j列元素与第h个列类簇所对应的第二 加权距离之和,Γ ω表示第j列元素与第t个列类簇所对应的第二加权距离之和,= 1 表示上次迭代中第i行的元素属于第g个行类簇,=〇表示上次迭代中第i行的元素不 属于第g个行类簇,I;表示上次迭代中第j列元素中属于第g行类簇的元素的列权重,t 表示上次迭代中第i行元素中属于第t个列类簇的元素的行权重,d( ·)为欧式距离,\,为 上次迭代中第g行类簇和第t列类簇组成的聚类块的中心的值。17. 根据权利要求14至16中任一项所述的设备,其特征在于,所述第一计算单元包 括: 计算子单元,用于计算所述至少一个行类簇和所述至少一个列类簇组成的聚类块中的 每个聚类块中的元素在各自的行权重和列权重的基础上的加权平均值; 确定子单元,用于将所述加权平均值作为所述每个聚类块的中心的值。18. 根据权利要求17所述的设备,其特征在于,所述计算子单元具体用于根据以下公 式计算所述至少一个行类簇和所述至少一个列类簇组成的聚类块中的每个聚类块中的元 素在各自的行权重和列权重的基础上的加权平均值:其中,Zg,h表示第g行类簇与第h列类簇组成的聚类块的中心的值,Xy表示第i行与 第j列所对应元素,I;表示上次迭代中第」_列元素中属于第8个行类簇的元素的列权重, &表示上次迭代中第i行元素中属于第h列类簇的元素的行权重。19. 根据权利要求14至18中任一项所述的设备,其特征在于,所述第二计算单元包 括: 第三确定子单元,用于确定所述二维矩阵的每行元素的行权重,使得所述行权重与所 述每行元素与所述每行元素所属聚类块的中心的距离成反相关; 第四确定子单元,用于确定所述二维矩阵的每列元素的列权重,使得所述列权重与所 述每列元素与所述每列元素所属聚类块的中心的距离成反相关。20. 根据权利要求19所述的设备,其特征在于,所述第三确定子单元具体用于根据以 下公式计算所述二维矩阵的每行元素的行权重: 其中,其中,rh,i表示第i行元素中属于第h个列类簇的元素的行权重,^^表示上次迭代中 第g行类簇和第h列类簇组成的聚类块的中心的值,i ' =1,2, . . .,M, 所述第四确定子单元具体用于根据以下公式计算所述二维矩阵的每列元素的列权 重: 其中,其中,表示第j列元素中属于第g行类簇的元素的列权重,j' =1,2, . . .,N。21. 根据权利要求14至20中任一项所述的设备,其特征在于,还包括: 初始单元,用于确定所述二维矩阵的N*M个元素的行权重和列权重的初始值; 所述初始单元还用于在行方向上将N行元素划分到至少一个初始行类簇中,在列方向 将N列元素划分到至少一个初始列类簇中; 所述初始单元还用于根据所述至少一个初始行类簇的划分结果、所述至少一个初始列 类簇的划分结果以及所述至少一个初始行类簇和所述至少一个初始列类簇组成的聚类块 中每个聚类块的元素的行权重和列权重,得到所述至少一个初始行类簇和所述至少一个初 始列类簇组成的聚类块中每个聚类块的中心的值, 其中,在所述首次迭代过程中,所述上次迭代过程得到的二维矩阵的每行元素的行权 重和每列元素的列权重分别为所述至少一个初始列类簇组成的聚类块中每个聚类块的元 素的行权重和列权重,所述上次迭代过程得到的聚类块的中心的值为所述至少一个初始行 类簇和所述至少一个初始列类簇组成的聚类块中每个聚类块的中心的值。22. 根据权利要求14至21中任一项所述的设备,其特征在于,还包括; 停止单元,用于在两次迭代的所述至少一个行类簇的划分结果和所述至少一个列类簇 的划分结果相同时,停止所述迭代过程; 或者, 停止单元用于在两次迭代的目标函数的值的变化小于设定的阈值时,停止所述迭代过 程,其中所述目标函数用于求解所述二维矩阵的最优化问题。23. 根据权利要求22所述的设备,其特征在于,所述目标函数为;所述目标函数的限制条件为:其中,K为所述至少一个行类簇的个数,L为所述至少一个列类簇的个数,U为大小为 N*K的行划分矩阵,表示不同行属于哪个行类簇;V为大小为M*L的列划分矩阵,表示不同列 属于哪个列类簇,Z为大小为K*L的矩阵,用于表示每个聚类块的中心值,R为大小为L*N的 矩阵,用于表示行权重,C为大小为K*M的矩阵,用于表示列权重,λ为参数,用来调整行权 重的分布,Π 为参数,用来约束列权重的分布。24.根据权利要求14至23中任一项所述的设备,其特征在于,还包括: 重排单元,用于将所述二维矩阵的每个元素所对应的行权重按照所述至少一个行类簇 的划分结果重排列,将所述二维矩阵的每个元素所对应的列权重按照所述至少一个列类簇 的划分结果重排列,以便分析所述至少一个行类簇的划分结果和所述至少一个列类簇的划 分结果; 和/或, 重排单元用于将所述二维矩阵的每个元素按照行所述至少一个行类簇的划分结果重 排列,将所述二维矩阵的每个元素按照所述至少一个行类簇的划分结果重排列,以便分析 所述至少一个行类簇的划分结果和所述至少一个列类簇的划分结果。
【专利摘要】本发明实施例提供了一种协同聚类的方法和装置,该方法包括:迭代执行下列过程,以对待聚类的数据进行协同聚类:根据上次迭代过程得到的待聚类的数据的每个元素的权重以及上次迭代过程得到的类簇中心的值,将待聚类的数据的每个元素划分到至少一个类簇中;根据待聚类的数据的每个元素的类簇的划分结果和待聚类的数据的每个元素的权重,更新待聚类的数据的类簇中心的值;根据更新后的待聚类的数据的类簇中心的值,更新待聚类的数据的每个元素的权重,其中,类簇中距离所述类簇的中心越远的元素的权重越小。本发明实施例的协同聚类的方法,能够降低噪声数据对聚类的影响,提高聚类效果。
【IPC分类】G06F17/30
【公开号】CN104899232
【申请号】CN201410084478
【发明人】肖龙飞, 陈小军, 王书强
【申请人】华为技术有限公司
【公开日】2015年9月9日
【申请日】2014年3月7日

最新回复(0)