翟 冉,陳學斌*,張國鵬,裴浪濤,馬 征
(1.華北理工大學 理學院,河北 唐山 063210;2.河北省數據科學與應用重點實驗室(華北理工大學),河北 唐山 063210;3.華北理工大學 唐山市數據科學重點實驗室,河北 唐山 063210)
大數據及相關技術給社會和科技發展帶來了重大的影響,數據的開放共享也給科學研究、社會治理等領域提供了支撐條件,但數據開放共享的同時,也不可避免地造成了數據隱私的泄漏。為解決這一問題,研究人員提出了許多隱私保護方法。目前,應用較廣泛的隱私保護方法有數據加密技術、數據失真技術和數據匿名化技術[1]。數據加密技術指將信息使用加密函數轉換為密文,如同態加密技術[2];數據失真技術指通過添加噪聲的方式保護數據的安全,差分隱私技術[3]為常見的數據失真技術;數據匿名化技術指對數據進行泛化或隱匿。K-匿名[4]技術是目前應用較廣泛的基于數據匿名化的隱私保護技術之一,原理為對數據進行泛化處理,使得對數據集中的每一個數據都有K-1 個數據與之相同。
傳統的隱私保護方法主要考慮對數據進行保護,忽視了數據的可用性[5]。對擁有多個屬性的數據集進行K-匿名處理時,由于屬性的數量過多,為了使多個屬性同時滿足K-匿名特征,會產生過度隱匿現象,破壞數據的可用性。為了解決這個問題,本文提出一種基于隨機森林(Random Forest,RF)的K-匿名隱私保護算法——RFK-匿名隱私保護。
本文首先用RF 算法[6]預測不同屬性值的敏感程度,由于使用RF 算法對屬性值的敏感程度進行預測會存在誤差,因此利用k-means 聚類算法[7]將不同敏感程度的屬性值分成不同集群,使每個集群中的屬性敏感程度相近。最后根據不同屬性集群對屬性進行不同程度的隱匿,用戶可以根據自己的需求選擇隱匿數據表。該方法在保障數據隱私安全的基礎上增加了數據的可用性。本文的主要工作如下:
1)與傳統K-匿名技術中的無差別隱匿不同,本文根據屬性敏感度的不同,對屬性信息進行不同程度的隱匿,在保證數據的安全性的同時,減少了數據的損失。
2)使用真實數據集進行機器學習訓練時有數據泄漏的風險,考慮到直接對真實數據集進行K-匿名處理會由于屬性數量太多導致過度隱匿,而使用過度隱匿的數據進行機器學習訓練時訓練準確率會明顯下降的情況,本文對真實數據集根據屬性的敏感程度不同進行RFK-匿名處理,并使用處理后的數據進行機器學習預測。與K-匿名算法、(p,α,k)-匿名隱私保護算法相比,在閾值E較大時,本文方法的預測準確率有所提升。
在數據隱私保護的基礎上,保證數據的可用性至關重要。針對這一問題,研究人員提出了一系列研究方案。蒲東等[8]根據屬性值不同的敏感等級,采用不同的匿名方法,例如分類型數據中,對于較低敏感程度的屬性,泛化到所在樹的上一層節點,對于較高敏感程度的屬性,泛化到更高一層的節點;同時,根據閾值α確定屬性值出現的頻率,使泛化后等價類中各個敏感屬性值出現的頻率平均,在減少數據損失的同時降低了隱私泄漏的可能。張王策等[9]提出了一種將缺損數據與完整數據混合匿名的算法,能有效地提高數據的可用性。吳夢婷等[10]在K-匿名中考慮K 最近鄰(K-Nearest Neighbor,KNN)聚類思想[11]的離群點問題,降低了數據的損失。蘇林萍等[12]提出了一種個性化(α,l,k)匿名隱私保護模型。在最大程度保證個性化匿名需求的同時根據敏感屬性值敏感等級的不同,對各個等價組中的敏感屬性值分別采取不同的匿名方式,優先泛化高敏感度等級的屬性值,使等價組中的每個敏感屬性滿足對出現頻率α以及多樣性l的約束條件,從而有效降低數據集中高敏感等級信息的泄露風險,并提高數據的可用性。王楠[13]提出的(p,aisg)-敏感性k-匿名差異化地限制了敏感組出現的總頻率,實現了在敏感組維度的個性化保護,并根據敏感值的敏感度設置了有區別的多樣性約束的(pi,aisg)-敏感性k-匿名,敏感值維度也達到了個性化匿名效果,減少了對低敏感信息保護過度造成的冗余信息損失。對于(p,aisg)-敏感性k-匿名模型和(pi,aisg)-敏感性k-匿名模型存在語義相似性攻擊的威脅,對敏感值進行語義類別劃分,王楠[13]提出了針對語義相似性攻擊的具有對敏感組個性化保護特性的(psc,aisg)-敏感性k-匿名,在此基礎上還添加了面向語義類別的個性化保護的(pisc,aisg)-敏感性k-匿名,以較少的數據可用性為代價在隱私性方面表現出了突出優勢。張強等[14]提出了一種基于最優聚類的k-匿名隱私保護機制,通過建立數據距離與信息損失間的函數關系,將k-匿名機制的最優化問題轉化為數據集的最優聚類問題;然后利用貪婪算法和二分機制,尋找滿足k-匿名約束條件的最優聚類,從而實現k-匿名模型的可用性最優化,能最大限度減少聚類匿名的信息損失。楊柳等[15]設計了一種混合式K-匿名特征選擇算法,使用分類性能作為評價準則選出分類性能最好的K-匿名特征子集,在分類性能上可以超過現有算法并且信息損失更小。樊佳錦等[16]提出了一種基于分類重要性與隱私約束的K-匿名特征選擇(Importance Feature Privacy K-Anonymous by Clustering in Attribute,IFP_KACA)方法,根據特征分類重要性排序選擇分類性能較好并且滿足隱私約束的特征進行K-匿名處理,從而得到保護特征隱私后的優選特征子集。算法篩選的特征集能夠平衡隱私保護度和分類挖掘性能,有效檢測微博垃圾用戶。然而上述研究僅在數據集的部分屬性中使用了K-匿名技術,而真實數據集中的屬性數量更多,數據集中的某些屬性的敏感程度較低,將這些信息發布出來對用戶的影響較小,但是對全部屬性進行隱匿,由于多個屬性難以同時達到K-匿名條件,滿足K-匿名條件時屬性要不斷泛化,泛化程度越大,數據的精度越低,會嚴重影響數據的可用性。為了解決這一問題,本文提出了一種改進的K-匿名隱私保護算法,對數據集中的所有屬性進行K-匿名處理,而且在對屬性進行隱匿之前,首先使用RF 算法預測屬性的敏感程度,將屬性根據敏感程度不同劃分成若干的集群,對于不同敏感度集群的屬性采用不同的隱匿方法,達到在保護用戶隱私的基礎上提高數據可用性的目的。
K-匿名[17]是一種對數據進行處理的隱私保護方法,指的是對于某一用戶的某一項信息,至少有K-1 個人與之相同,這樣攻擊者便無法分辨出真正的隱私信息。本文利用K-匿名技術將用RF 算法預測出的會產生隱私泄漏的數據進行隱匿,達到隱私保護的作用。用戶的基本信息分為標識列和準標識列。標識列指用戶的姓名、身份證號等信息,在隱私保護過程中,標識列的信息會被直接抹除;準標識列的信息是關于用戶的其他信息,如用戶的年齡、城市、學校等,如果不對準標識列的數據進行處理,會產生鏈接攻擊[18]。鏈接攻擊指攻擊者通過將兩個數據中的信息混合得到有關用戶的隱私。本文利用K-匿名法對準標識列的信息進行處理,使得對于用戶的某個數據,有K-1 條數據與之相同,可以有效防止因準標識列泄漏導致的鏈接攻擊[19]。
本文提出的RFK-匿名隱私保護算法根據真實數據集屬性的敏感程度不同,對數據進行不同程度的隱匿,在保護了隱私的前提下最大限度地保證了數據的可用性。本文的目的主要是解決使用真實數據集進行機器學習分類預測過程中數據可用性和安全性的平衡問題。
大數據背景下,用戶的個人信息被上傳至多個服務器,同時,也帶來了一系列隱私泄露的隱患。機器學習需要大量的真實數據集,在使用機器學習進行分類預測時,足夠數量的真實數據集是準確預測結果的重要條件之一。然而,數據擁有者將數據發布即面臨一定的風險,導致大多數數據擁有者不愿意發布自己的數據。機器學習的發展需要足夠數量的兼顧可用性和安全性的數據。針對這一問題,本文提出了一種改進的K-匿名隱私保護技術,在數據擁有者發布數據之前,使用K-匿名技術對數據進行處理,由于真實數據集屬性數量過多,為了避免多個屬性同時能滿足K-匿名特征會產生過度隱匿現象,破壞數據的可用性,因此根據屬性的敏感程度不同,對屬性進行不同程度的隱匿,根據用戶的需求發放隱匿數據表,在保護數據安全性的前提下提升數據的可用性。
本文方法的主要步驟如下:首先,使用RF 算法根據屬性預測關鍵信息,對關鍵信息的預測影響越大的屬性越敏感;然后,使用k-means 聚類算法根據屬性的不同敏感程度對屬性進行聚類,分成敏感程度不同的5 個集群,即k=5;最后,使用K-匿名算法根據屬性的敏感程度采用不同的泛化程度隱匿用戶的隱私信息,用戶可以根據自己的需求選擇使用不同匿名化程度的數據表。
2.2.1 隨機森林算法預測
使用RF 算法根據屬性值對標簽值進行預測,然后每次減少一個屬性,并用剩余的屬性對標簽值進行預測,減少屬性后預測準確率降低越多說明該屬性值越敏感。算法偽碼如下:
算法1 隨機森林(RF)預測算法。
2.2.2k-means聚類算法過程
使用k-means 聚類算法根據屬性值對標簽值的影響大小對屬性進行聚類,設置k=5,即將屬性分為5 個敏感程度不同的集群。算法的流程如下:
1)從屬性值中隨機選取5 個值作為初始中心點;
2)計算各個屬性值的敏感程度值到各個中心點的距離,將屬性根據敏感程度值劃分到距離它最近的中心點集群;
3)計算集群的平均值作為新的中心點;
4)重復上述過程直至中心點不再發生變化。
算法2k-means 聚類算法。
2.2.3K-匿名處理
將屬性聚類后的第1 集群進行K-匿名處理后的數據表閾值設置為1;將屬性聚類后的第1、2 集群進行K-匿名處理后閾值設置為2;將屬性聚類后的第1、2、3 集群進行K-匿名處理后閾值設置為3;將屬性聚類后的第1、2、3、4 集群進行K-匿名處理后閾值設置為4;將全部屬性進行K-匿名處理后閾值設置為5。用戶可以根據自己的需求選擇使用不同匿名化程度的數據表。算法的流程如下:
算法3K-匿名算法。
2.3.1 算法復雜度
k-means 算法對屬性值的敏感程度進行聚類的時間復雜度為O(nkt),其中n為數據的個數,k為初始中心點的個數,t為迭代次數;用RF 算法預測屬性集群的敏感程度的時間復雜度為O(Mmnlog(n)),其中n為數據的個數,m為特征的個數,M為隨機森林中樹的個數;K-匿名算法對數據進行隱匿的時間復雜度為O(nK),其中n為數據的個數,K為對于每個數據相同的個數。即本文提出的基于隨機森林的K-匿名隱私保護算法的時間復雜度為O(nkt+Mmnlog(n) +nK)。
2.3.2 算法安全性
本文算法中,數據的擁有者首先使用RF 預測數據集的屬性敏感程度,這一過程由數據擁有者自己進行,所以不存在數據泄露的風險。其次根據預測準確率進行k-means 聚類,將屬性根據敏感程度的不同劃分到不同集群,這一過程只對屬性的敏感程度值進行操作,不會出現原始數據的泄漏。最后使用K-匿名隱私保護方法對數據進行不同程度的隱匿,這一過程由于提前預測敏感屬性,并對不同敏感程度的屬性進行不同程度的保護,保證了原始數據的安全性。
數據集中有數值型數據和分類型數據,對于數值型數據,信息損失度ILi如下:
其中:MAXi為第i個屬性概化后的最大值,MINi為第i個屬性概化后的最小值;Ri為第i個屬性數據的值域。
對于分類型數據,信息損失度ILi如下:
其中:Nodei為第i個屬性的原始葉子節點數為第i個屬性概化后的葉子節點數。相較于K-匿名算法,RFK-匿名算法有效減少了信息的損失度,而且安全性較高。
RFK-匿名算法滿足K-匿名算法的基本條件,對于每一條數據,都有至少K-1 條數據與之相同,可以有效地防止鏈接攻擊;而且用戶可以根據自己的需求選擇不同程度的隱匿數據表。與K-匿名算法相比,RFK-匿名算法在沒有降低安全性的情況下提高了數據的可用性。
2.3.3 算法可用性
本文算法利用RF 算法根據一部分特征值預測某個特征值,而RF 算法隨機將數據集分為訓練組和測試組,訓練組與測試組結果的比值為準確率,符合RF 算法預測的條件,預測準確率為一個數值。利用k-means 聚類算法可以對數值型數據進行聚類,將數據分為k(本文k=5)個集群,用k-means 聚類算法對數據根據數值進行聚類,滿足聚類算法的條件。本文算法利用K-匿名算法對屬性值進行隱匿,這樣對每一個元組,都至少有K-1 個與之相同,滿足用K-匿名算法進行隱匿的條件。在使用機器學習進行預測的過程中,數據集的可用性和安全性需要得到保障,在實驗過程中,采用RF 算法對屬性的準確率進行預測,然后依次刪除一個屬性,使用其他剩余屬性對標簽值進行預測,刪除這個屬性前后準確率變化越大表示這個屬性越敏感。對全部屬性進行K-匿名處理時,由于屬性數量太多,達到K-匿名的條件時屬性泛化程度較大,數據的可用性降低。使用k-means 聚類算法根據屬性的不同敏感程度對屬性進行聚類,分成敏感程度不同的集群,使用K-匿名算法根據屬性的敏感程度采用不同的泛化程度隱匿用戶的隱私信息,使用處理后的數據進行機器學習的預測,能保障數據的安全性和可用性。用戶可以根據自己的需求選擇使用不同匿名化程度的數據表。
本實驗采用了UCI 的Adult 和Bank Marketing 數據集,數據來源:https://archive.ics.uci.edu/ml/datasets/Adult,https://archive.ics.uci.edu/ml/datasets/Bank+Marketing。
Adult 數據集抽取自美國1994 年人口普查數據庫,因此也稱作“人口普查收入”數據集,其中包括:年齡、工作類型、序號、受教育程度、受教育時間、婚姻狀況、職業、關系、種族、性別、資本收益、資本損失、每周工作時間、原籍等14 個字段信息,共有48 842 條數據。該數據集是一個分類數據集,用來預測年收入是否超過5 萬美元。年收入大于5 萬美元的人口占比為23.93%,年收入小于5 萬美元的人口占比76.07%。
Bank Marketing 數據集與葡萄牙銀行機構的營銷活動相關,這些營銷活動以電話為基礎,銀行的客服人員需要至少聯系客戶1 次來確認客戶是否認購該銀行的產品(定期存款)。該數據集中包括年齡、職業、婚姻情況、受教育程度、賬戶余額、住房、貸款、日期-日、日期-月、存款期限、營銷活動、存款情況等16 個字段信息,共有11 162 條數據。
本實驗采用macOS 操作系統,處理器為1.8 GHz 雙核Intel Core i5,用Python 語言在jupyter 中編寫實驗代碼。
本文實驗分為以下幾個部分:1)先使用RF 算法預測出屬性的敏感程度,對敏感屬性根據敏感程度進行聚類,并驗證即使預測結果具有隨機性,聚類后同一集群的屬性仍然不會發生變化;2)對不同聚類的屬性分別進行RFK-匿名處理和K-匿名處理,對比預測準確率和信息損失度;3)用(p,α,k)-匿名隱私保護算法和RFK-匿名處理后的數據計算預測準確率和信息損失度。本文首先對數據集進行預處理,然后使用RF 算法根據所有屬性值預測標簽值。在預測過程中,對于每個屬性,用其他剩余屬性預測標簽值。為了使RF 預測的結果更準確,采用20 次實驗的平均值作為預測準確率,將每個屬性刪除前后的預測準確率之差看作屬性對預測標簽值的敏感程度,由于實驗結果具有隨機性,用k-means 算法對屬性根據敏感程度進行聚類,使相近敏感程度的屬性值都在一個集群里,這樣即使輸出結果的排序具有隨機性,也不會影響集群中的數據,能更好地減小誤差。k-means 聚類算法中的k=5,即將屬性分為5 個敏感程度不同的集群,第一集群屬性的敏感程度最高,第二集群的次之,以此類推。使用K-匿名算法分別對這5 個敏感程度不同的集群進行隱匿,即對所有屬性隱匿的數據表閾值設置為5,對第一、二、三、四集群隱匿的數據表設置閾值為4 的數據表,以此類推,對第一集群隱匿的數據表設置閾值為1 的數據表。由于數據集中的屬性數量太多,為了更好地保證數據的可用性,進行K-匿名處理時的K值大于2 即可。
3.4.1 預測準確率
使用RF 算法根據全部屬性預測標簽值的準確率,每次刪除一個屬性,用剩余的其他屬性預測準確率,準確率越高說明刪除的屬性對預測結果的影響度越低,該屬性的敏感性越低;準確率越低說明刪除的屬性對預測結果的影響度越高,則該屬性的敏感程度越高。對每一個屬性分別利用其他剩余屬性預測20 次的平均準確率和用所有屬性預測20 次的平均準確率如表1、2 所示。

