本發(fā)明涉及隱私保護數(shù)據(jù)挖掘領(lǐng)域,具體涉及一種基于壓縮矩陣的隱私保護挖掘方法。
背景技術(shù):
:近年來,隨著網(wǎng)絡(luò)技術(shù)、存儲技術(shù)和處理器技術(shù)的飛速發(fā)展,海量數(shù)據(jù)的收集、管理和分析變得越來越方便,數(shù)據(jù)挖掘和知識發(fā)現(xiàn)更是在一些深層次的應(yīng)用中發(fā)揮著積極的作用。但與此同時,也帶來了諸多隱私保護方面的問題。例如,對醫(yī)院病人的病歷數(shù)據(jù)進行挖掘,可以發(fā)現(xiàn)各種疾病之間的關(guān)聯(lián)。但如果使用一般的挖掘方法,不可避免地會暴露病例數(shù)據(jù),泄露病人的隱私。還有交通系統(tǒng)中的違規(guī)記錄、保險公司的理賠情況、銀行卡客戶的交易行為等信息中的關(guān)聯(lián)關(guān)系,對政府和企業(yè)決策具有重要的意義,但同時又是公民非常注重的個人隱私。所以,如何在數(shù)據(jù)挖掘過程中解決好隱私保護的問題,目前已成為數(shù)據(jù)挖掘界的一個研究熱點。目前,隱私保護數(shù)據(jù)挖掘從策略上主要分成數(shù)據(jù)擾亂和查詢限制兩大類。數(shù)據(jù)擾亂首先通過數(shù)據(jù)隨機變換、數(shù)據(jù)離散化和增加噪聲等操作對原始數(shù)據(jù)進行干擾,再對干擾后的數(shù)據(jù)進行挖掘,以達到減少隱私泄露的目的。查詢限制則是通過數(shù)據(jù)隱藏、抽樣、劃分或加密等方式,再利用概率統(tǒng)計或分布式計算的方法得到挖掘結(jié)果,以達到保護數(shù)據(jù)的目的。本發(fā)明研究的重點為數(shù)據(jù)擾亂策略,該策略能較好地體現(xiàn)隱私保護的思想,隱私性相對于查詢限制策略有更好的體現(xiàn)。該領(lǐng)域的工作重點是提高算法效率,節(jié)省計算時間。現(xiàn)行針對數(shù)據(jù)擾亂策略的相關(guān)研究主要有基于隨機變換的MASK算法,該算法是隱私保護數(shù)據(jù)挖掘領(lǐng)域擾亂策略的代表,該算法通過數(shù)據(jù)干擾和分布重構(gòu)實現(xiàn)了隱私保護挖掘,但需要對數(shù)據(jù)庫中的多個項集進行計算。后續(xù)提出的EMASK算法對其進行了改進,在數(shù)據(jù)庫轉(zhuǎn)變時,1和0分別以概率p和q進行轉(zhuǎn)換;在項集計數(shù)時,用到了集合計算的方法。雖然簡化了項集計數(shù),但還是需要完全的數(shù)據(jù)庫掃描和多次比較。技術(shù)實現(xiàn)要素:針對現(xiàn)有技術(shù)存在的不足,本發(fā)明提出了一種基于壓縮矩陣的隱私保護挖掘方法(CMEMASK)。該算法思想如下:(1)增加數(shù)組ω、數(shù)組m和數(shù)組n,數(shù)組ω記錄各列權(quán)值,數(shù)組m記錄每列1的個數(shù);數(shù)組n統(tǒng)計每行1的加權(quán)個數(shù),即每行按位與各列對應(yīng)權(quán)值相乘后的和值。(2)壓縮矩陣:①掃描矩陣,若一個項集不能與它相鄰的項集進行連接運算,則刪除該項集對應(yīng)的行向量,并對數(shù)組m進行相應(yīng)的修改。②掃描數(shù)組m,若其值小于等于1,則刪除該列向量,并對數(shù)組n進行相應(yīng)的修改。③掃描數(shù)組n,若其值小于最小支持度計數(shù),則刪除該行向量,并對數(shù)組m進行相應(yīng)的修改。重復(fù)步驟②、③,直到矩陣不能被壓縮。剩下的行向量和列向量按順序組合成新的矩陣,此時,保存下來的行向量所對應(yīng)的項集為候選項集。(3)計算支持度計數(shù)和生成頻繁項集:清空數(shù)組m和n,對可連接的項集對應(yīng)的行按位采用“AND”操作,并按位與ω中對應(yīng)權(quán)值相乘,其和為項集的支持度計數(shù),若其值大于等于最小支持度計數(shù),則保留該行向量,并將該向量按位累加到數(shù)組m中,對應(yīng)的支持度計數(shù)存入數(shù)組n中,否則舍去。此時,保存下來的行向量所對應(yīng)的項集為所求的頻繁項集。(4)直到矩陣的行數(shù)小于k時,算法終止。Bitmap矩陣表現(xiàn)形式,表1是所采用的交易列表,一共存在10個事務(wù),D={T1,T2,...,T10},交易列表中存在6個不同的屬性I={I1,I2,I3,I4,I5,I6}。首先把交易列表中不同屬性的數(shù)據(jù)進行規(guī)范化。因為這里有6個屬性,所以需要6個名稱,這些規(guī)范的名稱都是用二進制的形式表示。而“位表示”代表這些屬性在這些交易中間的存在情況。所以,對于交易列表,表2給出其規(guī)范化的形式。生成Bitmap矩陣D及權(quán)值數(shù)組ω。由于事務(wù)T2和T6以及T4和T9含有相同項目,所以第2、4列的權(quán)值為2,其余的權(quán)值均為1。數(shù)組m記錄每列1的個數(shù);數(shù)組n統(tǒng)計每行1的加權(quán)個數(shù),即每行按位與各列對應(yīng)權(quán)值相乘后的和值。如下所示:ω=[12121111]nm=[54233142]表1交易列表表2交易表的Bitmap表示附圖說明圖1CMEMASK算法流程具體實施方式本發(fā)明提出的CMEMASK算法為了利用EMASK算法中已有的隱私保護方式,將數(shù)據(jù)庫進行扭曲之后才將其用Bitmap的形式來表示,生成Bitmap矩陣文件,其他過程與EMASK算法基本相似,CMEMASK算法的大致過程如下(見圖1)。(1)首先把原始數(shù)據(jù)庫文件進行扭曲,然后把扭曲后的數(shù)據(jù)(按記錄順序排列)文件轉(zhuǎn)化成規(guī)范化的Bitmap矩陣文件。(2)通過位“AND”操作并與權(quán)值按位相乘的和計算1-項集的支持度計數(shù),然后通過EMASK算法中用到的推斷方法對原始數(shù)據(jù)的支持度計數(shù)進行計算。刪除不滿足最少支持度計數(shù)的1-項集,生成頻繁1-項集。(3)利用壓縮矩陣的思想產(chǎn)生k+1(k≥1)項候選項集。(4)對產(chǎn)生的k+1項候選集進行支持度計算,通過項集按位“AND”操作后與權(quán)值按位相乘的和來計算支持度計數(shù),然后通過EMASK算法中用到的推斷方法對原始數(shù)據(jù)的支持度計數(shù)進行計算。刪除不滿足最少支持度計數(shù)的k+1項集,生成頻繁k+1項集。(5)重復(fù)第(3)和第(4)步,直到?jīng)]有k+1項集產(chǎn)生。(6)原始數(shù)據(jù)庫的頻繁項集就是長度為1,2,3,...,n的滿足最少支持度計數(shù)的項集。針對超市購物籃類型數(shù)據(jù),交易列表中的列代表商品名,行代表顧客的購物行為,所挖掘的數(shù)據(jù)集可以看作由0和1組成的垂直Bitmap矩陣,1表示購買某商品,0表示沒有購買,先對原始數(shù)據(jù)進行扭曲,再對扭曲后的數(shù)據(jù)進行挖掘,再利用EMASK算法估算出原始數(shù)據(jù)的支持度。垂直Bitmap矩陣,行表示商品名,列表示顧客的購物行為。扭曲數(shù)據(jù)庫,通過EMASK算法對原始數(shù)據(jù)庫進行概率彎曲,具體操作為:(1)概率彎曲:一個0-1數(shù)據(jù)庫元組可以看成一個隨機向量X={Xi},Xi=0或者1,對Xi進行彎曲操作得到其中是ri的補,ri是滿足伯努利分布的隨機變量,分布律為p(ri=1)=p,p(ri=0)=1-p,對原始數(shù)據(jù)集中的1和0分別采用不同的彎曲參數(shù)p和q進行彎曲變換,即取值為1的屬性以概率1-p取反,取值為0的屬性以概率1-q取反;(2)估算原數(shù)據(jù)的支持度:T表示原始真實的數(shù)據(jù)矩陣,用D表示使用參數(shù)p和q彎曲原始矩陣T后得到的彎曲矩陣,隨機考慮一個布爾屬性j,和分別表示矩陣T的第j列中1的個數(shù)和0的個數(shù),和分別表示矩陣D的第j列中1的個數(shù)和0的個數(shù),M為Mi,j表示取值為j的屬性彎曲為取值為i的屬性的概率,估計屬性j在T中的真實支持度的公式如下:CT=M-1CD其中解此方程組即可由彎曲矩陣D估算出真實矩陣T中1-項集的支持度計算n-項集的真實支持度,此時M為2n階矩陣,矩陣元素Mi,j表取值為j的項集彎曲為i的概率,其中,i,j表示為n位二進制的形式;CT=c2n-1T...c0T,CD=c2n-1D...c0D]]>簡化變?yōu)镃T=cnT...c1Tc0T,CT=cnD...c1Dc0D]]>其中是原始矩陣T中含有k個1的元組的個數(shù),的定義與相似,Mi,j表示對應(yīng)的項集彎曲為對應(yīng)的項集的概率。以上對本發(fā)明的具體實施例進行了描述。需要理解的是,本發(fā)明并不局限于上述特定實施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實質(zhì)內(nèi)容。當前第1頁1 2 3