CN110619231B - 一种基于MapReduce的差分可辨性k原型聚类方法 - Google Patents
一种基于MapReduce的差分可辨性k原型聚类方法 Download PDFInfo
- Publication number
- CN110619231B CN110619231B CN201910793018.4A CN201910793018A CN110619231B CN 110619231 B CN110619231 B CN 110619231B CN 201910793018 A CN201910793018 A CN 201910793018A CN 110619231 B CN110619231 B CN 110619231B
- Authority
- CN
- China
- Prior art keywords
- data
- clustering
- differential
- value
- mapreduce
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000007246 mechanism Effects 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000000638 solvent extraction Methods 0.000 claims abstract description 8
- 238000007781 pre-processing Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 19
- 230000035945 sensitivity Effects 0.000 claims description 17
- 239000003638 chemical reducing agent Substances 0.000 claims description 5
- 238000010606 normalization Methods 0.000 claims description 4
- 238000005192 partition Methods 0.000 claims description 4
- 238000007418 data mining Methods 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 40
- 238000004364 calculation method Methods 0.000 description 13
- 238000013461 design Methods 0.000 description 7
- FBOUIAKEJMZPQG-AWNIVKPZSA-N (1E)-1-(2,4-dichlorophenyl)-4,4-dimethyl-2-(1,2,4-triazol-1-yl)pent-1-en-3-ol Chemical compound C1=NC=NN1/C(C(O)C(C)(C)C)=C/C1=CC=C(Cl)C=C1Cl FBOUIAKEJMZPQG-AWNIVKPZSA-N 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2216/00—Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
- G06F2216/03—Data mining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于MapReduce的差分可辨性k原型聚类方法,包含以下步骤:步骤1:对输入数据集D进行预处理;步骤2:MapReduce框架的任务设置;步骤3:确定每个Map任务中的局部中心点集合Q;步骤4:根据局部中心点集合Q确定聚类个数k;步骤5:设置差分可辨性实现机制的参数;步骤6:划分数据集D1的每条数据记录至相应聚类;步骤7:计算新一轮聚类中心点;步骤8:比较两轮聚类中心点;步骤9:根据最终聚类中心点划分数据集D1。本发明方法为大数据挖掘的从业者提供了一种简单的参数化方法;提高数据处理效率,同时可保证数据的安全性和效用。
Description
技术领域
本发明涉及一种基于MapReduce的差分可辨性k原型聚类方法,属于网络空间安全技术领域。
背景技术
数据挖掘是大数据背景下一种高效的、深层次的数据分析技术,吸纳了机器学习、数据库、统计学等许多应用领域的大量技术,迅速成为各行各业的研究热点。聚类分析作为数据挖掘的重要方向,被广泛应用于各种场景。聚类针对数据集的特点和具体分析任务的不同可设计不同的算法,按照处理对象的类型可以将聚类算法分为三类:数值型数据聚类算法、分类型数据聚类算法和混合型数据聚类算法。数据挖掘中大部分聚类算法只能处理数值型或者分类型的数据。实际上,生成的数据多为混合型,使用单一类型属性数据的聚类算法对混合型数据聚类,会造成信息丢失,数据效用降低。因此,对混合型数据的聚类算法的研究具有十分重大的意义。
数据挖掘在分析大数据的同时,在某种程度上加剧了隐私泄露的可能性。隐私保护问题最早在20世纪70年代末被提出,此后众多学者陆续研发出许多隐私保护的模型。传统的隐私保护模型中,传统隐私保护方法以k-anonymity及相同理论基础上的扩展方法最具代表性。但上述隐私保护方法存在两个问题:(1)具有背景相关依赖性,即假定了某一攻击模型或者攻击者具有的背景知识;(2)缺少较为严格的理论基础,证明隐私保护水平程度十分困难。Dwork提出的差分隐私(Differential Privacy,DP)解决了这两个问题。2012年,Lee和Clifton认为差分隐私定义存在缺陷。隐私参数ε是差分隐私中评价隐私保护水平的指标,但是ε只限制相邻两个数据集的概率差异,即限制单个个体对输出的影响程度,而不是个体信息泄露的程度,这不符合相关法律对隐私的定义。因此,提出差分可辨性(Differential Identifiability,DI),与差分隐私提供相同的隐私保证,差分可辨性参数ρ限制个体被重新识别的概率,可为从业者提供了更简便的参数化方法。
传统的单机处理模型已经不能满足大量数据计算和存储的需要,使用并行模式处理大数据是目前最优的解决方案。Hadoop大数据平台上提供了一个开源的可扩展性和高可靠性的分布式计算环境,利用集群存储大量数据。MapReduce框架是Hadoop平台的重要组成部分,采用Master/Slave(M/S)架构,构建在分布式文件系统之上。MapReduce应用于大规模数据集的并行编程接口,基于“分而治之”的思想实现,归纳了经典的顺序式处理大数据的流程和特点,并借助函数式设计语言Lisp的基本思想,将map函数和reduce函数设计为两个高级的并行编程接口和抽象模型,用户只需编写这两个函数,即可完成简单的并行程序的设计,是目前提高大数据处理效率的最佳框架。
综上,在大数据分析时,混合型数据聚类方法易造成隐私泄露,并且传统数据处理模型不能满足大数据计算的需要。因此,本发明将给出大数据中的差分可辨性方法,确定差分可辨性的实现机制和组合性质,基于MapReduce框架实现混合型聚类算法k原型(k-prototypes),确保大数据平台上聚类结果的安全性和效用。
发明内容
本发明的技术解决问题:针对Hadoop平台现有安全技术的不足,提供一种基于MapReduce的差分可辨性k原型聚类方法,解决混合型聚类分析过程中隐私泄露问题的同时,实现算法并行化。
本发明采取的技术方案是:一种基于MapReduce的差分可辨性k原型聚类方法,它包含以下步骤:
步骤1:对输入数据集D进行预处理。数据集D的预处理包括D中数值型数据的归一化以及对数值型和分类型属性的调整,预处理后形成新数据集D1。
具体过程如下:
输入数据集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。
步骤2:MapReduce框架的任务设置。设置主任务Driver,先后调用基于MapReduce框架的两个子任务:一个是确定初始中心点和聚类个数,即第一个子任务;另一个是实现差分可辨性k原型聚类,即第二个子任务。两个子任务通过执行Map任务和Reduce任务实现。
步骤3:确定每个Map任务中的局部中心点集合Q。主任务Driver调用MapReduce中第一个子任务,确定初始中心点和最优聚类个数。所述第一子任务执行Mapper类,map函数中设置集合Q=null,设置迭代次数L为每个map函数读取数据的记录数。在迭代次数内,当集合Q为空时,计算数据集D1中数据点xi与坐标原点距离的最小值,将数据点xi保存至集合Q;当集合Q不为空时,计算数据集D1中数据点xi与集合Q中局部中心点的距离,得出最小距离中的最大者,将最小距离中的最大者保存至集合Q。
步骤4:根据局部中心点集合Q确定聚类个数k。第一子任务继续执行Reducer类,reduce函数接收集合Q={Q1,…,Qi,…},计算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:设置差分可辨性实现机制的参数。对于数值型数据和分类型数据,分别采用Laplace机制和指数机制实现差分可辨性。Laplace机制对数值型数据添加一个服从Laplace分布的随机噪声指数机制以正比于的概率从分类型数据中选择并输出属性值。其中,f为查询函数,Δf为f的全局敏感度。对于归一化的数值型数据,全局敏感度Δfr=dr,对于分类型数据,全局敏感度Δfc=1,数据集D1总敏感度为Δf=dr+1。m为可能数据集数,mr和mc分别为数值型和分类型可能数据集数的最小值。ρ为差分可辨性的隐私参数,迭代次数T未知时,第i(1≤i≤T)轮迭代数值型和分类型数据的隐私参数分别为
步骤6:划分数据集D1的每条数据记录至相应聚类。主任务Driver调用MapReduce中第二个子任务,进行差分可辨性k原型聚类。子任务执行Mapper类,设置Mapper类的setup函数读取集合U中k个初始中心点u1,...,uk,读入事先定义的集合clustercenters中。map函数读取接收到的每条数据记录xi,分别计算xi与k个初始中心点的距离Distance,得到与xi距离值最小的聚类中心ui(1≤i≤k),将记录xi划分到此聚类。将聚类标号i作为键值对的key值,数据记录的各维属性值作为value,map函数输出(key,value)键值对。
步骤7:计算新一轮聚类中心点。第二个子任务继续执行MapReduce中的Reducer类,接收键值对(key,value),合并属于同一个key值的聚类。设置reduce函数,对于前dr维的数值型数据,计算同一个聚类中数据数目之和numi和各维属性值之和sumi,对其添加Laplace噪声可得到sumi',计算sumi'/numi得到数值型数据的聚类中心对于后dc维分类型数据,计算每维属性的分类值出现次数,根据出现次数,使用指数机制选择并输出每维属性的分类值,即为分类型数据的聚类中心将和合并即可得到新一轮聚类中心点集合ui'。
步骤8:比较两轮聚类中心点。主任务Driver读取接收新一轮生成(所述步骤7)的聚类中心点集合和上轮(所述步骤6)的k个初始中心点集合,计算两轮聚类中心点集合间的距离Dis。若这两轮中心点集合的距离Dis小于指定阈值Threshold或者迭代次数已经到达迭代总数值T,则迭代终止,输出最终的聚类中心点集合U'。若不满足要求,继续重复步骤6~步骤8。
步骤9:根据最终聚类中心点划分数据集D1。主任务Driver再次调用MapReduce中的Mapper类,设置map函数按照最终生成的聚类中心点集合对数据集D1进行聚类,将每条记录xi划分至相应的聚类,数据记录的各维属性值作为键值对的key1,聚类标号作为键值对的value1,map函数输出(key1,value1)键值对,即最终的聚类结果。
本发明与现有技术相比的优点在于:
(1)本发明提出的差分可辨性k原型聚类方法为大数据挖掘的从业者提供了一种简单的参数化方法,可以在挖掘中通过设置隐私参数ρ实现个体可识别性的隐私概念,并且为差分隐私的隐私预算ε提供了一个取值上界。
(2)本发明将差分可辨性技术与经典的混合型聚类方法相结合,基于Hadoop中的MapReduce并行框架上实行操作,提高数据处理效率,同时也可保证数据的安全性和效用。
附图说明
图1为本发明的MapReduce框架组成示意图;
图2为本发明选取初始中心点示意图;
图3为本发明的差分可辨性k原型聚类流程图。
图中符号说明如下:
X1,X2,X3,X4表示选取的初始中心点;
D1表示输入数据集D归一化后的数据集;
Q表示局部中心点集合;
Depth(i)表示选择最佳聚类个数的指标,i表示第i个中心点;
k表示聚类个数;
key表示聚类标识,key1表示数据记录各维属性值;
value表示数据记录各维属性值,value1表示聚类标识。
具体实施方式
本发明所提出的一种基于MapReduce的差分可辨性k原型聚类方法,需解决以下两个问题:第一、如何将差分可辨性应用于大数据聚类实现数据的隐私保护;第二、如何部署差分可辨性k原型聚类方法到大数据平台上。
下面分两个部分阐述本发明的具体实施方法:
1.MapReduce框架
Hadoop大数据平台上的MapReduce框架是开源实现的,采用Master/Slave(M/S)架构,构建在分布式文件系统之上。MapReduce框架计算工作具有以下特点:工作任务可以被划分为多项子任务,而且这些子任务相对独立,彼此之间无牵制,可以并行计算完成,子任务完成后,该项工作内容也随之完成。MapReduce将map函数和reduce函数设计为两个高级的并行编程接口和抽象模型,通过编写这两个函数完成分布式程序的设计。
MapReduce框架主要由以下几个组件组成,如图1所示:
1)Client
用户编写的MapReduce程序通过Client提高到JobTracker端,用户可以通过Client提供的接口查看作业的运行状态。Hadoop内部使用作业(Job)表示MapReduce程序,一个MapReduce程序可以对应若干个作业,每个作业会被分解成若干个Map任务和Reduce任务(Task)。
2)JobTracker
JobTracker主要负责资源监控和作业调度。JobTracker监控所有TaskTracker与作业的健康状况,一旦发现失败的情况,则将相应的任务转到其他节点;同时,JobTracker会跟踪任务的执行进度蒙自源使用量等信息,并将这些信息告知任务调度器,任务调度器会在资源出现空闲时,选择合适的任务使用这些资源。任务调度器是一个可插拔的模块,用户可以根据自己的需要设计相应的调度器。
3)TaskTracker
TaskTracker周期性地通过Heartbeat将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接收JobTracker发送的命令并执行相应的操作。TaskTracker使用“slot”等量划分本节点上的资源量。“slot”代表计算资源(CPU、内存等),一个任务获取到一个slot后才有机会运行,Hadoop的调度器的作用就是将TaskTracker上的空闲slot分配给各个任务使用。slot分为Map slot和Reduce slot两种,分别供Map任务和Reduce任务使用。
4)Task
Task分为Map任务和Reduce任务两种,均有TaskTraker启动。对于MapReduce框架,处理数据的单位是split。split是一个逻辑概念,只包含一些元数据信息,比如数据起始位置、数据长度、数据所在节点等,划分方法由用户决定,每个split各自交由一个Map任务处理,split的多少决定了Map任务的数目。
Map任务将对应的split迭代解析成一个个(key,value)键值对,依次调用Mapper类中自定义的map函数进行相应计算,输出处理后的(key1,value1)键值对,(key1,value1)键值对为中间结果。
Reduce任务的数量由用户自定义的Partitioner类决定,默认只有一个Reduce任务。根据定义的Reduce任务数量,Map任务输出的中间数据被分为相应的分区(partition),每个分区将被一个Reduce任务处理。Reduce任务从远程节点上读取Map任务的中间结果,按照key值对(key1,value1)键值对进行排序并依次读取,调用用户自定义Reduce类中reduce函数进行处理,将最终结果存储至HDFS中。
在MapReduce框架的Map和Reduce任务的处理过程中,还有一个可供优化的步骤。由于集群上的可用带宽限制了MapReduce作业的数量,应该尽量避免Map任务和Reduce任务之间的数据传输。因此,Hadoop允许用户针对Map任务的输出指定一个combiner函数,其输出作为reduce函数的输入。combiner作为Map任务的一部分,执行完map函数后紧接着执行combiner,其过程与reduce过程类似,都是对具有相同key值的数据进行合并。Hadoop平台设计是为了降低工作执行过程中开销比较高的部分,一般情况下是磁盘和网络部分,但是Map任务的输出往往是巨大的,可能是原始输入数据的许多倍,直接传输给Reduce节点的话,将造成巨大的网络传输开销,采用combiner优化可减少网络传输的数据量。由于combine属于优化方案,Hadoop无法确定要对Map任务输出记录调用多少次combiner,换句话说,不管调用combiner多少次,Reduce任务的输出结果是一样的。combiner函数没有属于自己的编程接口,但是combiner计算处理数据与Reduce任务有同样的特性,继承的也是Reducer类。
2.基于MapReduce的差分可辨性k原型聚类方法
为了解决实际应用中混合型大数据聚类分析存在的个体隐私保护问题,设计了差分可辨性k原型聚类方法,并部署在MapReduce框架中进行并行化处理以提高数据处理效率。
本发明的基本思想可分为两个部分:第一部分,借鉴Canopy算法的思想,计算初始中心点和最优聚类个数。为避免中心点陷入局部最优,需要使任意两个中心点之间的距离尽可能远,因此假设已知前q个中心点,那么第q+1个中心点应是待选取数据点中与前q个中心点之间最小距离中最大者。对于大数据集,可先求取局部中心点,在此基础上计算全局中心点,这种方法计算的数据也可以利用MapReduce并行框架,即将输入的数据集分为若干个数据块,分配到同等数量的Map任务中,Map任务计算分配到的数据块输出局部中心点,以此为基础利用Reduce任务计算全局中心点,得到初始中心点和最优聚类个数。第二部分,差分可辨性k原型聚类方法利用初始中心点对数据集迭代聚类,其重点集中于聚类中心点和数据点之间的相似性的度量,得到可防止隐私泄露的聚类中心点。该方法利用MapReduce框架实现,以并行方式处理数据,MapReduce框架将输入的数据集分为若干个数据块,分配到同等数量的Map任务中,Map任务分别计算分配到的数据块并输出中间结果,Reduce任务接收中间结果进行计算,更新聚类中心点后迭代进行上述过程,直到聚类中心点的变化小于阈值或者迭代次数达到上限,输出最终聚类结果。
本发明的方法首先借鉴Canopy计算聚类个数k和初始中心点,其次使用差分可辨性k原型聚类得到满足差分可辨性的聚类中心点。本发明的方法包括两部分:1)在MapReduce中确定初始中心点和最优聚类个数;2)在MapReduce中实现差分可辨性k原型聚类得到最终结果。
一种基于MapReduce的差分可辨性k原型聚类方法具体过程如下:
步骤1:对输入数据集D进行预处理。输入数据集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。
在数据处理中,不同评价指标多数具有不同的量纲和量纲单位,会影响数据分析的结果。为了消除量纲的影响,需要对数据进行标准化处理,最典型的就是数据的归一化,归一化的作用是使得预处理的数据被限定在一定范围内。
步骤2:MapReduce框架的任务设置。设置主任务Driver,先后调用基于MapReduce框架的两个子任务:一个是确定初始中心点和聚类个数,即第一个子任务,另一个是实现差分可辨性k原型聚类,即第二个子任务。两个MapReduce子任务均可通过执行Map任务和Reduce任务实现。
本发明实施方案若要实现并行化,主要是实现确定初始中心点和差分可辨性k原型聚类算法的并行化。根据图1的MapReduce框架,将方案的数据处理任务分为两部分:Map任务和Reduce任务,其中分别定义了Mapper类、Reducer类的实现。
从步骤3到步骤4,主要用于在MapReduce框架中第一个子任务,确定初始中心点和最优聚类个数k。
步骤3:确定每个Map任务中的局部中心点集合Q。主任务Driver调用MapReduce中第一个子任务,确定初始中心点和最优聚类个数。所述第一子任务执行Mapper类,map函数中设置集合Q=null,设置迭代次数L为每个map函数读取数据的记录数。在迭代次数内,当集合Q为空时,计算数据集D1中数据点xi与坐标原点距离的最小值,将数据点xi保存至集合Q;当集合Q不为空时,计算数据集D1中数据点xi与集合Q中局部中心点的距离,得出最小距离中的最大者,将最小距离中的最大者保存至集合Q。
关于聚类个数k和初始中心点的设置问题,在大多数情况下,两者是随机或根据多次实验选取,两者选取的不同会影响到聚类效果,因此,采用Canopy确定聚类个数k和初始中心点。
已有研究已经证明,通过Canopy算法确定的k值和初始中心点可以得到较好的聚类效果。但是,从原理上可以看出传统的Canopy算法易受区域半径T1和T2的影响。当T1过大时,将会使某一点属于多个Canopy内;当T2过大时,将减小聚类个数k。因此,本发明借鉴Canopy算法的思想,采用“最大最小原则”提高聚类个数和初始中心点的准确性。
Canopy算法的基本思想是将输入数据集分为若干个Canopy,本发明为避免聚类的结果出现局部最优的情况,最初任意两个中心点的距离应该尽可能远。假设已知前q个中心点,那么第q+1中心点应是待选取数据点中与前q个中心点之间最小距离中最大者,公式如下:
L表示当前任务中数据集的数据总量,DisCollect(q+1)表示待确定的第q+1个中心点与前q个中心点间距中的最小值,Distmin表示第q+1个中心点应是最小距离中的最大值。这样就避免了区域半径T2的设置。
由于上述公式计算得到的中心点并非最终聚类中心点,在计算时只需要保证各个中心点之间的距离值最大,不必在全局范围内求解,所以可采用以下方式:首先,使用距离坐标原点最近或者最远的数据点代替整个数据集中初始距离最远的数据点;其次,对于大数据集,先利用Map任务求取局部中心点,以此为基础利用Reduce任务求取全局中心点;最后,生成局部中心点时,为降低迭代次数,可选择迭代次数为此处L为局部数据集大小,一般情况下聚类个数
步骤4:根据局部中心点集合Q确定聚类个数k。第一子任务继续执行Reducer类,reduce函数接收集合Q={Q1,…,Qi,…},计算P=Count(Q),P为集合Q的数据总量,设置迭代次数为和集合Q'=null。在迭代次数内,当集合Q'为空时,计算集合Q中局部中心点与坐标原点距离的最小值,将局部中心点保存至集合Q';当集合Q'不为空时,计算集合Q中局部中心点q与Q'的中心点之间的距离,得出最小距离中的最大者,将最小距离中的最大者保存至集合Q'。计算集合Q'的数据总量K,设置迭代次数为在迭代次数内,计算集合Q'中指标Depth(i)的最大值,将集合中前i个点赋值至空集合U中,U为聚类的初始中心点集合,最优聚类个数k=i,输出初始中心点集合U。
在实际应用时,计算公式Distmin有如下规律:当已有的中心点个数低于或者超过真实的类别个数时,Distmin的变化幅度较小;当已有的中心点个数接近或达到真实类别数时,Distmin有较大变化。因此,为了确定最优的聚类个数,引入指标Depth(i)表示Distmin变化幅度,公式如下:
Depth(i)=|Distmin(i)-Distmin(i-1)|+|Distmin(i+1)-Distmin(i)|
当聚类个数达到最优时,Depth(i)有最大值,最优聚类个数k=i,前i个数据点即为初始中心点。
步骤5:设置差分可辨性实现机制的参数。对于数值型数据和分类型数据,分别采用Laplace机制和指数机制实现差分可辨性。Laplace机制对数值型数据添加一个服从Laplace分布的随机噪声指数机制以正比于的概率从分类型数据中选择并输出属性值。其中,f为查询函数,Δf为f的全局敏感度。对于归一化的数值型数据,全局敏感度Δfr=dr,对于分类型数据,全局敏感度Δfc=1,数据集D1总敏感度为Δf=dr+1。m为可能数据集数,mr和mc分别为数值型和分类型可能数据集数的最小值。ρ为差分可辨性的隐私参数,迭代次数T未知时,第i(1≤i≤T)轮迭代数值型和分类型数据的隐私参数分别为
ρ-差分可辨性假设攻击者的背景知识为其中U为全集,是D的相邻数据集,即|D′|=|D|-1,I(t)表示与U中的实体t对应的个体身份,表示属于数据集D'的个体集合。在给定攻击者的背景知识时,将会存在一个可能数据集的集合Ψ,每个可能数据集D′和U中的某个实体组成,表示为集合Ψ中只有一个数据集产生输出结果的正确数据集,其中每个可能数据集ω∈Ψ为数据集D的概率是相等的,即推断未知个体属于数据集的先验概率为1/m,m=|Ψ|=|U|-|D′|。
给定查询函数f的敏感度Δf时,差分隐私的Laplace机制可用于实现差分可辨性,通过为输出结果添加随机噪声Y实现ρ-差分可辨性,Y是服从Laplace分布的随机变量,Y~Lap(λ),差分隐私的Laplace机制仅适用于数值型数据。对于非数值型数据,需要差分可辨性的指数机制。
指数机制中查询函数f为U×Range中每个(D,r)对生成一个实值分数。指数机制M以正比于的概率从输出范围Range中选择并输出实体r,可实现差分可辨性。假设每个可能数据集等概率,当差分隐私的隐私预算时,ε-差分隐私的指数机制也可用于实现ρ-差分可辨性。
为了实现差分可辨性,全局敏感度Δf,可能数据集数m和隐私参数ρ是实现两个机制的重要参数。设有查询函数f,对于任意两个邻近数据集D和D',下列公式成立
则称Δf为函数的全局敏感度。
根据差分可辨性的并行组合性,输入数据集D可看作由两个互不相交的子集:数值型子集Dr和分类型子集Dc组成。对于数值型子集Dr,每维属性被归一化至求和函数fsum的全局敏感度Δfr至多为dr。差分可辨性假设攻击者已知数据集D的邻近数据集,仅不确定某个个体,即攻击者已知数据集的总记录数;对于分类型子集Dc,函数fcount对每维属性的分类值进行计数,其全局敏感度Δfc至多为1。
根据差分可辨性的序列组合性,n个机制M1,...,Mn序列构成的组合提供-差分可辨性。随着迭代次数的增加,每轮的隐私参数ρi将逐渐接近攻击者随机猜测正确的概率。对于具有多维属性的输入数据集D,每一维属性均会产生可能数据集集合Ψ,导致整个数据集D的可能数据集个数m很大,即攻击者的先验概率很小。实际中攻击者可能以很高的自信推断个体t是否在数据集D中,因此,对于数值型子集Dr,设算法中使用的可能数据集数mr为Dr中各维属性可能数据集|Ψr|的最小值;对于分类型子集Dc,设算法中使用的可能数据集数mc为Dc中各维属性可能数据集|Ψc|的最小值。此时,等价于假设攻击者仅不确定个体t某一维属性的具体值。
与差分隐私不同,差分可辨性算法不能直接设置每轮迭代的ρi。根据差分可辨性的并行组合性,已知可能数据集数m,迭代总数为T时,算法满足-差分可辨性。无论迭代总数T是否确定,每轮迭代的ρi值需要根据可能数据集数m,隐私参数ρ和计算得到,其中iter表示第iter轮迭代。计算迭代过程的ρi值,关键是确定ρ1的值。大多数聚类算法以往的经验证明,前期迭代对聚类的影响大于后期的迭代。对于差分隐私,Dwork提出每轮迭代消耗剩余隐私预算一半的隐私参数分配策略,则第i轮迭代的隐私预算为εi=ε/2i。在假设可能数据集之间等概率的情况下,差分隐私和差分可辨性之间存在一个映射关系。当可能数据集m和ρ确定时,k原型算法也满足-差分隐私。因此,第一轮的ρ1可以通过计算。对于后期迭代过程,为确保ρi>1/m,ρi将减小为保证为实现ρ-差分可辨性,后期迭代ρi的取值应为因此,对于数值型子集Dr,每轮迭代的对于分类型子集Dc,数值型和分类型数据的隐私参数分别为根据差分可辨性的并行组合性,n个机制M1,...,Mn对于互不相交且独立的子集,提供(minρi)-差分可辨性。当迭代总数为T时,整个k原型算法满足的隐私保护水平为满足ρ-差分可辨性。
在差分可辨性k原型聚类算法中,迭代过程需要对数据点进行不断地调整聚类,会进行很多次聚类中心点的计算。对于混合型大数据集,聚类算法的处理效果并不理想,聚类过程的时间复杂度很大,处理的效率也会降低。为改善混合型大数据聚类的效率,本发明实施方案从并行计算角度出发,将k原型聚类算法在MapReduce并行计算框架中实现。
从步骤6到步骤9,主要用于在MapReduce框架中实现差分可辨性k原型聚类算法得到最终结果。
步骤6:划分数据集D1的每条数据记录至相应聚类。主任务Driver调用MapReduce中第二个子任务,进行差分可辨性k原型聚类。子任务执行Mapper类,设置Mapper类的setup函数读取集合U中k个初始中心点u1,...,uk,读入事先定义的集合clustercenters中。map函数读取接收到的每条数据记录xi,分别计算xi与k个初始中心点的距离Distance,得到与xi距离值最小的聚类中心ui(1≤i≤k),将记录xi划分到此聚类。将聚类标号i作为键值对的key值,数据记录的各维属性值作为value,map函数输出(key,value)键值对。
步骤7:计算新一轮聚类中心点。第二个子任务继续执行MapReduce中的Reducer类,接收键值对(key,value),合并属于同一个key值的聚类。设置reduce函数,对于前dr维的数值型数据,计算同一个聚类中数据数目之和numi和各维属性值之和sumi,对其添加Laplace噪声可得到sumi',计算sumi'/numi得到数值型数据的聚类中心对于后dc维分类型数据,计算每维属性的分类值出现次数,根据出现次数,使用指数机制选择并输出每维属性的分类值,即为分类型数据的聚类中心将和合并即可得到新一轮聚类中心点集合ui'。
步骤8:比较两轮聚类中心点。主任务Driver读取接收所述步骤7生成的聚类中心点集合和上轮(步骤6)的k个初始中心点集合,计算两轮聚类中心点集合间的距离Dis。若这两轮中心点集合的距离Dis小于指定阈值Threshold或者迭代次数已经到达迭代总数值T,则迭代终止,输出最终的聚类中心点集合U'。若不满足要求,继续重复步骤6~步骤8。
步骤9:根据最终聚类中心点划分数据集D1。主任务Driver再次调用MapReduce中的Mapper类,设置map函数按照最终生成的聚类中心点集合对数据集D1进行聚类,将每条记录xi划分至相应的聚类,数据记录的各维属性值作为键值对的key1,聚类标号作为键值对的value1,map函数输出(key1,value1)键值对,即最终的聚类结果。
k原型聚类算法计算数据记录与中心点的距离时,采用的相异性度量是k原型距离,通过权重γ把平方欧氏距离和简单匹配距离结合在一起得到一个新的距离计算方式。假设数据集D包含n个数据记录x1,x2,...xn,每条数据记录均有d维属性xi={xi1,xi2,...,xid},其中1≤i≤n。两个数据记录xi和xj之间的k原型距离的公式为:
其中,表示数值型数据之间的相异性度量,dr为数值型数据的维数,采用平方欧氏距离进行计算。表示分类型数据之间的相异性度量,dc为分类型数据的维数,采用简单匹配距离计算,简单匹配距离δ(xil,xjl)为:
权重γ的引入是为了避免相异性度量中过于偏向数值型数据或者分类型数据,从而导致聚类的效用降低。γ进行聚类前是未知的,可以通过多次实验确定最佳的权重γ。
从上述步骤中可以看出MapReduce并行框架下实施本发明实施方案的聚类过程时,在每次迭代的reduce函数中对数值型数据添加服从Laplace分布的随机噪声计算数值型的中心点,对分类型数据,使用指数机制选择分类型的中心点,从而满足保护个人隐私信息的需求。聚类进行迭代时,每个Reduce任务并行地处理数据,计算满足差分可辨性的聚类中心点,结果相当于差分可辨性的并行组合。根据并行组合性质,若第i轮迭代各个Reduce任务计算中心点使用的隐私参数均为ρi,则第i轮迭代满足ρi-差分可辨性。
本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
以上所述仅是本发明一种基于MapReduce的差分可辨性k原型聚类方法优选的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明一种基于MapReduce的差分可辨性k原型聚类方法原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明一种基于MapReduce的差分可辨性k原型聚类方法的保护范围。
Claims (6)
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的总敏感度;对于归一化的数值型数据,全局敏感度Δfr=dr,对于分类型数据,全局敏感度Δfc=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。
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'。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910793018.4A CN110619231B (zh) | 2019-08-26 | 2019-08-26 | 一种基于MapReduce的差分可辨性k原型聚类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910793018.4A CN110619231B (zh) | 2019-08-26 | 2019-08-26 | 一种基于MapReduce的差分可辨性k原型聚类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110619231A CN110619231A (zh) | 2019-12-27 |
CN110619231B true CN110619231B (zh) | 2021-06-18 |
Family
ID=68922114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910793018.4A Active CN110619231B (zh) | 2019-08-26 | 2019-08-26 | 一种基于MapReduce的差分可辨性k原型聚类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110619231B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782379B (zh) * | 2020-08-01 | 2023-01-31 | 中国人民解放军国防科技大学 | 基于完成效率的数据中心作业调度方法及系统 |
CN112800253B (zh) * | 2021-04-09 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 数据聚类方法、相关设备及存储介质 |
CN113505823B (zh) * | 2021-07-02 | 2023-06-23 | 中国联合网络通信集团有限公司 | 供应链安全分析方法及计算机可读存储介质 |
CN113704787B (zh) * | 2021-08-30 | 2023-12-29 | 国网江苏省电力有限公司营销服务中心 | 一种基于差分隐私的隐私保护聚类方法 |
CN113792343B (zh) * | 2021-09-17 | 2024-07-26 | 国网山东省电力公司电力科学研究院 | 数据隐私的处理方法、装置、存储介质和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423636A (zh) * | 2017-07-06 | 2017-12-01 | 北京航空航天大学 | 一种基于MapReduce的差分隐私K均值聚类方法 |
CN107451618A (zh) * | 2017-08-10 | 2017-12-08 | 中国人民大学 | 一种密度峰值聚类算法的差分隐私保护方法 |
CN108268611A (zh) * | 2017-12-29 | 2018-07-10 | 天津南大通用数据技术股份有限公司 | 一种基于MapReduce的k-means文本聚类的方法及装置 |
CN109063513A (zh) * | 2018-06-20 | 2018-12-21 | 北京航空航天大学 | 一种基于Hadoop平台的动态数据完整性验证方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10242473B2 (en) * | 2017-03-22 | 2019-03-26 | Sas Institute Inc. | Computer system to generate scalable plots using clustering |
-
2019
- 2019-08-26 CN CN201910793018.4A patent/CN110619231B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423636A (zh) * | 2017-07-06 | 2017-12-01 | 北京航空航天大学 | 一种基于MapReduce的差分隐私K均值聚类方法 |
CN107451618A (zh) * | 2017-08-10 | 2017-12-08 | 中国人民大学 | 一种密度峰值聚类算法的差分隐私保护方法 |
CN108268611A (zh) * | 2017-12-29 | 2018-07-10 | 天津南大通用数据技术股份有限公司 | 一种基于MapReduce的k-means文本聚类的方法及装置 |
CN109063513A (zh) * | 2018-06-20 | 2018-12-21 | 北京航空航天大学 | 一种基于Hadoop平台的动态数据完整性验证方法 |
Non-Patent Citations (3)
Title |
---|
Differential Identifiability;Jaewoo Lee等;《KDD ’12》;20120816;第1041-1049页 * |
差分隐私保护及其应用;熊平等;《计算机学报》;20140131;第37卷(第1期);第101-122页 * |
差分隐私模型的启发式隐私参数设置策略;欧阳佳等;《计算机应用研究》;20190131;第36卷(第1期);第250-253页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110619231A (zh) | 2019-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110619231B (zh) | 一种基于MapReduce的差分可辨性k原型聚类方法 | |
US11741361B2 (en) | Machine learning-based network model building method and apparatus | |
US10713597B2 (en) | Systems and methods for preparing data for use by machine learning algorithms | |
Sardá-Espinosa | Comparing time-series clustering algorithms in r using the dtwclust package | |
CN107423636B (zh) | 一种基于MapReduce的差分隐私K均值聚类方法 | |
Chacón | A population background for nonparametric density-based clustering | |
US20170330078A1 (en) | Method and system for automated model building | |
Züfle et al. | Representative clustering of uncertain data | |
CN104820708B (zh) | 一种基于云计算平台的大数据聚类方法和装置 | |
CN104809244B (zh) | 一种大数据环境下的数据挖掘方法和装置 | |
CN107832456B (zh) | 一种基于临界值数据划分的并行knn文本分类方法 | |
US20200286095A1 (en) | Method, apparatus and computer programs for generating a machine-learning system and for classifying a transaction as either fraudulent or genuine | |
Cheng et al. | A local cores-based hierarchical clustering algorithm for data sets with complex structures | |
Arnaiz-González et al. | MR-DIS: democratic instance selection for big data by MapReduce | |
US20180247226A1 (en) | Classifier | |
CN113516019B (zh) | 高光谱图像解混方法、装置及电子设备 | |
CN114386466A (zh) | 一种用于脉冲星搜寻中候选体信号挖掘的并行的混合聚类方法 | |
Carneiro et al. | Network-based data classification: combining k-associated optimal graphs and high-level prediction | |
Ji et al. | Clustering ensemble based on approximate accuracy of the equivalence granularity | |
Bruzzese et al. | DESPOTA: DEndrogram slicing through a pemutation test approach | |
Yan et al. | A clustering algorithm for multi-modal heterogeneous big data with abnormal data | |
Wen et al. | PSubCLUS: A parallel subspace clustering algorithm based on spark | |
Graner | Scalable Algorithms in NonparametricComputational Statistics | |
Ji | Research on fast de-duplication of text backup information in library database based on big data | |
Xue et al. | Tsc-gcn: A face clustering method based on gcn |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |