一种基于MapReduce的差分可辨性k原型聚类方法转让专利
申请号 : CN201910793018.4
文献号 : CN110619231B
文献日 : 2021-06-18
发明人 : 尚涛 , 赵铮 , 姜亚彤 , 张锋 , 杨英 , 刘建伟
申请人 : 北京航空航天大学 , 国家卫生健康委科学技术研究所
摘要 :
权利要求 :
1.一种基于MapReduce的差分可辨性k原型聚类方法,其特征在于:该方法包含以下步骤:
步骤1:对输入数据集D进行预处理;包括数据集D中数值型数据的归一化以及对数值型和分类型属性的调整,预处理后形成新数据集D1;
步骤2:MapReduce框架的任务设置;设置主任务Driver,先后调用基于MapReduce框架的两个子任务:一个是确定初始中心点和聚类个数,即第一个子任务;另一个是实现差分可辨性k原型聚类,即第二个子任务;两个子任务通过执行Map任务和Reduce任务实现;
步骤3:确定每个Map任务中的局部中心点集合Q;
步骤4:根据局部中心点集合Q确定聚类个数k;
步骤5:设置差分可辨性实现机制的参数;对于数值型数据和分类型数据,分别采用Laplace机制和指数机制实现差分可辨性;
步骤6:划分数据集D1的每条数据记录至相应聚类;
步骤7:计算新一轮聚类中心点;
步骤8:比较两轮聚类中心点;主任务Driver读取接收新一轮生成的聚类中心点集合和上轮的k个初始中心点集合,计算两轮聚类中心点集合间的距离Dis;若这两轮中心点集合的距离Dis小于指定阈值Threshold或者迭代次数已经到达迭代总数值T,则迭代终止,输出最终的聚类中心点集合U';若不满足要求,继续重复步骤6~步骤8;
步骤9:根据最终聚类中心点划分数据集D1;主任务Driver再次调用MapReduce中的Mapper类,设置map函数按照最终生成的聚类中心点集合对数据集D1进行聚类,将每条记录xi'划分至相应的聚类,数据记录的各维属性值作为键值对的key1,聚类标号作为键值对的value1,map函数输出(key,value)键值对,即最终的聚类结果;
所述步骤5的具体过程为:Laplace机制对数值型数据添加一个服从Laplace分布的随机噪声 指数机制以正比于 的概
率从分类型数据中选择并输出属性值;其中,f为查询函数,Δf为f的总敏感度;对于归一化r c
的数值型数据,全局敏感度Δf=dr,对于分类型数据,全局敏感度Δf=1,数据集D1总敏感度为Δf=dr+1;m为可能数据集数,mr和mc分别为数值型和分类型可能数据集数的最小值;ρ为差分可辨性的隐私参数,迭代次数T未知时,第n(1≤n≤T)轮迭代数值型和分类型数据的隐私参数分别为
2.根据权利要求1所述的一种基于MapReduce的差分可辨性k原型聚类方法,其特征在于:所述步骤1的具体过程为:输入数据集D共有N条数据记录,每个数据记录表示为xi(1≤i≤N);数据集D维数为d,其中数值型数据维数为dr,分类型数据维数为dc,即数据集D中某一数据记录表示为xi=(xi1,xi2,…,xid);对数据集D每维属性进行调整,使前dr维为数值型数据,后dc维为分类型数据;读取数据集D每条记录xi的前dr维属性,设置第一条记录x1前dr维属性值分别为初始最大值 和最小值
将其余N‑1条记录的前dr维属性值分别与max和min比较大小,得到前dr维各维属性的最大值 和最小值通过归一化公式 将xi的前dr维属性归一化处理至空间 中,形成新数据集D1。
3.根据权利要求1所述的一种基于MapReduce的差分可辨性k原型聚类方法,其特征在于:所述步骤3的具体过程为:主任务Driver调用MapReduce中第一个子任务,确定初始中心点和最优聚类个数;所述第一个子任务执行Mapper类,map函数中设置集合Q=null,设置迭代次数 L为每个map函数读取数据的记录数;在迭代次数 内,当集合Q为空时,计算数据集D1中数据点xi与坐标原点距离的最小值,将数据点xi保存至集合Q;当集合Q不为空时,计算数据集D1中数据点xi与集合Q中局部中心点的距离,得出最小距离中的最大者,将最小距离中的最大者保存至集合Q。
4.根据权利要求1所述的一种基于MapReduce的差分可辨性k原型聚类方法,其特征在于:所述步骤4的具体过程为:第一子任务继续执行Reducer类,reduce函数接收集合Q={Q1,…,Qj,…},计算P=Count(Q),P为集合Q的数据总量,设置迭代次数为 和集合Q'=null;在迭代次数 内,当集合Q'为空时,计算集合Q中局部中心点与坐标原点距离的最小值,将局部中心点保存至集合Q';当集合Q'不为空时,计算集合Q中局部中心点q与Q'的中心点之间的距离,得出最小距离中的最大者,将最小距离中的最大者保存至集合Q';计算集合Q'的数据总量K,设置迭代次数为 在迭代次数 内,计算集合Q'中指标Depth(i)的最大值,将集合Q'中前i个点赋值至空集合U中,U为聚类的初始中心点集合,最优聚类个数k=i,输出初始中心点集合U。
5.根据权利要求1所述的一种基于MapReduce的差分可辨性k原型聚类方法,其特征在于:所述步骤6的具体过程如下:主任务Driver调用MapReduce中第二个子任务,进行差分可辨性k原型聚类;子任务执行Mapper类,设置Mapper类的setup函数读取集合U中k个初始中心点u1,...,uk,读入事先定义的集合clustercenters中;map函数读取接收到的每条数据记录xi,分别计算xi与k个初始中心点的距离Distance,得到与xi'距离值最小的聚类中心us(1≤s≤k),将记录xi划分到此聚类;将聚类标号s作为键值对的key值,数据记录的各维属性值作为value,map函数输出(key,value)键值对。
6.根据权利要求1所述的一种基于MapReduce的差分可辨性k原型聚类方法,其特征在于:所述步骤7的具体过程为:第二个子任务继续执行MapReduce中的Reducer类,接收键值对(key,value),合并属于同一个key值的聚类;设置reduce函数,对于前dr维的数值型数据,计算同一个聚类中数据数目之和numl和各维属性值之和suml,对其添加Laplace噪声可得到suml',计算suml'/numl得到数值型数据的聚类中心 对于后dc维分类型数据,计算每维属性的分类值出现次数,根据出现次数,使用指数机制选择并输出每维属性的分类值,即为分类型数据的聚类中心 将 和 合并即可得到新一轮聚类中心点集合ul'。
说明书 :
一种基于MapReduce的差分可辨性k原型聚类方法
技术领域
背景技术
数据挖掘的重要方向,被广泛应用于各种场景。聚类针对数据集的特点和具体分析任务的
不同可设计不同的算法,按照处理对象的类型可以将聚类算法分为三类:数值型数据聚类
算法、分类型数据聚类算法和混合型数据聚类算法。数据挖掘中大部分聚类算法只能处理
数值型或者分类型的数据。实际上,生成的数据多为混合型,使用单一类型属性数据的聚类
算法对混合型数据聚类,会造成信息丢失,数据效用降低。因此,对混合型数据的聚类算法
的研究具有十分重大的意义。
统的隐私保护模型中,传统隐私保护方法以k‑anonymity及相同理论基础上的扩展方法最
具代表性。但上述隐私保护方法存在两个问题:(1)具有背景相关依赖性,即假定了某一攻
击模型或者攻击者具有的背景知识;(2)缺少较为严格的理论基础,证明隐私保护水平程度
十分困难。Dwork提出的差分隐私(Differential Privacy,DP)解决了这两个问题。2012年,
Lee和Clifton认为差分隐私定义存在缺陷。隐私参数ε是差分隐私中评价隐私保护水平的
指标,但是ε只限制相邻两个数据集的概率差异,即限制单个个体对输出的影响程度,而不
是个体信息泄露的程度,这不符合相关法律对隐私的定义。因此,提出差分可辨性
(Differential Identifiability,DI),与差分隐私提供相同的隐私保证,差分可辨性参数
ρ限制个体被重新识别的概率,可为从业者提供了更简便的参数化方法。
靠性的分布式计算环境,利用集群存储大量数据。MapReduce框架是Hadoop平台的重要组成
部分,采用Master/Slave(M/S)架构,构建在分布式文件系统之上。MapReduce应用于大规模
数据集的并行编程接口,基于“分而治之”的思想实现,归纳了经典的顺序式处理大数据的
流程和特点,并借助函数式设计语言Lisp的基本思想,将map函数和reduce函数设计为两个
高级的并行编程接口和抽象模型,用户只需编写这两个函数,即可完成简单的并行程序的
设计,是目前提高大数据处理效率的最佳框架。
分可辨性的实现机制和组合性质,基于MapReduce框架实现混合型聚类算法k原型(k‑
prototypes),确保大数据平台上聚类结果的安全性和效用。
发明内容
时,实现算法并行化。
=(xi1,xi2,...,xid)。对数据集D每维属性进行调整,使前dr维为数值型数据,后dc维为分类
型数据。读取数据集D每条记录xi的前dr维属性,设置第一条记录x1前dr维属性值分别为初
始最大值 和最小值 将其余N‑1条
记录的前dr维属性值分别与max和min比较大小,得到前dr维各维属性的最大值
和最小值 通过归一化公式
将xi的前dr维属性归一化处理至空间 中,形成新数据集D1。
分可辨性k原型聚类,即第二个子任务。两个子任务通过执行Map任务和Reduce任务实现。
中设置集合Q=null,设置迭代次数 L为每个map函数读取数据的记录数。在迭代次数
内,当集合Q为空时,计算数据集D1中数据点xi与坐标原点距离的最小值,将数据点xi保
存至集合Q;当集合Q不为空时,计算数据集D1中数据点xi与集合Q中局部中心点的距离,得出
最小距离中的最大者,将最小距离中的最大者保存至集合Q。
次数为 和集合Q'=null。在迭代次数 内,当集合Q'为空时,计算集合Q中局部中心
点与坐标原点距离的最小值,将局部中心点保存至集合Q';当集合Q'不为空时,计算集合Q
中局部中心点q与Q'的中心点之间的距离,得出最小距离中的最大者,将最小距离中的最大
者保存至集合Q'。计算集合Q'的数据总量K,设置迭代次数为 在迭代次数 内,
计算集合Q'中指标Depth(i)的最大值,将集合Q'中前i个点赋值至空集合U中,U为聚类的初
始中心点集合,最优聚类个数k=i,输出初始中心点集合U。
Laplace分布的随机噪声 指数机制以正比于
的概率从分类型数据中选择并输出属性值。其中,f为查询函数,Δf为
r
f的全局敏感度。对于归一化的数值型数据,全局敏感度Δf=dr,对于分类型数据,全局敏
c
感度Δf=1,数据集D1总敏感度为Δf=dr+1。m为可能数据集数,mr和mc分别为数值型和分
类型可能数据集数的最小值。ρ为差分可辨性的隐私参数,迭代次数T未知时,第i(1≤i≤T)
轮迭代数值型和分类型数据的隐私参数分别为
函数读取集合U中k个初始中心点u1,...,uk,读入事先定义的集合clustercenters中。map函
数读取接收到的每条数据记录xi,分别计算xi与k个初始中心点的距离Distance,得到与xi
距离值最小的聚类中心ui(1≤i≤k),将记录xi划分到此聚类。将聚类标号i作为键值对的
key值,数据记录的各维属性值作为value,map函数输出(key,value)键值对。
的数值型数据,计算同一个聚类中数据数目之和numi和各维属性值之和sumi,对其添加
Laplace噪声可得到sumi',计算sumi'/numi得到数值型数据的聚类中心 对于后dc维分类
型数据,计算每维属性的分类值出现次数,根据出现次数,使用指数机制选择并输出每维属
性的分类值,即为分类型数据的聚类中心 将 和 合并即可得到新一轮聚类中心点
集合ui'。
距离Dis。若这两轮中心点集合的距离Dis小于指定阈值Threshold或者迭代次数已经到达
迭代总数值T,则迭代终止,输出最终的聚类中心点集合U'。若不满足要求,继续重复步骤6
~步骤8。
录xi划分至相应的聚类,数据记录的各维属性值作为键值对的key1,聚类标号作为键值对
的value1,map函数输出(key1,value1)键值对,即最终的聚类结果。
为差分隐私的隐私预算ε提供了一个取值上界。
附图说明
具体实施方式
差分可辨性k原型聚类方法到大数据平台上。
划分为多项子任务,而且这些子任务相对独立,彼此之间无牵制,可以并行计算完成,子任
务完成后,该项工作内容也随之完成。MapReduce将map函数和reduce函数设计为两个高级
的并行编程接口和抽象模型,通过编写这两个函数完成分布式程序的设计。
一个MapReduce程序可以对应若干个作业,每个作业会被分解成若干个Map任务和Reduce任
务(Task)。
会跟踪任务的执行进度蒙自源使用量等信息,并将这些信息告知任务调度器,任务调度器
会在资源出现空闲时,选择合适的任务使用这些资源。任务调度器是一个可插拔的模块,用
户可以根据自己的需要设计相应的调度器。
使用“slot”等量划分本节点上的资源量。“slot”代表计算资源(CPU、内存等),一个任务获
取到一个slot后才有机会运行,Hadoop的调度器的作用就是将TaskTracker上的空闲slot
分配给各个任务使用。slot分为Map slot和Reduce slot两种,分别供Map任务和Reduce任
务使用。
置、数据长度、数据所在节点等,划分方法由用户决定,每个split各自交由一个Map任务处
理,split的多少决定了Map任务的数目。
键值对为中间结果。
每个分区将被一个Reduce任务处理。Reduce任务从远程节点上读取Map任务的中间结果,按
照key值对(key1,value1)键值对进行排序并依次读取,调用用户自定义Reduce类中reduce
函数进行处理,将最终结果存储至HDFS中。
之间的数据传输。因此,Hadoop允许用户针对Map任务的输出指定一个combiner函数,其输
出作为reduce函数的输入。combiner作为Map任务的一部分,执行完map函数后紧接着执行
combiner,其过程与reduce过程类似,都是对具有相同key值的数据进行合并。Hadoop平台
设计是为了降低工作执行过程中开销比较高的部分,一般情况下是磁盘和网络部分,但是
Map任务的输出往往是巨大的,可能是原始输入数据的许多倍,直接传输给Reduce节点的
话,将造成巨大的网络传输开销,采用combiner优化可减少网络传输的数据量。由于
combine属于优化方案,Hadoop无法确定要对Map任务输出记录调用多少次combiner,换句
话说,不管调用combiner多少次,Reduce任务的输出结果是一样的。combiner函数没有属于
自己的编程接口,但是combiner计算处理数据与Reduce任务有同样的特性,继承的也是
Reducer类。
率。
尽可能远,因此假设已知前q个中心点,那么第q+1个中心点应是待选取数据点中与前q个中
心点之间最小距离中最大者。对于大数据集,可先求取局部中心点,在此基础上计算全局中
心点,这种方法计算的数据也可以利用MapReduce并行框架,即将输入的数据集分为若干个
数据块,分配到同等数量的Map任务中,Map任务计算分配到的数据块输出局部中心点,以此
为基础利用Reduce任务计算全局中心点,得到初始中心点和最优聚类个数。第二部分,差分
可辨性k原型聚类方法利用初始中心点对数据集迭代聚类,其重点集中于聚类中心点和数
据点之间的相似性的度量,得到可防止隐私泄露的聚类中心点。该方法利用MapReduce框架
实现,以并行方式处理数据,MapReduce框架将输入的数据集分为若干个数据块,分配到同
等数量的Map任务中,Map任务分别计算分配到的数据块并输出中间结果,Reduce任务接收
中间结果进行计算,更新聚类中心点后迭代进行上述过程,直到聚类中心点的变化小于阈
值或者迭代次数达到上限,输出最终聚类结果。
MapReduce中确定初始中心点和最优聚类个数;2)在MapReduce中实现差分可辨性k原型聚
类得到最终结果。
数据集D中某一数据记录表示为xi=(xi1,xi2,...,xid)。对数据集D每维属性进行调整,使前
dr维为数值型数据,后dc维为分类型数据。读取数据集D每条记录xi的前dr维属性,设置第一
条记录x1前dr维属性值分别为初始最大值 和最小值
将其余N‑1条记录的前dr维属性值分别与max和min比较大小,
得到前dr维各维属性的最大值 和最小值
通过归一化公式 将xi的前dr维属性归一化处理至
空间 中,形成新数据集D1。
归一化的作用是使得预处理的数据被限定在一定范围内。
分可辨性k原型聚类,即第二个子任务。两个MapReduce子任务均可通过执行Map任务和
Reduce任务实现。
任务和Reduce任务,其中分别定义了Mapper类、Reducer类的实现。
中设置集合Q=null,设置迭代次数 L为每个map函数读取数据的记录数。在迭代次数
内,当集合Q为空时,计算数据集D1中数据点xi与坐标原点距离的最小值,将数据点xi保
存至集合Q;当集合Q不为空时,计算数据集D1中数据点xi与集合Q中局部中心点的距离,得出
最小距离中的最大者,将最小距离中的最大者保存至集合Q。
中心点。
时,将会使某一点属于多个Canopy内;当T2过大时,将减小聚类个数k。因此,本发明借鉴
Canopy算法的思想,采用“最大最小原则”提高聚类个数和初始中心点的准确性。
点,那么第q+1中心点应是待选取数据点中与前q个中心点之间最小距离中最大者,公式如
下:
值。这样就避免了区域半径T2的设置。
坐标原点最近或者最远的数据点代替整个数据集中初始距离最远的数据点;其次,对于大
数据集,先利用Map任务求取局部中心点,以此为基础利用Reduce任务求取全局中心点;最
后,生成局部中心点时,为降低迭代次数,可选择迭代次数为 此处L为局部数据集大小,
一般情况下聚类个数
次数为 和集合Q'=null。在迭代次数 内,当集合Q'为空时,计算集合Q中局部中心
点与坐标原点距离的最小值,将局部中心点保存至集合Q';当集合Q'不为空时,计算集合Q
中局部中心点q与Q'的中心点之间的距离,得出最小距离中的最大者,将最小距离中的最大
者保存至集合Q'。计算集合Q'的数据总量K,设置迭代次数为 在迭代次数 内,
计算集合Q'中指标Depth(i)的最大值,将集合中前i个点赋值至空集合U中,U为聚类的初始
中心点集合,最优聚类个数k=i,输出初始中心点集合U。
时,Distmin有较大变化。因此,为了确定最优的聚类个数,引入指标Depth(i)表示Distmin变
化幅度,公式如下:
Laplace分布的随机噪声 指数机制以正比于
的概率从分类型数据中选择并输出属性值。其中,f为查询函数,Δf为
r
f的全局敏感度。对于归一化的数值型数据,全局敏感度Δf=dr,对于分类型数据,全局敏
c
感度Δf=1,数据集D1总敏感度为Δf=dr+1。m为可能数据集数,mr和mc分别为数值型和分
类型可能数据集数的最小值。ρ为差分可辨性的隐私参数,迭代次数T未知时,第i(1≤i≤T)
轮迭代数值型和分类型数据的隐私参数分别为
表示属于数据集D'的个体集合。在给定攻击者的背景知识 时,将会存在一个可能数据集
的集合Ψ,每个可能数据集D′和U中的某个实体组成,表示为
集合Ψ中只有一个数据集产生输出结果的正确数据集,其中每个可能数据集ω∈Ψ为数据
集D的概率是相等的,即推断未知个体属于数据集的先验概率为1/m,m=|Ψ|=|U|‑|D′|。
Lap(λ), 差分隐私的Laplace机制仅适用于数值型数据。对于非数值型
数据,需要差分可辨性的指数机制。
辨性。假设每个可能数据集等概率,当差分隐私的隐私预算 时,ε‑差分隐私的
指数机制也可用于实现ρ‑差分可辨性。
r
fsum的全局敏感度Δf至多为dr。差分可辨性假设攻击者已知数据集D的邻近数据集,仅不确
定某个个体,即攻击者已知数据集的总记录数;对于分类型子集Dc,函数fcount对每维属性的
c
分类值进行计数,其全局敏感度Δf至多为1。
私参数ρi将逐渐接近攻击者随机猜测正确的概率。对于具有多维属性的输入数据集D,每一
维属性均会产生可能数据集集合Ψ,导致整个数据集D的可能数据集个数m很大,即攻击者
的先验概率很小。实际中攻击者可能以很高的自信推断个体t是否在数据集D中,因此,对于
数值型子集Dr,设算法中使用的可能数据集数mr为Dr中各维属性可能数据集|Ψr|的最小
值;对于分类型子集Dc,设算法中使用的可能数据集数mc为Dc中各维属性可能数据集|Ψc|
的最小值。此时,等价于假设攻击者仅不确定个体t某一维属性的具体值。
论迭代总数T是否确定,每轮迭代的ρi值需要根据可能数据集数m,隐私参数ρ和
计算得到,其中iter表示第iter轮迭代。计算迭代过程的ρi值,关键是确定ρ1的值。大多数聚
类算法以往的经验证明,前期迭代对聚类的影响大于后期的迭代。对于差分隐私,Dwork提
出每轮迭代消耗剩余隐私预算一半的隐私参数分配策略,则第i轮迭代的隐私预算为εi=
i
ε/2 。在假设可能数据集之间等概率的情况下,差分隐私和差分可辨性之间存在一个映射
关系。当可能数据集m和ρ确定时,k原型算法也满足 ‑差分隐私。因此,第一轮的ρ1
可以通过 计算。对于后期迭代过程,为确保ρi>1/m,ρi将减小为保证
为实现ρ‑差分可辨性,后期迭代ρi的取值应为
因此,对于数值型子集Dr,每轮迭代的
对于分类型子集Dc,数值型和分类型数据的隐私
参数分别为 根据差分可辨性的并行组合性,n个
机制M1,...,Mn对于互不相交且独立的子集,提供(minρi)‑差分可辨性。当迭代总数为T时,
整个k原型算法满足的隐私保护水平为 满足ρ‑差分可辨
性。
过程的时间复杂度很大,处理的效率也会降低。为改善混合型大数据聚类的效率,本发明实
施方案从并行计算角度出发,将k原型聚类算法在MapReduce并行计算框架中实现。
函数读取集合U中k个初始中心点u1,...,uk,读入事先定义的集合clustercenters中。map函
数读取接收到的每条数据记录xi,分别计算xi与k个初始中心点的距离Distance,得到与xi
距离值最小的聚类中心ui(1≤i≤k),将记录xi划分到此聚类。将聚类标号i作为键值对的
key值,数据记录的各维属性值作为value,map函数输出(key,value)键值对。
的数值型数据,计算同一个聚类中数据数目之和numi和各维属性值之和sumi,对其添加
Laplace噪声可得到sumi',计算sumi'/numi得到数值型数据的聚类中心 对于后dc维分类
型数据,计算每维属性的分类值出现次数,根据出现次数,使用指数机制选择并输出每维属
性的分类值,即为分类型数据的聚类中心 将 和 合并即可得到新一轮聚类中心点
集合ui'。
两轮中心点集合的距离Dis小于指定阈值Threshold或者迭代次数已经到达迭代总数值T,
则迭代终止,输出最终的聚类中心点集合U'。若不满足要求,继续重复步骤6~步骤8。
录xi划分至相应的聚类,数据记录的各维属性值作为键值对的key1,聚类标号作为键值对
的value1,map函数输出(key1,value1)键值对,即最终的聚类结果。
假设数据集D包含n个数据记录x1,x2,...xn,每条数据记录均有d维属性xi={xi1,xi2,...,
xid},其中1≤i≤n。两个数据记录xi和xj之间的k原型距离的公式为:
据的维数,采用简单匹配距离计算,简单匹配距离δ(xil,xjl)为:
型的中心点,对分类型数据,使用指数机制选择分类型的中心点,从而满足保护个人隐私信
息的需求。聚类进行迭代时,每个Reduce任务并行地处理数据,计算满足差分可辨性的聚类
中心点,结果相当于差分可辨性的并行组合。根据并行组合性质,若第i轮迭代各个Reduce
任务计算中心点使用的隐私参数均为ρi,则第i轮迭代满足ρi‑差分可辨性。
MapReduce的差分可辨性k原型聚类方法原理的前提下,还可以做出若干改进和润饰,这些
改进和润饰也应视为本发明一种基于MapReduce的差分可辨性k原型聚类方法的保护范围。