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

文档序号:8922600阅读:来源:国知局
, 第三确定子单元具体用于根据以下公式计算二维矩阵的每行元素的行权重:
[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个行类簇的元素的列权 重,
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1