1.一種敏感數(shù)據(jù)發(fā)布中的隱私保護(hù)方法,其特征在于,包括以下步驟:
(1)接收來自用戶的數(shù)據(jù)集以及對應(yīng)的多個概化輸入樹,該數(shù)據(jù)集具有m組,每組數(shù)據(jù)具有n個屬性;
(2)遍歷數(shù)據(jù)集中的每一組數(shù)據(jù),并依次判斷該組數(shù)據(jù)中的每一列數(shù)據(jù)是否存在對應(yīng)的概化輸入樹,如果存在,則根據(jù)該數(shù)據(jù)的屬性值在對應(yīng)概化輸入樹中查找對應(yīng)的節(jié)點,并將該節(jié)點的信息輸入到坐標(biāo)數(shù)組中,如果不存在,則直接將該數(shù)據(jù)的屬性值輸入坐標(biāo)數(shù)組中,從而得到m行坐標(biāo)數(shù)組,并為每個坐標(biāo)數(shù)組添加初始值為0的標(biāo)志位;
(3)建立標(biāo)志位分別為1,2,…,p的p個簇,從m行坐標(biāo)數(shù)組中隨機(jī)選擇其中p行坐標(biāo)數(shù)組分別作為建立的p個簇的中心點,其中0<p≤m;
(4)依次對m行坐標(biāo)數(shù)組中的每一行,分別獲取其與p個中心點之間的距離,選取得到的p個結(jié)果中最小值對應(yīng)的中心點對應(yīng)的簇,將該行坐標(biāo)數(shù)組添加到對應(yīng)的簇中,并將當(dāng)前行坐標(biāo)數(shù)組的標(biāo)志位設(shè)置為當(dāng)前簇的標(biāo)志位;
(5)重新獲取步驟(4)中得到的每個簇的中心點作為新的中心點;
(6)判斷步驟(5)獲得的新的中心點是否與對應(yīng)的原中心點是否相同,如果相同則進(jìn)入步驟(7),否則返回步驟(4);
(7)針對得到的每一個簇,判斷該簇中坐標(biāo)數(shù)組的個數(shù)是否大于2k,其中k是用戶預(yù)先設(shè)置的匿名組的數(shù)量,是則計算出該簇的中心點,獲取該簇中距離該中心點最遠(yuǎn)的坐標(biāo)數(shù)組s,獲取距離坐標(biāo)數(shù)組s最遠(yuǎn)的坐標(biāo)數(shù)組u,將距離坐標(biāo)數(shù)組s最近的k-1個坐標(biāo)數(shù)組與s歸為一個k匿名組中,將距離坐標(biāo)數(shù)組u最近的k-1個坐標(biāo)數(shù)組與u歸為一個k匿名組中,并將這些歸入k匿名組中的坐標(biāo)數(shù)組從簇中刪除;否則判斷該簇中坐標(biāo)數(shù)組的個數(shù)是否大于k,如果是則將該簇中坐標(biāo)數(shù)組歸為一個k匿名組,并將這些歸入k匿名組中的坐標(biāo)數(shù)組從簇中刪除,否則將該簇中坐標(biāo)數(shù)組歸入上一次歸入的k匿名組中,并將這些歸入k匿名組中的坐標(biāo)數(shù)組從簇中刪除;
(8)重復(fù)步驟(7),直到簇中的坐標(biāo)數(shù)組數(shù)量為0為止;
(9)根據(jù)概化輸入樹對得到的多個k匿名組進(jìn)行概化輸出。
2.根據(jù)權(quán)利要求1所述的隱私保護(hù)方法,其特征在于,節(jié)點的信息包括節(jié)點所在的層數(shù)、節(jié)點的屬性值、以及節(jié)點的父節(jié)點。
3.根據(jù)權(quán)利要求1所述的隱私保護(hù)方法,其特征在于,步驟(4)中,當(dāng)元素為數(shù)字時,計算距離時是采用歐氏距離計算公式。
4.根據(jù)權(quán)利要求1所述的隱私保護(hù)方法,其特征在于,步驟(4)中,當(dāng)元素是字符串時,如果元素的屬性值相同則距離為0,屬性值不同則距離為1。
5.根據(jù)權(quán)利要求1所述的隱私保護(hù)方法,其特征在于,步驟(4)中,當(dāng)元素是節(jié)點信息時,距離的計算過程是:首先比較兩個節(jié)點是否相同,相同則距離為1,不同則比較其所在的層數(shù)是否相同,如果層數(shù)相同則比較其父節(jié)點是否相同,父節(jié)點相同則距離值為1/r,其中r為所在層數(shù),父節(jié)點不同則繼續(xù)判斷其各自上一級父節(jié)點是否相同,如果相同,則判斷距離值等于該上一級父節(jié)點所在層數(shù)的倒數(shù),否則繼續(xù)判斷其上一級父節(jié)點并重復(fù)本過程;如果層數(shù)不相同,則將層數(shù)大的節(jié)點的上一級父節(jié)點與另一個節(jié)點進(jìn)行比較,看二者層數(shù)是否相同,如果層數(shù)相同,則依照上述層數(shù)相同時候的原則進(jìn)行判斷,如果還不相同,則繼續(xù)尋找其上一級父節(jié)點,并重復(fù)本過程。
6.根據(jù)權(quán)利要求1所述的隱私保護(hù)方法,其特征在于,步驟(5)中,當(dāng)簇中的某一列元素是數(shù)字時,中心點是通過對所有元素取平均值來獲得;當(dāng)簇中的某一列元素是字符串時,中心點就是出現(xiàn)次數(shù)最多的字符串;當(dāng)簇中的某一列元素是節(jié)點信息時,首先對各節(jié)點的層數(shù)取平均值,然后向下取整,在概化輸入樹中搜素第一個與取整后的層數(shù)相匹配的節(jié)點作為新的中心點。
7.根據(jù)權(quán)利要求1所述的隱私保護(hù)方法,其特征在于,步驟(9)具體為,對于k匿名組中數(shù)字類型,是通過輸出該匿名組中數(shù)字的取值范圍進(jìn)行概化;對于k匿名組中字符串型數(shù)據(jù),如果該k匿名組中所有的字符串均相同,則輸出該字符串,否則輸出通配符;對于k匿名組中節(jié)點信息,首先比較兩個節(jié)點是否相同,相同則輸出當(dāng)前節(jié)點,不同則比較其所在的層數(shù)是否相同,如果層數(shù)相同則比較其父節(jié)點是否相同,父節(jié)點相同則輸出該父節(jié)點,父節(jié)點不同則繼續(xù)判斷其各自上一級父節(jié)點是否相同,如果相同,則輸出該上一級父節(jié)點,否則繼續(xù)判斷其上一級父節(jié)點并重復(fù)本過程;如果層數(shù)不相同,則將層數(shù)大的節(jié)點的上一級父節(jié)點與另一個節(jié)點進(jìn)行比較,看二者層數(shù)是否相同,如果層數(shù)相同,則依照上述層數(shù)相同時候的原則進(jìn)行判斷,如果還不相同,則繼續(xù)尋找其上一級父節(jié)點,并重復(fù)本過程。
8.一種敏感數(shù)據(jù)發(fā)布中的隱私保護(hù)系統(tǒng),其特征在于,包括:
第一模塊,用于接收來自用戶的數(shù)據(jù)集以及對應(yīng)的多個概化輸入樹,該數(shù)據(jù)集具有m組,每組數(shù)據(jù)具有n個屬性;
第二模塊,用于遍歷數(shù)據(jù)集中的每一組數(shù)據(jù),并依次判斷該組數(shù)據(jù)中的每一列數(shù)據(jù)是否存在對應(yīng)的概化輸入樹,如果存在,則根據(jù)該數(shù)據(jù)的屬性值在對應(yīng)概化輸入樹中查找對應(yīng)的節(jié)點,并將該節(jié)點的信息輸入到坐標(biāo)數(shù)組中,如果不存在,則直接將該數(shù)據(jù)的屬性值輸入坐標(biāo)數(shù)組中,從而得到m行坐標(biāo)數(shù)組,并為每個坐標(biāo)數(shù)組添加初始值為0的標(biāo)志位;
第三模塊,用于建立標(biāo)志位分別為1,2,…,p的p個簇,從m行坐標(biāo)數(shù)組中隨機(jī)選擇其中p行坐標(biāo)數(shù)組分別作為建立的p個簇的中心點,其中0<p≤m;
第四模塊,用于依次對m行坐標(biāo)數(shù)組中的每一行,分別獲取其與p個中心點之間的距離,選取得到的p個結(jié)果中最小值對應(yīng)的中心點對應(yīng)的簇,將該行坐標(biāo)數(shù)組添加到對應(yīng)的簇中,并將當(dāng)前行坐標(biāo)數(shù)組的標(biāo)志位設(shè)置為當(dāng)前簇的標(biāo)志位;
第五模塊,用于重新獲取第四模塊中得到的每個簇的中心點作為新的中心點;
第六模塊,用于判斷第五模塊獲得的新的中心點是否與對應(yīng)的原中心點是否相同,如果相同則進(jìn)入第七模塊,否則返回第四模塊;
第七模塊,用于針對得到的每一個簇,判斷該簇中坐標(biāo)數(shù)組的個數(shù)是否大于2k,其中k是用戶預(yù)先設(shè)置的匿名組的數(shù)量,是則計算出該簇的中心點,獲取該簇中距離該中心點最遠(yuǎn)的坐標(biāo)數(shù)組s,獲取距離坐標(biāo)數(shù)組s最遠(yuǎn)的坐標(biāo)數(shù)組u,將距離坐標(biāo)數(shù)組s最近的k-1個坐標(biāo)數(shù)組與s歸為一個k匿名組中,將距離坐標(biāo)數(shù)組u最近的k-1個坐標(biāo)數(shù)組與u歸為一個k匿名組中,并將這些歸入k匿名組中的坐標(biāo)數(shù)組從簇中刪除;否則判斷該簇中坐標(biāo)數(shù)組的個數(shù)是否大于k,如果是則將該簇中坐標(biāo)數(shù)組歸為一個k匿名組,并將這些歸入k匿名組中的坐標(biāo)數(shù)組從簇中刪除,否則將該簇中坐標(biāo)數(shù)組歸入上一次歸入的k匿名組中,并將這些歸入k匿名組中的坐標(biāo)數(shù)組從簇中刪除;
第八模塊,用于重復(fù)第七模塊,直到簇中的坐標(biāo)數(shù)組數(shù)量為0為止;
第九模塊,用于根據(jù)概化輸入樹對得到的多個k匿名組進(jìn)行概化輸出。