表2 RF在Bank Marketing數據集上的預測準確率Tab.2 Prediction accuracy of RF on Bank Marketing dataset
對于每個屬性,刪除該屬性前后對預測準確率的影響如表3、4 所示。

表3 Adult數據集中每個屬性是否參與預測的準確率的差值Tab.3 Difference in prediction accuracy for eliminating each attribute or not in Adult dataset

表4 Bank Marketing數據集中每個屬性是否參與預測的準確率的差值Tab.4 Difference in prediction accuracy for eliminating each attribute or not in Bank Marketing dataset
對于每個屬性,根據屬性對準確率的影響程度,使用k-means 聚類算法進行聚類,將屬性分為5 個不同的集群,聚類后的結果如表5~8 所示。預測準確率采用的是預測20 次的平均準確率,并使用k-means 聚類算法根據屬性對準確率的影響進行聚類,有效降低了由于預測誤差導致的結果不確定性。

表5 Adult數據集上k-means聚類結果Tab.5 k-means clustering results on Adult dataset

表6 Bank Marketing數據集上k-means的聚類結果Tab.6 k-means clustering results on Bank Marketing dataset

表8 Bank Marketing數據集上k-means的聚類結果可靠性驗證Tab.8 Reliability Verification of k-means clustering results on Bank Marketing dataset
圖1 為RFK-匿名算法和K-匿名算法的準確率對比結果。其中E為可信度閾值,將第一集群的閾值設置為1,將第一、二集群的閾值設置為2,將第一、二、三集群的閾值設置為3,將第一、二、三、四集群的閾值設置為4,將第一、二、三、四、五集群的閾值設置為5。

