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

文档序号:8922600阅读:329来源:国知局
协同聚类的方法和设备的制造方法
【技术领域】
[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] 结合第二方面的第六种可能的实现方式,在第二方面第七种可能的实现方式中
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1