一种基于kd-tree的隐私保护外包k-means聚类方法、系统

文档序号:32159061发布日期:2022-11-12 01:41阅读:86来源:国知局
一种基于kd-tree的隐私保护外包k-means聚类方法、系统

1.本发明属于数据安全存储技术领域,具体涉及一种基于kd-tree的隐私保护外包k-means聚类方法、一种计算机设备、一种计算机存储介质和一种基于kd-tree的隐私保护外包k-means聚类系统。


背景技术:

2.云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务器,其管理方式比物理服务器更简单高效,并且用户无需提前购买硬件即可迅速创建或者释放任意多台云服务器。用户将数据存储在云服务器上,不仅能够减少对用户客户端的存储占用空间,而且还能够提高用户的便利性,例如,当用户使用不同的客户端时,可以通过账号登录云服务器,以从云服务器获取其需要的数据信息。同时用户个人机器通常资源和性能有限,无法存储海量数据以及对数据进行高效的聚类计算。云计算使得用户能够将数据和需要进行的聚类工作外包给云服务器,不用考虑中间过程,最后直接获取计算结果,非常方便快捷。
3.但是用户的数据存储在云服务器上存在安全性问题,容易被他人非法获取,为了解决该问题,现有技术中常用的方法是对数据进行加密,即客户端将数据加密后发送给云服务器以进行存储和计算,云服务器通过给定的针对加密数据的计算协议进行计算,最后获取加密结果。然而现有加密的方案通常难以兼顾效率与安全,确保数据安全的方案通常需要耗费大量时间,耗时可接受的高效方案则可能牺牲一部分的数据安全性。因此云服务器上的安全计算方案需要考虑如何兼顾效率与安全。综上所述可知,现有技术中的云服务器上在对加密数据进行聚类时,存在效率与安全的问题。


技术实现要素:

