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

文档序号:8922600阅读:来源:国知局
表不列权重的熵
_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]
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1