1.一种基于聚类匿名的隐私保护表数据共享算法,其特征在于:应用于共享静态数据表,步骤为:Step 1、聚类处理:基于k-medios聚类的表数据记录划分,依据数据表中记录间的距离,使用k-medios聚类算法对共享静态数据表中的记录进行聚类,得到若干个簇;
Step 2、匿名处理:对经过Step 1处理得到的每个簇分别进行处理,首先将簇中的数据依据信息损失量进行分割,然后对得到的每个簇进行调整,使得每个簇均满足k-匿名条件、且不存在敏感属性值完全相等的情况,最后对其进行泛化处理,从而生成匿名数据表;
Step 3、差分隐私加噪处理:对表数据中的敏感属性值进行差分隐私处理;
Step 4、比较验证:最后通过示例分析及与经典k-匿名算法MDAV进行比较,进行方法的可用性以及隐私性验证。
2.根据权利要求1所述的基于聚类匿名的隐私保护表数据共享算法,其特征在于:步骤Step 1中,表数据记录划分的核心思想为:利用聚类技术将共享静态数据表中n条记录划分为多个簇,使得相似度高的记录划分到一组;同时为了能够满足接下来的k-匿名需求,在聚类结束后需对不满足匿名要求的簇进行调整,因此,结合k-medios聚类算法,表数据记录划分的具体流程如下:Step 11:归一化处理,对数据表中的非敏感有序分类型属性进行量化,也就是量化为数值1,2,3,…,n,然后将该有序分类型属性看做数值型属性进行处理,进而对数据表中的所有非敏感属性中的数值型属性数据进行归一化处理,归一化公式如下:式中,xi’为一个数值型属性的归一化数值,xi为一个数值型属性的原始数值,xmin为该属性的最小值,xmax为该属性的最大值;
Step 12:根据表数据记录间的非敏感属性的距离大小,利用k-medios聚类算法对表数据进行聚类处理,将表数据记录划分为k1个簇;
Step 13:根据k-匿名参数k2对不满足匿名要求的簇进行簇记录调整,若所划分的簇中的数据记录数目均大于k2,则不进行调整;若存在所得簇Ci中的数据记录数小于k2,则将距离簇Ci的中心点最近的记录添加到簇Ci中,同时保证该记录所在簇中的数据记录仍大于k2;
Step 14:重复步骤Step 3,直到每个簇中的记录均大于等于k2;
Step 15:将数据按照所属簇不同分割为不同的子数据表T1,T2,…,Tk1,从而得到k1张子数据表。
3.根据权利要求2所述的基于聚类匿名的隐私保护表数据共享算法,其特征在于:Step
12中,在使用k-medios聚类算法对记录进行划分时,由于数据表含有分类型属性、数值型属性两种类型的属性,在计算记录间距离时需要采用不同的数据距离计算方法,且在进行k-medios聚类算法时需要考虑聚类结果最优的问题,即最佳划分簇数k1的选择过程为:Step 121、数据表记录间距离计算公式:
在计算数据表记录间的距离时,由于在数据表中存在多种属性,因此需要将不同的属性分开计算,数值属性距离计算公式如公式2:dist(xi,xj)=|xi-xj| (公式2)
分类型属性计算公式如公式3:
假设数据表中有m个数值型属性,n个分类型属性,因此,数据表中任意两条记录Xi、Xj的距离计算公式如公式4:式中xip和xjp分别为记录Xi和记录Xj的第p个数值型属性值,xip和xjp分别为记录Xi和记录Xj的第q个分类型属性值;
Step 122、数据记录划分簇数k1的确定:
k-medios聚类算法的使用是为了使相似记录划分到一组,为匿名化处理做准备,尽量减少匿名化过程带来的信息损失,因此在确定聚类的簇数目时,主要考虑簇内的相似度问题,因此通过组内平方误差和SSE来确定数据记录划分簇数k1;而随着k1的增加,每个簇内的数据记录将逐渐减少,簇内记录间的距离应越来越小,因此,SSE的值应随着k1的增大而减小;故在通过SSE进行k1值的确定时,关注其变化情况,当SSE随着k1的增加减少的相对缓慢时,认为进一步增大k1聚类效果变化不大,则该k1值为最佳聚类数目;若将各个k1的值与相应的SSE值表示在折线图中,则拐点处对应的k1值即为最佳聚类数目。
4.根据权利要求3所述的基于聚类匿名的隐私保护表数据共享算法,其特征在于:Step
2中,经过表数据记录划分处理得到的k1张子数据表,然后依次处理每张子数据表,其核心思想是:对子数据表内数据记录进行划分,使得生成的每个簇中的记录数目在[k2,2k2-1]之间,同时保证每个簇中的敏感属性取值不唯一,因此,表数据匿名处理算法实现的具体流程如下:Step 21:判断数据集合中数据记录数目是否大于2k2-1,若大于2k2-1,则执行步骤Step
22;
Step 22:在该数据集合内选取两条记录r1和r2作为两个初始簇,使得当r1和r2组成一个簇时,在该簇内的所有记录两两组合中信息损失量最大,并执行步骤Step 23;
Step 23:分别计算数据集合内每条记录划分到两个簇后的信息损失变化情况,并将该记录划分为使得信息损失量较小的簇中,调整数据记录,使得每个簇中的数据记录最少为k2,并将生成的簇作为新生成的两个数据集合返回步骤Step 21;
Step 24:当所有数据集合中的数据记录数目均在[k2,2k2-1]之间,依次循环判断每个数据集合内是否存在敏感属性取值唯一的情况,若存在则执行步骤Step 25;
Step 25:选取与该数据集合Q内敏感属性值不同的数据记录,同时保证若删除该数据记录,其所在数据集合中的数据记录数目仍大于等于k2、且敏感属性值不唯一;
Step 26:计算若所选数据记录划分到相应数据集合Q后的信息损失变化量,并将使得信息损失量较小的数据记录划分到数据集合Q中;
Step 27:得到记录数目在[k2,2k2-1]之间、且不存在集合内部敏感属性取值唯一的情况的各个数据集合,并将各个集合进行泛化处理,得到匿名数据表。
5.根据权利要求4所述的基于聚类匿名的隐私保护表数据共享算法,其特征在于:Step
27中,泛化处理的匿名规则为:若非敏感属性为数值型属性,则将其泛化为该属性在其所在集合的取值范围;若为分类型属性,则将其泛化为该属性在其所在集合中的全集。
6.根据权利要求5所述的基于聚类匿名的隐私保护表数据共享算法,其特征在于:Step
3中对匿名数据表的差分隐私加噪处理的过程为:
(1)若敏感属性中存在分类型属性,则根据分类型敏感属性值的不同组合进行频数统计,并对其加噪,在相应的位置添加Num列,记录加噪后的数据;
(2)若敏感属性中存在数值型属性,则将每个数值型属性分别聚类,并将该属性值用平均值代替,其中聚类数目为 n为数据表中记录条数,k3为簇内数据记录条数;可根据对数据的可用性需求决定其大小,若数据质量要求较高,则选择较小的值;若数据质量要求较低,可以选择较大的值,经过处理后的数据表可共享给数据请求方。
7.根据权利要求6所述的基于聚类匿名的隐私保护表数据共享算法,其特征在于:共享静态数据表为共享政务表数据。