基于动态聚类的数据处理方法、介质、设备及装置与流程

文档序号:33037975发布日期:2023-01-24 20:33阅读:45来源:国知局
基于动态聚类的数据处理方法、介质、设备及装置与流程

1.本发明涉及数据处理技术领域,特别涉及一种基于动态聚类的数据处理方法、介质、设备及装置。


背景技术:

2.相关技术中,推荐系统的推荐速度是最重要的,对于精度可以接受局部最优解,并需要0训练成本,能够增量推荐,所以通常采用聚类方法进行推荐,但是该聚类方法针对高纬度,海量数据下的推荐系统计算量大,从而导致推荐速度慢。


技术实现要素:

3.本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的一个目的在于提出一种基于动态聚类的数据处理方法,能够不受纬度限制,且在海量数据下计算量小,从而大大提高了推荐速度。
4.本发明的第二个目的在于提出一种计算机可读存储介质。
5.本发明的第三个目的在于提出一种计算机设备。
6.本发明的第四个目的在于提出一种基于动态聚类的数据处理装置。
7.为达到上述目的,本发明第一方面实施例提出了一种基于动态聚类的数据处理方法,包括以下步骤:获取所有的待处理数据向量和第一阈值;根据所述第一阈值对所述所有的待处理数据向量进行划分,以得到多个第一数据集和每个第一数据集对应的中心向量;判断所述每个第一数据集对应的中心向量的个数是否大于所述第一阈值;如果是,则根据所述第一阈值对所述每个第一数据集对应的中心向量进行划分,以得到多个第二数据集和每个第二数据集对应的中心向量,以此类推,直至中心向量的个数小于等于所述第一阈值,以得到多个最终数据集和每个最终数据集对应的中心向量。
8.根据本发明实施例的基于动态聚类的数据处理方法,首先,获取所有的待处理数据向量和第一阈值;然后,根据第一阈值对所有的待处理数据向量进行划分,以得到多个第一数据集和每个第一数据集对应的中心向量;接着,判断每个第一数据集对应的中心向量的个数是否大于所述第一阈值;如果是,则根据第一阈值对每个第一数据集对应的中心向量进行划分,以得到多个第二数据集和每个第二数据集对应的中心向量,以此类推,直至中心向量的个数小于等于第一阈值,以得到多个最终数据集和每个最终数据集对应的中心向量;由此,能够不受纬度限制,且在海量数据下计算量小,从而大大提高了推荐速度。
9.另外,根据本发明上述实施例提出的基于动态聚类的数据处理方法还可以具有如下附加的技术特征:
10.可选地,如果所述每个第一数据集对应的中心向量的个数小于等于所述第一阈值,则将所述第一数据集作为最终数据集。
11.可选地,还包括:获取与待推荐数据向量距离最近的中心向量,并找到所述距离最近的中心向量对应的最终数据集,以便根据所述最终数据集找到所述待处理数据向量中与
所述待推荐数据向量最相似的数据向量。
12.可选地,划分过程包括:将待拆分的数据集中距离最远的两个数据向量之间的1/4中心点作为第一初始中心,3/4中心点作为第二初始中心,以便根据所述第一初始中心和所述第二初始中心将所述待拆分的数据集拆分成两个数据集。
13.为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有基于动态聚类的数据处理程序,该基于动态聚类的数据处理程序被处理器执行时实现如上述的基于动态聚类的数据处理方法。
14.根据本发明实施例的计算机可读存储介质,通过存储基于动态聚类的数据处理程序,这样基于动态聚类的数据处理程序在被处理器执行时实现如上述的基于动态聚类的数据处理方法,由此,能够不受纬度限制,且在海量数据下计算量小,从而大大提高了推荐速度。
15.为达到上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述的基于动态聚类的数据处理方法。
16.根据本发明实施例的计算机设备,通过处理器执行上述基于动态聚类的数据处理程序,由此,能够不受纬度限制,且在海量数据下计算量小,从而大大提高了推荐速度。
17.为了达到上述目的,本发明第四方面实施例还提出了一种基于动态聚类的数据处理装置,包括:获取模块,用于获取所有的待处理数据向量和第一阈值;划分模块,用于根据第一阈值对所有的待处理数据向量进行划分,以得到多个第一数据集和每个第一数据集对应的中心向量;判断模块,用于判断每个第一数据集对应的中心向量的个数是否大于第一阈值;如果是,则通过所述划分模块根据第一阈值对每个第一数据集对应的中心向量进行划分,以得到多个第二数据集和每个第二数据集对应的中心向量,以此类推,直至中心向量的个数小于等于第一阈值,以得到多个最终数据集和每个最终数据集对应的中心向量。
18.根据本发明实施例的基于动态聚类的数据处理装置,能够不受纬度限制,且在海量数据下计算量小,从而大大提高了推荐速度。
19.另外,根据本发明上述实施例提出的基于动态聚类的数据处理装置还可以具有如下附加的技术特征:
20.可选地,如果所述每个第一数据集对应的中心向量的个数小于等于所述第一阈值,则将所述第一数据集作为最终数据集。
21.可选地,还包括筛选模块,用于获取与待推荐数据向量距离最近的中心向量,并找到所述距离最近的中心向量对应的最终数据集,以便根据所述最终数据集找到所述待处理数据向量中与所述待推荐数据向量最相似的数据向量。
22.可选地,所述划分模块还用于将待拆分的数据集中距离最远的两个数据向量之间的1/4中心点作为第一初始中心,3/4中心点作为第二初始中心,以便根据第一初始中心和第二初始中心将所述待拆分的数据集拆分成两个数据集。
附图说明
23.图1为根据本发明实施例的基于动态聚类的数据处理方法的流程示意图;
24.图2为根据本发明实施例的基于动态聚类的数据处理装置的方框示意图。
具体实施方式
25.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
26.为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
27.为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
28.图1为根据本发明实施例的基于动态聚类的数据处理方法的流程示意图,如图1所示,该基于动态聚类的数据处理方法包括以下步骤:
29.s101,获取所有的待处理数据向量和第一阈值。
30.需要说明的是,所述所有的待处理数据向量中包括待推荐数据向量。
31.s102,根据第一阈值对所有的待处理数据向量进行划分,以得到多个第一数据集和每个第一数据集对应的中心向量。
32.需要说明的是,将所有的待处理数据向量当成一个数据集,并根据第一阈值对该数据集进行划分,以得到多个第一数据集,使得划分后的每个第一数据集的向量个数均小于等于第一阈值。
33.也就是说,采用数据集中的向量个数大于第一阈值后进行分裂的方式,从而得到多个第一数据集。
34.作为一个具体实施例,划分过程包括:将待拆分的数据集中距离最远的两个数据向量之间的1/4中心点作为第一初始中心,3/4中心点作为第二初始中心,以便根据第一初始中心和第二初始中心将待拆分的数据集拆分成两个数据集。
35.需要说明的是,划分问题可视为k=2的kmeans问题,而对于kmeans问题,通常需要选定合适的初始中心位置,并且进行多次迭代才能找到全局最优解;但是为了提高算法的速度,本发明通过给定更好的经验中心,进行有限次的迭代的方式。
36.本发明中采用的是选取数据集中距离最远的两个数据向量,以他们的1/4和3/4中心点为初始中心,然后根据数据集中每一个数据向量距离初始中心的距离,将数据集划分为两个子群组。然后计算子群组的重心,以新的重心为中心,然后根据距离中心的距离,将群组重新划分为两个子群组;然后再以子群组的重心为中心再重复一次;对于kmeans来说需要不断重复这个过程,直到重心不再偏移。
37.另外,在实际情况中,只需要两次迭代,已经能够达到最优解相似度平均值的93%以上,所以本发明中只迭代了两次。
38.s103,判断每个第一数据集对应的中心向量的个数是否大于第一阈值。
39.也就是说,将划分后的每个第一数据集对应的中心向量作为新的数据集,并判断新的数据集是否大于第一阈值。
40.s104,如果是,则根据第一阈值对每个第一数据集对应的中心向量进行划分,以得到多个第二数据集和每个第二数据集对应的中心向量,以此类推,直至中心向量的个数小
于等于第一阈值,以得到多个最终数据集和每个最终数据集对应的中心向量。
41.也就是说,继续判断每个第二数据集对应的中心向量个数是否大于第一阈值,如果是,则根据第一阈值对每个第二数据集对应的中心向量进行划分,以得到多个第三数据集和每个第三数据集对应的中心向量,一直迭代判断,直至中心向量的个数小于等于第一阈值,以得到多个最终数据集和每个最终数据集对应的中心向量。
42.作为一个具体实施例,还包括获取与待推荐数据向量距离最近的中心向量,并找到距离最近的中心向量对应的最终数据集,以便根据最终数据集找到待处理数据向量中与待推荐数据向量最相似的数据向量。
43.作为一个具体实施例,如果每个第一数据集对应的中心向量的个数小于等于第一阈值,则将第一数据集作为最终数据集。
44.也就是说,如果每个第一数据集对应的中心向量的个数小于等于第一阈值,则可通过待推荐数据向量与每个第一数据集对应的中心向量进行对比,从而找到每个第一数据集对应的中心向量中与待推荐数据向量距离最近的中心向量,并在中心向量对应的第一数据集中寻找距离最近的数据向量,将其进行推荐。
45.需要说明的是,假设总共有n个待处理数据向量,第一阈值为k,即每个数据集中的数据向量小于等于k个向量,则可划分为个第一数据集,而在动态划分群组的过程中,已知每个群组的重心,将重心作为该群组的中心向量即可找到与待推荐数据向量距离最近的中心向量;但是,如果n足够大的时候,也会很大,计算量还是较大,所以需要以中心向量为新的群组进行分裂。
46.也就是说,其为k2=1,n2=n/k的knn问题;只需要再重复上述步骤,将所有中心向量,再次聚集成n/k2个群组的集合即可。
47.重复上述步骤,最终得到一颗高度为logkn的树;knn问题就变成了在这个树上查找最近叶子结点问题;对于树的每一层,只需要对比至多k个节点,所以该算法的复杂度为klogkn。
48.由于推荐系统一般会选取的k值都比较大;以k=1000为例,当n取100亿,1000*log
1000
10
10
=3333,仅需要3333次计算即可,从而极大的减少计算量。
49.作为一个具体实施例,上述基于动态聚类的数据处理方法可用在图片相似推荐中,例如用户提供一张图片后,系统可主动在大量图片中找到与该图片最相似的图片,首先根据每个图片的信息转换成每个图片对应的数据向量,然后根据上述步骤进行数据处理即可快速找到图片并进行推荐。
50.综上所述,根据本发明实施例的基于动态聚类的数据处理方法,相对于kdtree的实现方式,该方式不受到纬度的限制,也就是说对于非常高纬度的数据,该算法依然能保持足够快的速度;相对于其他的logn级别的算法,该算法在k值较大的情况下,计算量会显著小于其他的算法。
51.为了实现上述实施例,本发明实施例还提出了一种计算机可读存储介质,其上存储有基于动态聚类的数据处理程序,该基于动态聚类的数据处理程序被处理器执行时实现如上述的基于动态聚类的数据处理方法。
52.根据本发明实施例的计算机可读存储介质,通过存储基于动态聚类的数据处理程
序,这样基于动态聚类的数据处理程序在被处理器执行时实现如上述的基于动态聚类的数据处理方法,由此,能够不受纬度限制,且在海量数据下计算量小,从而大大提高了推荐速度。
53.为了实现上述实施例,本发明实施例还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述的基于动态聚类的数据处理方法。
54.根据本发明实施例的计算机设备,通过处理器执行上述基于动态聚类的数据处理程序,由此,能够不受纬度限制,且在海量数据下计算量小,从而大大提高了推荐速度。
55.为了实现上述实施例,本发明实施例还提出了一种基于动态聚类的数据处理装置,如图2所示,该基于动态聚类的数据处理装置包括:获取模块10、划分模块20和判断模块30。
56.其中,获取模块10,用于获取所有的待处理数据向量和第一阈值;划分模块20,用于根据第一阈值对所有的待处理数据向量进行划分,以得到多个第一数据集和每个第一数据集对应的中心向量;判断模块30,用于判断每个第一数据集对应的中心向量的个数是否大于第一阈值;如果是,则通过划分模块根据第一阈值对每个第一数据集对应的中心向量进行划分,以得到多个第二数据集和每个第二数据集对应的中心向量,以此类推,直至中心向量的个数小于等于第一阈值,以得到多个最终数据集和每个最终数据集对应的中心向量。
57.优选地,如果每个第一数据集对应的中心向量的个数小于等于所述第一阈值,则将第一数据集作为最终数据集。
58.在一些实施例中,基于动态聚类的数据处理装置还包括筛选模块,用于获取与待推荐数据向量距离最近的中心向量,并找到距离最近的中心向量对应的最终数据集,以便根据最终数据集找到所述待处理数据向量中与待推荐数据向量最相似的数据向量。
59.在一些实施例中,划分模块20还用于将待拆分的数据集中距离最远的两个数据向量之间的1/4中心点作为第一初始中心,3/4中心点作为第二初始中心,以便根据第一初始中心和第二初始中心将待拆分的数据集拆分成两个数据集。
60.需要说明的是,上述关于图1中基于动态聚类的数据处理方法的描述同样适用于该基于动态聚类的数据处理装置,在此不做赘述。
61.综上所述,根据本发明实施例的基于动态聚类的数据处理装置,能够不受纬度限制,且在海量数据下计算量小,从而大大提高了推荐速度。
62.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
63.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
64.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
65.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
66.应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
67.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
68.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
69.在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
70.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
71.在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
72.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不
应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
73.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1