1.一种轨迹时间模式的差分隐私保护方法,其特征在于:该方法包括以下步骤:步骤S1,轨迹数据预处理及聚类;
所述步骤S1具体为:
步骤S1-1,对待保护的轨迹数据进行清洗和规约,保留用户的经纬度数据和对应的时间戳作为新的轨迹数据集,记时间戳数据集为T={t1,…,tn},Ti是T中的任一子集,则有Ti∈T,且Ti∈[tk,tm],tmin≤tk<tm≤tmax,其中tk∈T,tm∈T,tmin是T中的最小值,tmax是T中的最大值;
步骤S1-2,将保留的轨迹数据集用DBSCAN算法进行密度聚类,得到聚类簇集C={c1,c2,...,cl}和对应的时间戳子集Tc={T1,T2,...,Tl}。其中,l是聚类簇的数目;
步骤S2,初始化参数,包括初始化匿名算法的参数k、隐私保护强度参数ε以及可接受的发布误差范围[-α,α];其中初始化的k值需要判断是否合理,由步骤S1-2得到的时间戳子集Tc={T1,T2,...,Tl}计算k′,然后根据k′判断用户初始定义的k值是否合理;
步骤S3,利用k-匿名算法对时间戳进行粗粒度扰动;假设给定的簇集C对应的每一个时间数据子集Tc中共有n个时间戳,根据k匿名实现方法对所有时间戳子集Tc进行匿名处理,实现对时间戳的粗粒度扰动;
所述步骤S3具体为:
步骤S3-1,选择步骤S3-2所得簇集对应的一个时间戳子集Ti∈Tc;
步骤S3-2,判断k值集合Kc中的Ki值所在区间,若Ki=1,则不做匿名处理,进入步骤S4;
否则,对时间戳子集Ti中的每个数据ti做如下匿名处理:
步骤S3-3,重复步骤S3-1和S3-2,直到所有的时间戳子集Ti都进行了k-匿名处理,此时,得到时间戳子集Tc的粗粒度扰动结果Tc′={T1′,T2′,...,Tl′};
步骤S4,利用差分隐私拉普拉斯噪声对时间戳进行细粒度扰动;根据初始化的隐私保护强度参数ε求出拉普拉斯噪声概率密度函数,生成对应的拉普拉斯噪声,对步骤S3-3得到的粗粒度扰动结果Tc′={T1′,T2′,...,Tl′}进行细粒度扰动,得到细粒度的扰动结果;
步骤S5,利用截断拉普拉斯机制优化扰动结果;根据初始化的隐私保护强度参数ε求出截断拉普拉斯噪声概率密度函数,生成对应的截断拉普拉斯噪声,对步骤S4-3得到的细粒度扰动结果T″c={T1″,T″2,...,T″c}进行优化,得到优化结果
2.根据权利要求1所述的一种轨迹时间模式的差分隐私保护方法,其特征在于:所述步骤S2具体为:步骤S2-1,初始化隐私保护强度参数ε以及可接受的发布误差范围[-α,α];
步骤S2-2,初始化匿名算法的参数k值;
步骤S2-3,选择步骤S1-2得到的其中一个时间戳子集Ti∈Tc,计算k′值:步骤S2-3,判断步骤S2-2用户初始定义k值的合理性,若k∈[1,k′]且k为整数,则k合理,进入步骤S2-5;否则,返回步骤S2-2;
步骤S2-5,重复步骤S2-2、S2-3和S2-4,直到步骤S1中所有簇集对应的时间戳子集Ti都得到对应的计算结果k′,并与初始化的k值进行比较,得到最终合理的k值集合Kc={k1,k2,...,kl}。
3.根据权利要求1所述的一种轨迹时间模式的差分隐私保护方法,其特征在于:所述步骤S4具体为:步骤S4-1,根据初始化的隐私保护强度参数ε和时间戳的敏感度函数Δf计算得到拉普拉斯噪声的概率密度函数fLap(z):其中
步骤S4-2,选择粗粒度扰动结果Tc′={T1′,T2′,...,Tl′}中的任意一个子集Ti′∈T′c,根据拉普拉斯噪声的概率密度函数fLap(z)生成对应数目的噪声数据集Zi;
步骤S4-3,将生成的拉普拉斯噪声Zi加入到粗粒度扰动结果任一子集Ti′中,得到细粒度的扰动结果Ti″:Ti″=Ti′+Zi
步骤S4-4,重复步骤S4-2和S4-3,直到粗粒度扰动结果T′c={T1′,T2′,...,Tl′}中的所有子集都进行了细粒度扰动,得到对应的细粒度扰动结果T″c={T1″,T″2,...,T″c}。
4.根据权利要求1所述的一种轨迹时间模式的差分隐私保护方法,其特征在于:所述步骤S5具体为:步骤S5-1,根据初始化的隐私保护强度参数ε和时间戳的敏感度函数Δf计算得到截断拉普拉斯噪声的概率密度函数fTLap(z):其中
步骤S5-2,选择细粒度扰动结果T″c={T1″,T″2,...,T″c}中的任意一个子集Ti″∈T″c,根据截断拉普拉斯噪声的概率密度函数fTLap(z)生成对应数目的噪声数据集Z′i;
步骤S5-3,将生成的拉普拉斯噪声Z′i加入到粗粒度扰动结果任一子集Ti″中,得到优化结果步骤S5-4,重复步骤S5-2和S5-3,直到细粒度扰动结果T′c={T1′,T2′,...,Tl′}中的所有子集都进行了优化,得到优化后的扰动数据集
5.一种轨迹时间模式的差分隐私保护系统,其特征在于:该系统包括以下模块:轨迹数据预处理及聚类模块,用于对轨迹数据集进行预处理和聚类操作,包括以下子模块,预处理子模块,用于对待保护的轨迹数据进行清洗和规约,保留用户的经纬度数据和对应的时间戳作为新的轨迹数据集;
聚类子模块,用于将保留的轨迹数据集用DBSCAN算法进行密度聚类,得到聚类簇集和对应的时间戳子集;
初始化参数模块,用于初始化参数,包括以下子模块:
初始参数设置子模块,用于初始化匿名算法的参数k、隐私保护强度参数ε以及可接受的发布误差范围[-α,α];
判断子模块,用于判断设置的参数值k是否合理;
匿名处理模块,用于实现对时间戳进行粗粒度的扰动,包括以下子模块:判断子模块,用于判断k值集合Kc中的Ki值所在区间,若ki=1,则不做匿名处理,直接进入差分隐私处理模块;否则,对时间戳子集Ti中的每个数据ti做如下匿名处理:迭代子模块,用于迭代上述子模块中的过程,生成初步扰动结果Tc′={T1′,T2′,...,Tl′};
差分隐私处理模块,用于实现对时间戳进行细粒度的扰动,包括以下子模块:拉普拉斯噪声生成子模块,用于生成拉普拉斯噪声,根据隐私保护强度参数ε求出拉普拉斯噪声概率密度函数fLap(z),生成对应数目的噪声数据集Zi;
拉普拉斯噪声添加子模块,将生成的拉普拉斯噪声Zi加入到粗粒度扰动结果任一子集Ti′中,得到细粒度的扰动结果Ti″;
迭代子模块,用于迭代上述子模块中的过程,生成细粒度扰动结果截断拉普拉斯优化模块,用于对差分隐私处理模块得到的细粒度扰动结果进行优化处理,包括以下子模块,截断拉普拉斯噪声生成子模块,用于生成截断拉普拉斯噪声,根据隐私保护强度参数ε求出拉普拉斯噪声概率密度函数fTLap(z),生成对应数目的噪声数据集Z′i;
截断拉普拉斯噪声添加子模块,将生成的截断拉普拉斯噪声Z′i加入到细粒度扰动结果任一子集Ti″中,得到优化结果迭代子模块,用于迭代上述子模块中的过程,生成细粒度扰动结果T″c={T1″,T″2,...,T″c}。