圖1 RFK-匿名算法與K-匿名算法的預測準確率比較Fig.1 Comparison of prediction accuracy between RFK-anonymity algorithm and K-anonymity algorithm
圖1 中預測準確率的結果表明,當E為1、2 時,使用K-匿名算法處理后的數據進行預測的準確率高于使用RFK-匿名處理的數據進行預測的準確率;當E為3、4 時,使用RFK-匿名處理后的數據進行預測的準確率高于使用K-匿名算法處理后的數據進行預測的準確率,在Adult 數據集中分別提升了0.5 個百分點和1.6 個百分點,在Bank Marketing 數據集中分別提升了0.4 個百分點和0.9 個百分點;當E為5 時,使用RFK-匿名算法處理的數據和使用K-匿名算法處理的數據的預測準確率相等。出現這一現象的原因是當E為1、2 時,RFK-匿名中的屬性數量太少,導致預測準確率低;當E為3、4 時,使用RFK-匿名算法進行處理的屬性數量足夠,同時沒有過多屬性導致的過度隱匿情況;當E為5 時,使用RFK-匿名處理的數據相當于直接對數據集進行K-匿名處理。同時,使用K-匿名算法直接對數據集進行處理時,由于屬性數量過多,滿足K-匿名條件的K值過大,屬性泛化程度更大,影響了數據的可用性,泛化后的數據用來機器學習預測的準確率約等于只使用一半屬性進行K-匿名處理后進行預測的準確率,嚴重影響了數據的可用性。
3.4.2 信息損失度
RFK-匿名與K-匿名算法的信息損失度如圖2 所示,其中E為閾值,Information Loss 為所有數值型數據和分類型數據的信息損失度之和。