4.本发明的目的在于提供一种基于kd-tree的隐私保护外包k-means聚类方法、系统,用于至少解决上述现有技术中的云服务器上在对加密数据进行聚类时,存在聚类效率与数据安全的问题。
5.为至少解决上述问题性,第一方面,本发明提供了基于kd-tree的隐私保护外包k-means聚类方法,包括:获取安全最值协议、安全欧式距离协议、安全比较协议、安全聚类协议;获取安全最值协议、安全欧式距离协议、安全比较协议、安全聚类协议,其kd-tree由用户在明文上构建,然后加密后发送给双云服务器;获取待聚类数据,计算数据所有维度的方差,以方差最大的维度作为参考依据;根据所述参考维度,找到维度数据的中位数,将数据均匀的划分为两份,并且重复上述过程,直到数据被划分到给定数量;获取设定数量的数据簇中心,采用过滤算法,根据所述安全欧式距离协议、安全比较协议、安全最值协议、安全聚类协议和所述kd-tree,对所述待聚类数据进行聚类。
6.根据本发明的一个实施例,用户在明文上构建所述待聚类数据的kd-tree包括:将所述待聚类数据作为所述根节点的集合;响应于节点的集合中具有多个待聚类数据,获取该节点集合中待聚类数据在所述参考维度下的中值,将该中值所对应的待聚类数据存储在
该节点中,并将参考维度下大于和小于中值的待聚类数据分别作为该节点的左子节点的集合和右子节点的集合;响应于节点的集合中仅有一个待聚类数据,将该待聚类数据存储在该节点中。
7.根据本发明的一个实施例,所述采用过滤算法对所述kd-tree进行聚类包括:从所述kd-tree的根节点开始遍历其各节点,并根据安全过滤算法对各节点进行聚类;响应于聚类成功,停止遍历所述kd-tree。
8.根据本发明的一个实施例,所述据安全过滤算法对各节点进行聚类包括:获取节点的集合中各待聚类数据的均值;根据安全欧式距离协议,计算所述均值与候选簇集合中各数据簇中心之间的欧氏距离,并根据所述安全最值协议得到与所述均值欧式距离最小的数据簇中心,将该数据簇中心作为第一备选数据簇中心;将第一备选簇中心与候选簇集合中其他簇中心进行比较,若节点内所有数据相较于其他簇中心均距离备选簇中心更近,则将其他簇中心从候选簇集合中移除,若候选簇集合中最后仅剩一个簇,则认为该节点中所有数据均可被划分到备选数据簇中心中,不再对子节点进行聚类。否则,传递将当前候选簇集合作为子节点候选簇集合,对子节点进行上述过程,直到所有节点均被划分成功。
9.根据本发明的一个实施例,所述获取设定数量的数据簇中心包括:采用随机数算法,生成所述设定数量的数据簇中心。
10.第二方面,本发明提供了一种计算机设备,包括处理器和存储器,所述存储器上存储有用于在所述处理器上执行的计算机程序指令,所述处理器执行该计算机程序指令时,实现如上述任意一项实施例所述的基于kd-tree的隐私保护外包k-means聚类方法。
11.第三方面,本发明提供了一种计算机存储介质,所述计算机指令由处理器运行时,实现如上述任意一项实施例所述的基于kd-tree的隐私保护外包k-means聚类方法。
12.第四方面,本发明提供了一种基于kd-tree的隐私保护外包k-means聚类系统,包括多个客户端和多个云服务器,所述客户端首先将数据利用加性秘密共享划分为两部分,最后将各部分分别发送给不同的云服务器;所述云服务器用于根据上述任意一项实施例所述的基于kd-tree的隐私保护外包k-means聚类方法聚类所接收到的数据。
13.本发明所提供的技术方案,用户在明文上构建kd-tree,加密后分发给双云服务器,然后云服务器采用根据安全欧式距离协议、安全比较协议、安全最值协议和安全聚类协议,采用过滤算法得到待聚类数据的kd-tree进行聚类,从而实现对待聚类数据的聚类。由于本发明的技术方案是根据待聚类数据的kd-tree对其进行聚类的,聚类过程中不需要再更新kd-tree的结构,因此可以减少聚类的复杂程度,进而提高对待聚类数据的聚类速度。
附图说明
14.通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
15.图1是根据本发明实施例的一种基于kd-tree的隐私保护外包k-means聚类方法的流程图;
16.图2是根据本发明实施例的计算机设备的结构示意图。
具体实施方式
17.下面结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,本领域技术人员应知,下文所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
18.请参阅图1,图1所示出的是本技术的一种基于kd-tree的隐私保护外包k-means聚类方法的流程,该方法用于在云服务器上执行,对所接收到的数据进行聚类。下面结合图1所示出的流程,对本技术的基于kd-tree的隐私保护外包k-means聚类方法做详细的介绍。
19.如图1所示,本技术所提供的基于kd-tree的隐私保护外包k-means聚类方法,其流程包括:
20.在步骤s1中,获取安全最值协议、安全欧式距离协议、安全比较协议、安全聚类协议,其中安全最值协议,用于获取特定数据序列中的最小值或最小值,例如,可以采用冒泡求解的方式得到特定数据序列中的最小值或最大值;上述安全比较协议用于比较特定数据序列中各数据的大小;上述安全欧式距离协议用于计算欧式距离,安全聚类协议用于通过过滤算法,在kd-tree的基础上对特定数据序列进行聚类。
21.本实施例中为了减少计算的复杂程度,上述安全构造kd-tree协议中的计算方差协议计算特定数据序列的方差时将分母消除,以消除其中的除法计算,将计算过程全部转换为乘法计算,转换过程为:
[0022][0023]
在上述公式中,s为特定数据序列在x维的方差,xi为特定数据序列中第i个数据在x维度的值,n为特定数据序列中数据的总数量,即采用表示特定数据序列在x维的方差。
[0024]
上述安全欧式距离协议在计算安全距离时,所采用的计算公式为
[0025][0026]
其中α是缩放因子,xi是kd-tree节点在x维度的数据,k是簇中心某一维度数据,
[0027]
在步骤s2中,获取待聚类数据,通过上述安全方差计算子协议计算待聚类数据在各维度下的方差,通过安全最值协议得到方差最大的维度,并将该维度作为参考维度。举例说明,假设待聚类数据均为二维数据,并且分别为x维和y维,则在本步骤s2中,采用上述安全方差计算子协议分别计算待聚类数据在x维的方差和在y维的方差,然后通过安全最值协
议得到待聚类数据在x维的方差和y维的方差中的最大值,并将该最大值所对应的维度作为参考维度,即假如待聚类数据x维的方差大于在y维的方差,则将x维作为参考维度。
[0028]
在步骤s3中,根据上述参考维度,采用上述安全比较协议和安全划分子协议,构建待聚类数据的kd-tree,即在本步骤s3中,通过安全比较协议获取待聚类数据在参考维度下的大小关系,然后根据待聚类数据在参考维度下的大小关系,采用安全划分子协议进行划分,以完成kd-tree的构建。
[0029]
在步骤s4中,获取设定数量的数据簇中心,然后根据安全欧式距离协议、安全比较协议、安全最值协议、安全聚类协议和待聚类数据的kd-tree,采用过滤算法对待聚类数据进行聚类,即采用过滤算法,根据待聚类数据的kd-tree得到其聚类中心,以实现对待聚类数据的聚类。
[0030]
本发明所提供的技术方案,在对待聚类数据进行存储时,可以先采用安全最值协议、安全比较协议和安全构造kd-tree协议构建待聚类数据的kd-tree,然后采用根据安全欧式距离协议、安全比较协议、安全最值协议和安全聚类协议,采用过滤算法得到待聚类数据的kd-tree进行聚类,从而实现对待聚类数据的聚类。由于本发明的技术方案是根据待聚类数据的kd-tree对其进行聚类的,聚类过程中不需要对各待测数据分别进行计算,因此可以减少聚类的复杂程度,进而提高对待测数据的聚类速度。
[0031]
上文中对本发明的基于kd-tree和k-means聚类的数据安全存储方法做了详细的介绍,下面结合具体应用场景,对该数据安全存储方法中构建待聚类数据的kd-tree的方法做详细的介绍。可以理解的是,下文中对构建待聚类数据的kd-tree的方法做详细的介绍是示例性的而非限制性的,上文中对该方法的描述,同样也适用于下文。
[0032]
在一个实施例中,上述构建待聚类数据的kd-tree的方法包括:kd-tree由用户在明文上构建,然后加密后发送给双云服务器。构建过程包括:将所有待聚类数据作为kd-tree根节点的集合,并采用安全比较协议得到各待聚类数据在参考维度下的中值,然后将该中值所对应的待聚类数据作为kd-tree的根节点,将在参考维度下所有大于上述中值的待聚类数据和所有小于上述中值的待聚类数据分别作为kd-tree的根节点的两个子节点的集合,然后按照上述构建根据kd-tree的根节点的方式,对其两个子节点进行构建;以此类推,当有节点的集合中仅有一个待聚类数据时,可以认为该节点为叶子节点,将该待聚类数据存储到该节点中即可;当所有的叶子节点设置完成时,可以认为待聚类数据的kd-tree构建完成。
[0033]
举例说明,假设共有七个待聚类数据,各数据均为二维数据,分别为其参考维度为x维,在采用上述方法构建待聚类数据的kd-tree时,首先获取七个待聚类数据的在x维的中值,假设其中第四个数据的在x维的值x4为各待聚类数据在x维下的中值,则将第四个数据存储到根节点中,将参考维度下的大于x4的数据作为根节点的左子节点的集合,将参考维度下小于x4的数据作为根节点右子节点的集合。然后按照上述设置根节点的方法,根据各节点的集合分别设置各节点;当节点所对应的集合中仅有一个数据时,将该数据直接存储到该节点中即可,此时该节点为叶子节点,可以停止该分支的构建。当构建完所有叶子节点后,可以认为完成待聚类数据的kd-tree的构建。
[0034]
上文中对构建待聚类数据的kd-tree的方法做了详细的介绍,下面结合具体应用场景,对待聚类数据的聚类方法做详细的介绍。
[0035]
在一个实施例中,采用过滤算法对kd-tree进行聚类的方法包括:从kd-tree的根节点开始遍历各节点,并在各节点根据安全欧式距离协议和安全最值协议对各节点进行聚类,直到聚类成功。在对各节点进行聚类时,可以得到各节点的数据簇中心,并根据各节点的聚类中心对待聚类数据进行数据簇的划分,以对待聚类数据进行聚类。例如,如果对待聚类数据的kd-tree的根节点聚类成功,则得到根节点所对应的数据簇中心,然后将所有的待聚类数据划分到该数据簇中心所对应的数据簇中;如果对待聚类数据的kd-tree的根节点聚类不成功,则分别对其两个子节点进行聚类;如果对根节点的两个子节点聚类成功,则将两个子节点的集合中的待聚类数据分别归类到相应的数据簇中,如果聚类不成功,则对两个子节点的子节点进行聚类,以此类推,直到完成聚类成功。
[0036]
下面结合具体应用场景,对待聚类数据的kd-tree中各节点的聚类方法做详细的介绍,可以理解的是,下文中所描述的对节点的聚类方法是示例性的而非限制性的。
[0037]
在一个实施例中,对kd-tree中节点进行聚类时,首先获取节点的集合中各待聚类数据的均值,即分别计算各待聚类数据在各维度上的平均值,然后由各维度平均值所构成一个数据,该数据即为各待聚类数据的均值;然后根据安全欧式距离协议,计算该均值与各数据簇中心之间的欧氏距离,并根据安全最值协议得到与上述均值欧式距离最小的数据簇中心,将该数据簇中心作为第一备选数据簇中心;将第一备选簇中心与候选簇集合中其他簇中心进行比较,若节点内所有数据相较于其他簇中心均距离备选簇中心更近,则将其他簇中心从候选簇集合中移除,若候选簇集合中最后仅剩一个簇,则认为该节点中所有数据均可被划分到备选数据簇中心中,不再对子节点进行聚类;否则,传递将当前候选簇集合作为子节点候选簇集合,对子节点进行上述过程,直到所有节点均被划分成功。
[0038]
以对kd-tree的根节点进行聚类为例,在采用过滤算法对其进行聚类时,在从候选簇集合中选出第一备选簇中心后,我们将第一备选簇中心和候选簇集合中其他的备选簇中心进行比较,如果kd-tree节点中所有数据都距离第一备选簇中心更近,那么可以将这一备选簇中心从候选簇集合中剔除,如果比较完候选簇集合中所有其他的簇中心,最后只剩一个,那么认为该节点可以被划分到第一备选簇中心中。
[0039]
上文中对节点的聚类方法做了详细的介绍,下面结合具体应用场景,对获取数据簇中心的方法做详细的说明。
[0040]
根据本发明的第二方面,本发明还提供了计算机设备,如图2所示,该设备包括处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信。处理器用于提供计算和控制能力。存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序指令。该内存储器为非易失性存储介质中的操作系统和计算机程序指令的运行提供环境。上述装置的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。存储器用于存储计算机程序指令,该计算机程序指令使处理器执行上述本发明如图1所示的基于kd-tree的隐私保护外包k-means聚类方法。
[0041]
根据本发明的第三方面,本发明还提供了一种计算机可读存储介质。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令来指令相关的硬件来完成,所述的计算机程序指令可存储于一非易失性计算机可读取存储介质中,该计算机程序指令在执行时,可实现上述本发明如图1所示的基于kd-tree的隐私
保护外包k-means聚类方法。本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0042]
根据本发明的第四方面,本发明还提供了一种基于kd-tree的隐私保护外包k-means聚类系统,该系统包括多个客户端和多个云服务器,并且各客户端可以向各云服务器发送数据进行存储。当客户端需要存储数据时,首先将数据进行加密,然后将加密后的数据划分为设定份数,例如划分为两份,并且每份数据的数据量随机设置,然后将各份数据分别发送给不同的云服务器;云服务器接收到客户端所发送的数据后,将其作为待聚类数据,按照上述各实施例中的基于kd-tree的隐私保护外包k-means聚类方法对待聚类数据进行聚类,然后将聚类后的数据存储。
[0043]
本说明书中所使用的术语“第一”或“第二”等用于指代编号或序数的术语仅用于描述目的,而不能理解为明示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”或“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个或更多个等,除非另有明确具体地限定。
[0044]
虽然本说明书已经示出和描述了本发明的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式提供的。本领域技术人员会在不偏离本发明思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本发明的过程中,可以采用本文所描述的本发明实施例的各种替代方案。权利要求书旨在限定本发明的保护范围,并因此覆盖这些权利要求保护范围内的模块组成、等同或替代方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1