[发明专利]一种基于MapReduce的差分隐私K均值聚类方法有效

专利信息
申请号: 201710546207.2 申请日: 2017-07-06
公开(公告)号: CN107423636B 公开(公告)日: 2021-05-04
发明(设计)人: 尚涛;赵铮;杨英;马旭;关振宇;刘建伟 申请(专利权)人: 北京航空航天大学
主分类号: G06F21/62 分类号: G06F21/62;G06K9/62;G06F16/2458
代理公司: 北京慧泉知识产权代理有限公司 11232 代理人: 王顺荣;唐爱华
地址: 100191*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 mapreduce 隐私 均值 方法
【权利要求书】:

1.一种基于MapReduce的差分隐私K均值聚类方法,其特征在于:该方法包含以下步骤:

步骤1:对数据进行归一化处理;数据集D中记录数为N条,分别记为xi,1≤i≤N;每条数据维数为d,即数据集D中某一数据值xi=(xi1,xi2,...,xid)T是d维属性,T表示行列式的转置运算;读取数据集D的每条记录xi,设置第一条记录x1的每维属性为其所在维的初始最大值max和初始最小值min,将剩余记录的各维属性分别与max和min比较大小,得到每维属性的最大值Max和最小值Min,通过归一化公式将xi的各维属性归一化处理至空间[0,1]d中,形成新数据集D';

根据MapReduce框架,将数据处理任务分为两部分:Map阶段和Reduce阶段,其中分别定义了Mapper类、Reducer类;

从步骤2到步骤4,用于在MapReduce中实现优化的Canopy算法,确定初始中心点;

步骤2:确定优化Canopy算法中每个Map任务中的局部中心点;主任务Driver调用MapReduce中的Mapper类,map函数中设置集合Q为空,设置迭代次数L为map函数中的局部数据集大小;在不超过迭代次数的前提下,若集合Q为空,求数据集D'中数据点xi与坐标原点距离的最小值min,将该数据点xi保存至集合Q,若集合Q不为空,计算数据集D'中每个数据点与集合Q中每个数据点的距离得出数据集D'中任意一个数据点与集合Q中每个数据点的最小距离,从所述最小距离中获取最大者Distmin,保存至集合Q中;

设已知前m个中心点,那么第m+1个中心点应是待选取数据点中与前m个中心点之间最小距离中最大者,公式如下:

L表示当前任务中数据集的数据总量,DisCollect(m+1)表示待确定的第m+1个中心点与前m个中心点间距中的最小值,Distmin(m+1)表示第m+1个中心点应是最小距离中的最大值;这样就避免了区域半径T2的设置;

首先,使用距离坐标原点最近、最远的数据点代替数据集中初始距离最远的数据;其次,先求取局部Canopy中心点,以此为基础求取全局中心点;最后,生成局部Canopy中心点时,为降低迭代次数,选择迭代次数为此处L为局部数据集大小,

步骤3:采用局部中心点确定聚类个数K值,确定Canopy的区域半径T1;主任务Driver调用MapReduce中的Reducer类,reduce函数接收集合Q={Q1,...Qn},n为大于1的正整数;首先计算P=Count(Q),P为集合Q的数据总量,设置循环次数为在不超过循环次数的前提下,循环计算集合Q中数据点之间距离最小值中最大者Dist2min,并将Dist2min对应的集合Q中数据点保存至集合Q',计算集合Q'的数据总量K,设置循环次数为K;在不超过循环次数K的前提下,计算得到集合Q'中Depth(i)的最大值并输出区域半径T1=Dist2min,将集合中前i个点赋值至空集合U中;

当Canopy个数低于或者超过类别数时,Distmin的变化幅度小;当Canopy个数接近或达到类别数时,该Distmin值变化大;为了确定Canopy个数和区域半径T1,引入指标Depth(i)表示Dist2min变化幅度,公式如下:

Depth(i)=|Dist2min(i)-Dist2min(i-1)|+|Dist2min(i+1)-Dist2min(i)|

当i达到一定值时,Depth(i)取得最大值,此时设区域半径T1=Dist2min

步骤4:将步骤3输出的Canopy初始中心点集合U,以文件形式保存,再次调用Mapper类map函数计算各节点数据与中心点之间的欧氏距离D;当D≤T1,则将该数据点xi归于对应的Canopy,得到K个Canopy并将结果输出;

计算数据样本xj和聚类中心ci两者间的欧氏距离,定义如下:

d(xj,ci)=||xj-ci||2

其中

表示第i个聚类的中心点位置,i=1,2,...,K,ni是第i个聚类Ci中的数据点数目,xj是第i个聚类中的数据点;

关于初始中心点的选择问题,由于随机性中心点对聚类的最后结果的影响大,上述步骤中输出了K个Canopy,按照差分隐私K均值聚类方法得到加噪后的中心点,将其作为初始聚类中心点;即对于每个Canopy计算其数据点之和sum=Sum(Canopy)与集合内的数据点数目之和num=Count(Canopy),对sum和num添加随机噪声X然后两者相除,将得到的数据点作为新的聚类中心随机噪声X为Laplace噪声,即该噪声服从Laplace分布Lap(b),b=Δf/ε,Δf为全局敏感度,ε为隐私保护预算;