圖2 RFK-匿名算法與K-匿名算法信息損失度的比較Fig.2 Comparison of information loss between RFK-anonymity algorithm and K-anonymity algorithm
從圖2(a)中可以看出:當E為1、2 時,使用K-匿名算法處理后的數據的信息損失度高于使用RFK-匿名處理的數據;當E為3、4 時,使用RFK-匿名處理后的數據的信息損失度高于使用K-匿名算法處理后的數據;當E為5 時,使用RFK-匿名算法處理的數據和使用K-匿名算法處理的數據的信息損失度相等。出現這一現象的原因是當E為1、2 時,RFK-匿名中的屬性數量少,K-匿名的條件容易達到;當E為3、4 時,屬性數量明顯增加,所以K-匿名的條件較難達到;當E為5 時,使用RFK-匿名處理的數據相當于直接對數據集進行K-匿名處理。
從圖2(b)中可以看出,當閾值E不斷增加時,RFK-匿名算法的信息損失度不斷增加,但信息損失度一直低于K-匿名的信息損失度。這是因為隨著E不斷增加,屬性的數量增加,滿足K-匿名條件的K值變大。對數據集直接進行K-匿名處理時,由于屬性數量過多,滿足K-匿名條件的K值過大,屬性泛化程度更大,影響了數據的可用性,數據的信息損失度高于使用RFK-匿名處理的信息損失度。
(p,α,k)-匿名隱私保護算法作為一種很好的隱私保護方法,在保護了隱私的前提下提升了數據的可用性,但更適合于直接發布數據,不適合應用于機器學習。
從圖3(a)中可以看出,使用(p,α,k)-匿名隱私保護算法處理過的數據進行預測的準確率比較平穩,使用RFK-匿名算法處理過的數據進行預測的準確率在閾值較低的情況下低于使用(p,α,k)-匿名隱私保護算法處理過的數據進行預測的準確率;隨著可信度閾值不斷提升,使用RFK-匿名隱私保護算法處理過的數據進行預測的準確率高于使用(p,α,k)-匿名隱私保護算法處理過的數據進行預測的準確率。在Adult 數據集中,閾值E為4 時提高了0.4 個百分點,閾值E為5 時提高了1.9 個百分點。這是由于隨著閾值E的不斷增加,RFK-匿名中的數據集屬性信息在不斷完善,使用(p,α,k)-匿名隱私保護算法處理的數據集用來機器學習由于屬性數量不夠會影響預測準確率。

