[发明专利]一种基于MapReduce的差分隐私K均值聚类方法有效
申请号: | 201710546207.2 | 申请日: | 2017-07-06 |
公开(公告)号: | CN107423636B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 尚涛;赵铮;杨英;马旭;关振宇;刘建伟 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F21/62 | 分类号: | G06F21/62;G06K9/62;G06F16/2458 |
代理公司: | 北京慧泉知识产权代理有限公司 11232 | 代理人: | 王顺荣;唐爱华 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明一种基于MapReduce的差分隐私K均值聚类方法,首先使用改进的Canopy算法得到聚类个数K,其次使用差分隐私K均值聚类算法得到满足差分隐私保护的聚类中心点。1)在MapRedcue中实现改进Canopy算法,确定初始中心点;2)在MapReduce中实现差分隐私K均值算法得到最终结果。本发明在一定程度上对随机选取中心点的问题作出了改进,且在可以大数据环境下应用,在获得较好隐私保护的前提下,使聚类结果的可用性有较好的保障。本发明将差分隐私技术与经典的挖掘聚类方法相结合,基于Hadoop中的MapReduce并行框架上实行操作,在可用性上得到了改善,且最终聚类结果的准确性较好。 | ||
搜索关键词: | 一种 基于 mapreduce 隐私 均值 方法 | ||
【主权项】:
一种基于MapReduce的差分隐私K均值聚类方法,其特征在于:该方法包含以下步骤:步骤1:对数据进行归一化处理;数据集D中记录数为N条,分别记为xi(1≤i≤N),每条数据维数为d,即数据集D中某一数据值xi=(xi1,xi2,...,xid)T是d维属性,T表示行列式的转置运算;读取数据集D的每条记录xi(1≤i≤N),设置第一条记录x1的每维属性为其所在维的初始最大值max和初始最小值min,将剩余记录的各维属性分别与max和min比较大小,得到每维属性的最大值Max和最小值Min,通过归一化公式将xi的各维属性归一化处理至空间[0,1]d中,形成新数据集D';步骤2:确定优化Canopy算法中每个Map任务中的局部中心点;主任务Driver调用MapReduce中的Mapper类,map函数中设置集合Q为空,设置迭代次数L为map函数中的局部数据集大小;在不超过迭代次数的前提下,若集合Q为空,求数据集D'中数据点xi与坐标原点距离的最小值min,将该点保存至集合Q,若集合Q不为空,计算数据集D'中数据点xi与集合Q中数据点的距离,得出最小距离中的最大者Distmin,保存至集合Q中;步骤3:采用局部中心点确定聚类个数K值,确定Canopy的区域半径T1;主任务Driver调用MapReduce中的Reducer类,reduce函数接收集合Q={Q1,...Qn},首先计算P=Count(Q),P为集合Q的数据总量,设置循环次数为在不超过循环次数的前提下,循环计算集合Q中数据点之间距离最小值中最大者Dist2min,并将该点保存至集合Q',计算集合Q'的数据总量K,设置循环次数为K;在不超过循环次数K的前提下,计算得到集合Q'中Depth(i)的最大值并输出区域半径T1=Dist2min,将集合中前i个点赋值至空集合U中;步骤4:将步骤3输出的Canopy初始中心点集合U,以文件形式保存,再次调用Mapper类map函数计算各节点数据与中心点之间的欧氏距离D;当D≤T1,则将该数据点xi归于对应的Canopy,可以得到K个Canopy并将结果输出;步骤5:设置添加的随机噪声;随机噪声通常为Laplace噪声,即该噪声服从Laplace分布Lap(b),b=Δf/ε,Δf为全局敏感度,ε为隐私保护预算;设置添加噪声的隐私保护预算参数ε;若聚类执行时迭代执行总m未知,那么在聚类迭代执行时不断变换隐私预算参数ε的值,通常采用的为首次迭代使用预算值是ε/2,后续的迭代中每轮使用的隐私预算是剩余值的1/2,即εm=ε/2m;设置添加噪声的全局敏感度参数Δf,Δf=d+1,d为数据维数;步骤6:主任务Driver读取步骤4输出的K个Canopy,对于每个Canopy计算其数据点之和sum=Sum(Canopy)与集合内的数据点数目之和num=Count(Canopy),对sum和num添加随机噪声X然后两者相除,将得到的数据点作为新的聚类中心步骤7:主任务Driver调用MapReduce中的Mapper类,map函数首先读取文件中的聚类中心点其中m为迭代次数,读入到事先定义的集合R中,然后map函数读取该分任务中接收到的不同记录xi;分别得出每条记录与聚类中心点的距离值Distance,得到与其距离值最小的聚类中心点ck,将其划分到此聚类,每个map函数输出的应是键值对(key,value),其中key为数据记录所在的聚类标号,value为数据记录的各维属性值和聚类当前数据记录的数目,此时数目都为1;步骤8:主任务Driver调用MapReduce中的Reducer类,Reduce分任务接收步骤7的键值对(key,value)后,合并属于同一个聚类标号即同一个key值的聚类,reduce函数可统计同一个类中数据数目总和numk和每条数据记录的各维属性值总和sumk,将两者添加随机噪声得到numk'和sumk',两者相除获取到新的聚类中心ck,并把该中心集合输出;步骤9:主任务Driver读取接收步骤8最新生成的聚类中心集合和步骤7的K个聚类中心集合,得到这两轮聚类中心点集合间的欧式距离Dis,若这两轮中中心点集合的各维属性之差的距离Dis小于指定阈值Threshold或者循环次数已经到达迭代总数值M,则迭代终止,主任务Driver调用MapReduce中的Mapper类按照最新生成的聚类中心点集合C将数据集D'进行实现聚类操作,输出聚类后的结果;若不满足要求,继续重复步骤7~步骤9。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710546207.2/,转载请声明来源钻瓜专利网。
- 上一篇:一种二次再热超超临界锅炉
- 下一篇:燃气蒸汽机