步骤5:设置添加的随机噪声;随机噪声为Laplace噪声,即该噪声服从Laplace分布Lap(b),b=Δf/ε,Δf为全局敏感度,ε为隐私保护预算;设置添加噪声的隐私保护预算参数ε;若聚类执行时迭代执行总m未知,那么在聚类迭代执行时不断变换隐私预算参数ε的值,采用的为首次迭代使用预算值是ε/2,后续的迭代中每轮使用的隐私预算是剩余值的1/2,即εm=ε/2m;设置添加噪声的全局敏感度参数Δf,Δf=d+1,d为数据维数;

定义:设有函数f:D→Rd,输入是数据集D,输出是d维实数向量,对于任意两个邻近数据集D1和D2

则称Δf为函数的全局敏感度;

对于两个邻近数据集D1和D2,两个数据集的属性均为d维,基于步骤4)中数据点数目之和num在两个数据集中最多只有一条记录之差,对于计数查询而言,num的敏感度值为Δfnum=1;对于的数据点之和sum,为便于求和查询函数的分析,将两个数据集D1和D2的d维属性分别进行归一化处理,归一化到[0,1]d,则差分隐私K均值聚类方法获取中心点的计算就相当于直方图查询时在区间[0,1]d中进行了划分,对于sum来说,当数据集D1和D2只有至多有一条记录不同时,计算数据点之和每个属性值变化最大为1,由公式可知该求和查询sum的全局敏感度为Δfsum=d,所以整体Δf=d+1;

步骤6:主任务Driver读取步骤4输出的K个Canopy,对于每个Canopy计算其数据点之和sum=Sum(Canopy)

与集合内的数据点数目之和num=Count(Canopy),

对sum和num添加随机噪声X然后两者相除,将得到的数据点作为新的聚类中心

Map阶段负责的任务有:(1)map函数开始时会读入上轮迭代或者初始的聚类中心点;(2)每一个Map任务对于接收到的数据块,分别执行数据点与聚类中心点距离的计算操作,并把该数据点归至最小距离的聚类;(3)输出键值对(key,value),key为数据所在的聚类标号,value为数据的各维属性向量值;之后对得到的键值对执行归并操作,将带有同样key值的键值对进行(key,value)归并统计每个聚类下的数据点数目,此时key仍代表聚类标号,value1则代表数据的各维属性值和聚类中的数据数目,将新的键值对(key,value1)输出;

Reduce阶段负责的任务有:接收键值对(key,value1),计算同一聚类下的数据点各维属性之和sum,根据数据点之和sum和数据点数目之和num计算新的聚类中心点;之后由主任务决定是否符合迭代结束条件;

从步骤7到步骤9,用于在MapReduce中实现差分隐私K均值算法得到最终结果;

步骤7:主任务Driver调用MapReduce中的Mapper类,map函数首先读取文件中的聚类中心点其中m为迭代次数,读入到事先定义的集合R中,然后map函数读取分任务中接收到的不同记录xi;分别得出每条记录与聚类中心点的距离值Distance,得到与其距离值最小的聚类中心点ck,将其划分到此聚类,每个map函数输出的应是键值对(key,value),其中key为数据记录所在的聚类标号,value为数据记录的各维属性值和聚类当前数据记录的数目,此时数目都为1;

步骤8:主任务Driver调用MapReduce中的Reducer类,Reduce分任务接收键值对(key,value)后,合并属于同一个聚类标号即同一个key值的聚类,reduce函数统计同一个类中数据数目总和numk和每条数据记录的各维属性值总和sumk,将两者添加随机噪声得到numk'和sumk',两者相除获取到新的聚类中心,并把该新的聚类中心的集合输出;

步骤9:主任务Driver读取接收步骤8最新生成的聚类中心集合和步骤7的K个聚类中心集合,得到这两轮聚类中心点集合间的欧式距离Dis,若这两轮中中心点集合的各维属性之差的距离Dis小于指定阈值Threshold或者循环次数已经到达迭代总数值M,则算法迭代终止,主任务Driver调用MapReduce中的Mapper类按照最新生成的聚类中心点集合C将数据集D'进行实现聚类操作,输出聚类后的结果;若不满足要求,继续重复步骤7~步骤9;

设有n个数据样本X={x1,x2,…,xn}为待处理数据集,其中xj=(xj1,xj2,…,xjd)T是d维向量,该算法目标是得到总数为K的聚类中心点集合C={c1,c2,…,cK}T,再将数据集进行划分,判断迭代是否重复的条件之一就是通过误差平方和函数:

公式中Si代表第i个聚类中数据样本的集合,ci是第i个聚类的中心点,d(xj,ci)代表计算数据样本xj和聚类中心ci两者间的欧氏距离,定义如下:

d(xj,ci)=||xj-ci||2

其中

表示第i个聚类的中心点位置,i=1,2,…,K,ni是第i个聚类中的数据点数目,xj是第i个聚类中的数据点;

MapReduce并行框架下实施聚类过程时通过在每步reduce函数操作中添加服从Laplace分布的随机噪声来满足保护隐私信息的需求;该聚类过程中的每次迭代与多个随机算法的序列组合相似,根据差分隐私的组合性质可知,设共有M次迭代,则该算法总共的ε值应为:

其中εm代表第m次迭代消耗的隐私预算,预算分配方面,已确定的εm=ε/2m

聚类中每次进行迭代操作时,各个Reduce分任务之间是并行地处理,每输出的结果与随机算法的并行组合相似,根据并行组合性质,则每次迭代中Reduce分任务执行操作是使用的隐私预算均是εm

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710546207.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top