圖3 RFK-匿名算法與(p,α,k)-匿名隱私保護算法的比較Fig.3 Comparison between RFK-anonymity algorithm and(p,α,k)-anonymity algorithm
從圖3(b)中可以看出,使用RFK-匿名算法處理過的數據進行預測的信息損失度在閾值E為1,2 時低于使用(p,α,k)-匿名隱私保護算法處理過的數據;隨著閾值不斷提升,使用RFK-匿名隱私保護算法處理過的數據的信息損失度高于使用(p,α,k)-匿名隱私保護算法處理過的數據。用戶可以根據自己的需求選擇閾值。
3.4.3 實驗小結
RFK-匿名隱私保護算法使用RF 算法根據Adult 和Bank Marketing 數據集中所有屬性值預測標簽值,并對每一個數據用其他剩余的屬性預測標簽值,刪除這個屬性前后的預測值之差為屬性值對標簽值的敏感程度,使用k-means 聚類算法根據標簽值的敏感程度進行聚類,分成5 個集群,并對這5 個集群的數據分別進行K-匿名處理。實驗結果表明:在Adult數據集中,第一敏感程度集群為capital-gain,第二敏感程度集群為age、capital-loss,第三敏感程度集群為workclass、occupation、hours-per-week、education-num,第四敏感程度集群為marital-status、relationship、native-country、fwlght、race,第五敏感程度集群為sex、education;在Bank Marketing 數據集中,第一敏感程度集群為poutcome,第二敏感程度集群為duration、day、contact,第三敏感程度集群為default、marital、age,第四敏 感程度 集群為balance、job、campaign、pdays、month、housing、previous、loan,第五敏 感程度 集群為education。通過圖2 可知,使用(p,α,k)-匿名隱私保護算法處理過的數據進行預測的準確率比較平穩,使用RFK-匿名算法處理過的數據進行預測的準確率在閾值較低的情況下低于使用(p,α,k)-匿名隱私保護算法處理過的數據進行預測的準確率;而隨著可信度閾值不斷提升,使用RFK-匿名隱私保護算法處理過的數據進行預測的準確率高于使用(p,α,k)-匿名隱私保護算法處理過的數據進行預測的準確率。用戶可以根據自己的需求選擇閾值,這樣可以在不影響數據的可用性的前提下保證數據隱私安全。
本文首先利用隨機森林算法對Adult 數據集和Bank Marketing 數據集中的屬性進行敏感程度預測,其次將不同敏感程度的屬性用k-means 算法進行聚類,然后使用K-匿名算法將不同敏感程度集群的屬性進行隱匿,在保護數據隱私安全的基礎上提高了數據的可用性。根據數據集中屬性的敏感程度不同,給屬性分成5 個聚類集群,將對不同集群的屬性分批次進行K-匿名處理后,對數據集中的屬性進行不同程度的隱匿可以在不影響數據的可用性的基礎上提高數據的安全性,使數據集更適合用于分類預測。