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