一种关联规则挖掘中隐私数据的保护方法
技术领域
本发明属于数据挖掘中的隐私数据保护技术,具体涉及一种关联规则挖掘中隐私数据的保护方法。
背景技术
随着网络、数据库存储以及高性能处理器等技术的飞速发展,数据库中存储的数据呈爆炸式增长,导致出现了”数据爆炸,知识贫乏”的现象。另外,20世纪下半叶发展起来的专家系统,也遇到了“知识获取”这一瓶颈问题。在此背景下,强有力数据分析工具的需求推动了数据挖掘技术的产生。数据挖掘技术可以帮助人们从大量的数据中智能地、自动地抽取隐含的、事先未知的,具有潜在价值的知识或信息,它不仅被许多研究人员看作是数据库系统和机器学习等方面的一个重要研究课题,而且被许多产业界人士看作是一个能带来巨大回报的重要领域,从数据库中发现出来的规则和知识可以用在信息管理、查询响应、决策支持、过程控制等诸多方面。
任何事情都有其两面性,数据挖掘也不例外,在数据挖掘产生巨大财富的同时,随之产生的就是隐私泄露的问题,据一份Web用户的调查表明,17%的被调查者表示会拒绝透露涉及到自己隐私的任何信息,27%的被调查者表示会经认真考虑后,决定是否给予涉及到自己隐私的信息,而56%的被调查者表示,如果数据收集机构或数据使用者可以确保个人隐私信息得到有效保护,他们是愿意提供涉及自己隐私的信息。从这些调查材料可以看出,如果无法保证被调查者的隐私,所收集到的数据往往和真实的数据之间存在很大的误差,甚至无法完成数据收集工作,如果在这些错误数据上进行数据挖掘,那么得到的结果必然是不准确,甚至是完全错误的,数据挖掘将面临着“巧妇难为无米之炊”的尴尬局面,最好的数据挖掘方法也无济于事。然而,可喜的是人们并没有因噎废食,在数据挖掘能够提供的益处前面,只要数据采集机构或使用者采取有效措施来保证个人的隐私,大部分数据拥有着还是愿意提供自己的隐私数据,隐私保护程度的高低将直接关系到是否能够获得足够真实的信息,从而影响到挖掘结果的可靠有用性。因而,如何在包含关联规则挖掘在内的数据挖掘过程中解决好隐私保护问题已经成为数据挖掘领域中的一个非常关键的问题。
对于关联规则挖掘中的隐私数据保护问题,目前常用的方法是采取数据干扰技术,即通过数据变换或在数据中增加噪声等方法来对原始数据进行干扰,关联规则挖掘是在干扰后的数据集上进行的,因而,该种方法很有可能影响到挖掘结果的可用和有效性,即挖掘出一些原始关系数据库中本来不存在的且有误导作用的规则,丢失一些原始关系数据库中非常有用的规则,从而失取了数据挖掘本身的意义。其实,隐私数据是相对的,是与载体相关联的,更换了或脱离了载体,数据就有可能失去其物理意义或隐私性,因此,我们可以通过修改记录相应的项目来实现隐私数据的保护。
本发明给出了一种关联规则挖掘中隐私数据的保护方法,该方法既可以实现隐私数据的有效保护,又能确保关联规则挖掘结果的有效可行性。
发明内容
本发明的目的在于针对现有关联规则挖掘中隐私数据保护方法可能会影响到关联规则挖掘结果的可用性和有效性等问题,提出了一种新颖的关联规则挖掘中隐私数据的保护方法,该方法既可实现隐私数据的保护,同时又不会产生过多的负面影响。
本发明所说的关联规则挖掘中隐私数据的保护方法,包括以下步骤:
(1)隐私数据项的确定
由数据拥有者确定关系数据库中需要处理的隐私数据项。假设需要保护的数据项为A1、A2、......、Am,本发明仅考虑m为1的情况,记为A。其他情况可以类推。
(2)修改前的初始化工作
设原关系数据库为DB,最小修改率阈值为minXP,minXP表示修改记录数占总记录数的百分比,如minXP=50%,表示原关系数据库中有一半的记录在隐私数据项上的值发生了变化,公开的是修改后的关系数据库,关联规则挖掘是在修改后的关系数据库上进行的。修改前的初始化工作包括以下步骤:
①设置记录修改数变量JXC,其初始值为minXP×|DB|,|DB|为关系数据库DB中的记录数;
②给关系数据库中的每条记录i设置一个修改标志flag[i],其值为0或1,0表示该记录未修改过,1表示修改过;
③扫描原关系数据库DB一次,求出其所有的频繁1-项目集,删除关系数据库DB中非频繁1-项目所对应的数据项;
④根据关系数据库DB中A所对应的值,将关系数据库DB分成两个子数据库DB1和DB2,他们在字段A上的值分别均为1和0。
(3)隐私数据项的修改
隐私数据项的修改方法为:
①对于子数据库DB1的每条未修改记录R1,如果子数据库DB2中存在与R1完全相同的未修改记录R2(不包括字段A的值),则交换原关系数据库DB中对应于R1和R2记录的数据项A,其他不变。对于每对交换的记录进一步包括下列步骤:
i修改变量JXC,JXC=JXC-2;
ii修改此两记录的修改标志,对应的修改标志置为1;
iii将R1、R2分别加入子数据库DB2和DB1中,即交换它们的位置。
②如果JXC≤0,则转⑧。
③对于DB1中的任何记录R1,如该记录所支持的频繁项目集的支持数均大于最小支持数阈值,则执行:
i修改变量JXC,JXC=JXC-1;
ii将原DB和DB1中对应于R1的数据项A的值置为1,R1的修改标志置为1;
iii将记录R1从DB1中移到DB2中;
iv如果JXC≤0,则转⑧。
④将MFISA1分成两部分M1和M2,M1中各元素的支持数等于最小支持数阈值,M2中各元素的支持数大于最小支持数阈值。其中MFISA1为子数据库DB1中最大频繁项目集的集合,此时的最小支持数阈值为minsup×|DB|/|DB1|。
⑤根据M1和M2将DB1中未修改记录分成三部分DB11、DB12、DB13,其中DB11中各记录支持M1中的某最大频繁项目集,但均不支持M2中的任何最大频繁项目集。DB12中各记录同时支持M1中的某最大频繁项目集和M2中的某最大频繁项目集。DB13中各记录支持M2中的某最大频繁项目集,但均不支持M1中的任何最大频繁项目集。如果DB13为空集,转⑥步,否则执行:
i将DB13中的记录按其支持M2中元素的个数升序排列;
ii对于DB13中的第一条记录R1,将原DB和DB1中对应于R1的数据项A的值置为1,R1的修改标志置为1;
iii将记录R1从DB1中移到DB2中;
iv修改变量JXC值,JXC=JXC-1;
v如果JXC≤0,则转⑧;
vi如果DB13为非空,转(ii)。
⑥重新统计数据库DB12中的最大频繁项目集,如果DB12为空集,转⑦步,否则执行:
i将DB12中的记录按其支持M1中元素的个数升序排列;
ii对于DB12中的第一条记录R1,将原DB和DB1中对应于R1的数据项A的值置为1,R1的修改标志置为1;
iii将记录R1从DB1中移到DB2中;
iv修改变量JXC值,JXC=JXC-1;
v如果JXC≤0,则转⑧;
vi如果DB12为非空,转(ii)步。
⑦重新统计数据库DB11中的最大频繁项目集,并按其支持M1中最大频繁项目集的个数升序排列,执行:
i对于DB11中的第一条记录R1,将原DB和DB1中对应于R1的数据项A的值置为1,R1的修改标志置为1;
ii将记录R1从DB1中移到DB2中;
iii修改变量JXC值,JXC=JXC-1;
iv如果JXC≤0,则转⑧;否则转(i);
⑧结束,整理结果数据库,并删除修改标志列;
(4)、数据的发布
将修改后的关系数据库发送给关联规则挖掘工具或数据使用者。
本发明中频繁项目集的挖掘分为两小步:候选频繁项目集的生成、候选频繁项目集支持数的计算。
本发明中关联规则的发现是根据频繁项目集生成关联规则。
本发明主要有以下两个方面的有益效果:
(1)在隐私数据的保护方面
本发明提出了一种新颖的隐私数据保护方法,一方面,本发明所采用方法可以有效地保护隐私数据,公开的是经过处理后的数据,根据所公开的数据是很难或无法猜测出真实数据;另一方面,本发明中的关联挖掘方法可以确保不包含隐私数据项在内的关联规则全部有效,包含隐私数据项在内的绝大部分关联规则仍然有效,且不会产生幽灵规则,克服了现有隐私数据保护方法所带来的两个缺陷,一是可能挖掘出一些原始关系数据库中本来不存在的且有误导作用的关联规则,二是丢失一些原始关系数据库中存在的且非常有用的关联规则。
(2)在修改记录的选择方面
本发明首先考虑了那些不会影响挖掘结果的记录对在隐私数据项上进行交换,其次提出了一种基于最大频繁项目的修改记录选择方法,尽可能选择支持有较大支持数的最大频繁项目集的记录,最大限度地保持原有频繁项目的频繁性,降低了选择修改记录的执行难度,进一步提高算法的执行效率。
附图说明
图1是本发明实施例的流程图
图2是本发明实施例中的隐私数据项修改流程图
具体实施方式
下面以表1所示的关系数据库DB为例,结合图1、图2的流程图简单地说明本发明的执行过程。表1共设置了五个字段,分别记为A、B、C、D和E,假设本实例所要保护的数据项为E,最小支持度阈值为25%或最小支持数阈值为2,修改率XP为50%,即至少有四条记录的E值需被修改。
具体执行步骤如下:
(1)给记录修改数变量JXC赋初始,JXC=XP×|DB|=4,|DB|为实例数据库DB中的记录数。
(2)设置修改标志,flag[i]=0,i=1,2,3,4,5,6,7,8,即表1的第一列。
(3)扫描实例数据库DB一次,得到数据库DB中的频繁1-项目集{{A},{B},{C},{D},{E}}。因本实例所要保护的数据项E为频繁项目,继续执行下列各步。如保护的数据项为非频繁项目,则结束,并隐藏该字段的所有值。
(4)将实例数据库DB分成两个子数据库DB1和DB2,他们在字段E上的值分别均为1和0,具体结果如表2、3所示。
(4)由于子数据库DB1和子数据库DB2中含有相同内容的记录(不包括字段E的值),即记录01和记录05,将原实例数据库DB中Tid为0的记录所对应的E值置为0,Tid为5的记录所对应的E值置为1。
(5)修改记录01和05的修改标志,并将他们分别加入DB2和DB1中,修改后的数据库如表4、5、6所示。
(6)修改变量JXC值,JXC=JXC-2=2。可以证明或说明表1和表4所示的关系数据库所包含的频繁项目集是完全相同的。
(7)由于JXC的最新值为2,因而还需修改两条记录。
(8)由于08号记录所支持频繁项目集的支持数均大于最小支持数阈值,修改08号记录的E值,置为1,并将其放入DB2中。修改变量JXC值及08号记录的修改标志,JXC=JXC-1=2-1=1。修改后的数据库如表7、8所示。
(9)由于JXC的最新值为1,因而还需修改一条记录。
(10)求出修改后的子数据库DB1中的最大频繁项目集及其支持数,分别为ABE:2、BDE:2、BCE:3,并将其分为两部分,一是支持数等于最小支持数阈值的最大频繁项目集M1,即M1={ABE:2,BDE:2},二是支持数大于最小支持数阈值的最大频繁项目集M2,即M2={BCE:3}。
(11)DB1中修改标志flag为0的记录中,04号记录支持最大频繁项目集ABE、BDE,06号记录支持最大频繁项目集BDE和BCE,07号记录支持最大频繁项目集BCE。即仅支持M1的记录有04号记录,仅支持M2的记录有07号记录,两者均支持的有06号记录。
(12)在仅支持M2的记录中选择支持M2中最大频繁项目集数最小的记录,即本案例的第07号记录,将该记录的E值改为0,并将其移到DB2中,修改该记录的修改标志以及修改变量JXC值,JXC=JXC-1=0。结果如表9、10所示。
(13)由于JXC的值为0,结束隐私数据项的修改。结果关系数据库如表11所示。
表11中有4条记录的E值发生了变化,可以发现表1和11所示的关系数据库所包含的频繁项目集是完全相同的。在实际应用时,最小修改率阈值minXP以及具体的修改记录均是保密的,即数据使用者并不知道结果关系数据库中多少记录在隐私数据项上的值发生了变化,更不可能知道那些记录发生了改变,从而有效保护了隐私数据项的值,实现了关联规则挖掘中隐私数据的保护。