吳 珺, 鄭欣麗, 朱嘉輝, 李天意
(1.湖北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院, 武漢 430068; 2.武漢理工大學(xué)材料學(xué)院, 武漢 430070)
在大數(shù)據(jù)時(shí)代,可穿戴及人體感知設(shè)備每時(shí)每刻正通過(guò)5G高速網(wǎng)絡(luò)源源不斷地收集人們的個(gè)人健康數(shù)據(jù)和醫(yī)療信息;個(gè)人健康醫(yī)療大數(shù)據(jù)具有可獲得性、可存儲(chǔ)性、可共享性以及可分析性四個(gè)主要特點(diǎn).個(gè)人健康醫(yī)療大數(shù)據(jù)同樣具備大數(shù)據(jù)的5V特征[1],即:1) 規(guī)模(volume)——智能穿戴設(shè)備采集的實(shí)時(shí)數(shù)據(jù)和醫(yī)療全息診療數(shù)據(jù);2) 快速(velocity)——5G網(wǎng)絡(luò)實(shí)時(shí)采集傳輸個(gè)人健康醫(yī)療數(shù)據(jù);3) 多樣(variety)——多種類設(shè)備采集,多維空間及多時(shí)間的多模態(tài)數(shù)據(jù);4) 價(jià)值(value)——基于個(gè)人健康醫(yī)療大數(shù)據(jù)的智能分析和數(shù)據(jù)挖掘,可以預(yù)測(cè)傳染性及發(fā)病規(guī)律,關(guān)聯(lián)分析多種疾病的相互影響,精準(zhǔn)分類診療病患;通過(guò)強(qiáng)大的機(jī)器算法來(lái)挖掘健康醫(yī)療的數(shù)據(jù)價(jià)值,全面提升個(gè)人、醫(yī)療機(jī)構(gòu)和政府的價(jià)值和效率;5) 質(zhì)量(veracity)——個(gè)人健康醫(yī)療大數(shù)據(jù)的準(zhǔn)確性和可信賴度,它相較于其他電商或文娛類大數(shù)據(jù)具備極高數(shù)據(jù)質(zhì)量.
同時(shí)個(gè)人健康醫(yī)療大數(shù)據(jù)還具備特有的性質(zhì):1) 高敏感性(high sensitivity)——個(gè)人健康醫(yī)療大數(shù)據(jù)詳細(xì)記錄了實(shí)時(shí)和過(guò)往個(gè)人信息及身體健康狀況,具有極強(qiáng)的個(gè)人隱私,數(shù)據(jù)敏感性極高;2) 時(shí)間性(temporal)——個(gè)人健康醫(yī)療大數(shù)據(jù)可以視為多個(gè)不同類別的時(shí)間序列,具備時(shí)序性和動(dòng)態(tài)性;3) 不完整性(incomplete)——個(gè)人健康醫(yī)療大數(shù)據(jù)不能全部被及時(shí)完整地存儲(chǔ)和分析,而且相關(guān)數(shù)據(jù)不能被及時(shí)有效地進(jìn)行數(shù)據(jù)挖掘和關(guān)聯(lián)分析,影響了個(gè)人健康醫(yī)療大數(shù)據(jù)的真實(shí)價(jià)值.
數(shù)據(jù)挖掘旨在利用機(jī)器學(xué)習(xí)等智能數(shù)據(jù)分析技術(shù),發(fā)掘數(shù)據(jù)對(duì)象蘊(yùn)含的知識(shí)與規(guī)律,為任務(wù)決策提供有效支撐.數(shù)據(jù)挖掘是建立新一代人工智能關(guān)鍵共性技術(shù)體系的基礎(chǔ)支撐.然而在大數(shù)據(jù)時(shí)代背景下,面向個(gè)人健康醫(yī)療大數(shù)據(jù)的數(shù)據(jù)挖掘與其他金融、醫(yī)療、教育、交通、媒體等應(yīng)用領(lǐng)域不同,需要解決個(gè)人數(shù)據(jù)隱私保護(hù)問(wèn)題[2-3].因此面向健康醫(yī)療大數(shù)據(jù)隱私保護(hù)的數(shù)據(jù)挖掘在理論、方法、應(yīng)用等多個(gè)層面均面臨新的挑戰(zhàn).
相較于其他應(yīng)用領(lǐng)域的大數(shù)據(jù),個(gè)人健康醫(yī)療大數(shù)據(jù)面臨的嚴(yán)峻問(wèn)題就是隱私泄露.面對(duì)海量的個(gè)人健康醫(yī)療大數(shù)據(jù),只有運(yùn)用機(jī)器學(xué)習(xí)方法才能深入挖掘其關(guān)聯(lián)信息和真實(shí)規(guī)律價(jià)值.那么如何首先實(shí)現(xiàn)個(gè)人健康醫(yī)療大數(shù)據(jù)的隱私保護(hù),再進(jìn)一步通過(guò)高效用的機(jī)器學(xué)習(xí)方法進(jìn)行數(shù)據(jù)挖掘和關(guān)聯(lián)分析就是大數(shù)據(jù)時(shí)代個(gè)人健康醫(yī)療數(shù)據(jù)應(yīng)用面臨的巨大挑戰(zhàn).
本文的主要貢獻(xiàn)包括如下3個(gè)方面.
1) 提出了PCA-GRA-BK算法(主成分分析灰度關(guān)聯(lián)分析BiK-means K匿名算法),通過(guò)實(shí)驗(yàn)分析該算法的可行性,并獲得68%信息損失率,相較其他算法結(jié)果較優(yōu).
2) 通過(guò)與其他算法的實(shí)驗(yàn)比較,PCA-GRA-BK算法優(yōu)化了數(shù)據(jù)集中簇的劃分過(guò)程,對(duì)最佳聚類簇中的數(shù)據(jù)進(jìn)行K匿名化,減少了全局泛化造成的數(shù)據(jù)丟失;進(jìn)一步降低了數(shù)據(jù)的丟失率為68%;關(guān)鍵的是在醫(yī)療數(shù)據(jù)的匿名化過(guò)程中,最大化地保留原始數(shù)據(jù)信息;證明了PCA-GRA-BK算法在實(shí)現(xiàn)健康醫(yī)療數(shù)據(jù)隱私保護(hù)的前提下,具備較好的泛化和高效用關(guān)聯(lián)分析能力.
3) 解決了健康醫(yī)療大數(shù)據(jù)的隱私保護(hù)和關(guān)聯(lián)分析2個(gè)主要問(wèn)題.
隨著醫(yī)療技術(shù)的發(fā)展,醫(yī)療數(shù)據(jù)的共享程度越來(lái)越高,醫(yī)療數(shù)據(jù)的泄露問(wèn)題也愈發(fā)普遍.孟小峰等[4]針對(duì)移動(dòng)應(yīng)用程序用戶隱私風(fēng)險(xiǎn)狀況及隱私保護(hù)進(jìn)行了研究分析.基于移動(dòng)應(yīng)用程序的權(quán)限分析方法,提出一種用戶隱私風(fēng)險(xiǎn)量化模型.該模型首先通過(guò)39個(gè)敏感權(quán)限識(shí)別移動(dòng)應(yīng)用程序內(nèi)個(gè)人隱私數(shù)據(jù)收集狀況,并以此為數(shù)據(jù)泄露源,考慮數(shù)據(jù)泄露的可能性及數(shù)據(jù)的隱私危害程度.然后利用3 000萬(wàn)移動(dòng)設(shè)備上的移動(dòng)應(yīng)用程序數(shù)據(jù),構(gòu)建隱私風(fēng)險(xiǎn)量化模型,并基于該模型分析單個(gè)用戶的隱私風(fēng)險(xiǎn)值分布,進(jìn)一步研究各用戶群體的隱私風(fēng)險(xiǎn)趨勢(shì),從而構(gòu)建中國(guó)隱私風(fēng)險(xiǎn)指數(shù)體系,以區(qū)域隱私風(fēng)險(xiǎn)指數(shù)、人群隱私風(fēng)險(xiǎn)指數(shù)、行為隱私風(fēng)險(xiǎn)指數(shù)分別反映不同屬性用戶群體面臨隱私風(fēng)險(xiǎn)的差異.郭子菁等[5]深入研究了醫(yī)療大數(shù)據(jù)發(fā)展規(guī)律,探討在提高對(duì)醫(yī)療大數(shù)據(jù)真實(shí)價(jià)值認(rèn)識(shí)的同時(shí),如何有效保護(hù)數(shù)據(jù)的隱私安全.文獻(xiàn)首先介紹了醫(yī)療大數(shù)據(jù)的相關(guān)概念以及特點(diǎn),并描述了醫(yī)療大數(shù)據(jù)的4個(gè)生命周期階段以及相應(yīng)的隱私保護(hù)技術(shù),如圖1所示.然后在數(shù)據(jù)分析階段,在機(jī)器學(xué)習(xí)框架下對(duì)醫(yī)療健康大數(shù)據(jù)進(jìn)行隱私保護(hù).最后,針對(duì)貫穿醫(yī)療大數(shù)據(jù)生命周期的普遍隱私保護(hù)挑戰(zhàn),從管理層面提出合理的建議.胡榮磊等[6]提出了一種大數(shù)據(jù)環(huán)境下的隱私保護(hù)方案.該方案結(jié)合大數(shù)據(jù)平臺(tái)技術(shù)和存儲(chǔ)技術(shù)對(duì)醫(yī)療數(shù)據(jù)進(jìn)行脫敏處理,制定隱私保護(hù)策略,根據(jù)不同的脫敏方案調(diào)用不同的脫敏方法,有效保護(hù)了隱私信息.尚靖?jìng)サ萚7]從大數(shù)據(jù)的基本概念入手,通過(guò)對(duì)現(xiàn)階段隱私泄露及醫(yī)療大數(shù)據(jù)的研究,結(jié)合大數(shù)據(jù)領(lǐng)域的研究對(duì)當(dāng)前隱私泄露行為、保護(hù)技術(shù)等問(wèn)題分類闡述.譚作文等[8]在利用機(jī)器學(xué)習(xí)模型訓(xùn)練大數(shù)據(jù)過(guò)程中,針對(duì)隱私數(shù)據(jù)進(jìn)行討論,闡述了機(jī)器學(xué)習(xí)及其隱私定義和隱私威脅,并重點(diǎn)對(duì)機(jī)器學(xué)習(xí)隱私保護(hù)主流技術(shù)的工作原理和突出特點(diǎn)進(jìn)行了闡述,分別按照差分隱私、同態(tài)加密和安全多方計(jì)算等機(jī)制對(duì)機(jī)器學(xué)習(xí)隱私保護(hù)領(lǐng)域的研究成果進(jìn)行了綜述.在此基礎(chǔ)上,對(duì)比分析了機(jī)器學(xué)習(xí)不同隱私保護(hù)機(jī)制的主要優(yōu)缺點(diǎn).最后,對(duì)機(jī)器學(xué)習(xí)隱私保護(hù)的發(fā)展趨勢(shì)進(jìn)行展望,提出該領(lǐng)域未來(lái)可能的研究方向.
圖1 健康醫(yī)療大數(shù)據(jù)生命周期圖Fig.1 Lifecycle of healthcare big data
隨著物聯(lián)網(wǎng)及大數(shù)據(jù)技術(shù)的不斷推薦,基于健康醫(yī)療方面的數(shù)據(jù)正以前所未有的速度增長(zhǎng),構(gòu)成了一個(gè)十分特殊的“健康醫(yī)療大數(shù)據(jù)”.它涵蓋個(gè)人日常健康大數(shù)據(jù)、臨床診療大數(shù)據(jù)、生物特性大數(shù)據(jù)、醫(yī)療行業(yè)大數(shù)據(jù).這些大數(shù)據(jù)不僅僅是醫(yī)院的一份電子病歷,同時(shí)產(chǎn)生于電子手環(huán)、網(wǎng)絡(luò)問(wèn)診、醫(yī)保記錄、基因檢測(cè)、網(wǎng)絡(luò)購(gòu)藥等多個(gè)不同的地方[9-12].以上相關(guān)交易記錄也往往暴露了用戶的身體狀況、財(cái)政狀況等隱私信息,在隱私保護(hù)中也是不可忽視的內(nèi)容.
文獻(xiàn)[13]使用PCA算法對(duì)糖尿病患者的各項(xiàng)指標(biāo)數(shù)據(jù)進(jìn)行特征提取,投射到新的特征空間并建立線性回歸模型,有效地提高了預(yù)測(cè)疾病的準(zhǔn)確率.文獻(xiàn)[14]使用PCA算法準(zhǔn)確找出數(shù)據(jù)的主要屬性,對(duì)數(shù)據(jù)進(jìn)行降維,大大縮短了匿名化過(guò)程所需要的時(shí)間;而且使用PCA算法能夠保持微識(shí)別過(guò)程中整個(gè)數(shù)據(jù)集的質(zhì)量,降低數(shù)據(jù)失真的程度,提高數(shù)據(jù)的效用率.GRA是根據(jù)數(shù)據(jù)之間變化趨勢(shì)的相似或相異程度,來(lái)衡量數(shù)據(jù)間關(guān)聯(lián)程度的一種方法.文獻(xiàn)[15]使用GRA方法計(jì)算目標(biāo)層與評(píng)價(jià)等級(jí)之間的關(guān)聯(lián)系數(shù)以判斷其關(guān)聯(lián)程度,獲取網(wǎng)絡(luò)服務(wù)質(zhì)量,并利用現(xiàn)有的數(shù)據(jù)信息將實(shí)際方案與最優(yōu)方案進(jìn)行比較,做出最優(yōu)決策.文獻(xiàn)[16]提出個(gè)性化(α,l)多樣性K匿名模型,根據(jù)數(shù)據(jù)集中不同屬性的敏感程度,對(duì)敏感屬性設(shè)置不同的隱私保護(hù)級(jí)別,并且為特定的用戶提供個(gè)性化的隱私保護(hù),達(dá)到更好的隱私保護(hù)效果.文獻(xiàn)[17]提出基于聚類算法簇的合并、調(diào)整和概化策略,建立(k,1)-多樣性數(shù)據(jù)發(fā)布模型尋找動(dòng)態(tài)規(guī)劃模型的最優(yōu)解,使用概率聯(lián)合分布度量數(shù)據(jù)對(duì)象和連續(xù)屬性的相似性,有效減少了匿名化所需時(shí)間,并減少信息損失,提高查詢精度.文獻(xiàn)[18]將聚類算法與手肘法結(jié)合,確定中小企業(yè)中群集客戶數(shù)據(jù)分割的最佳數(shù)量,根據(jù)由(k,SSEk)坐標(biāo)繪制的坐標(biāo)圖,找到最佳K值作為最佳簇的數(shù)量,利用K-means算法進(jìn)行數(shù)據(jù)分割.文獻(xiàn)[19]提出了一種建立在(α,k)匿名數(shù)據(jù)基礎(chǔ)上的支持?jǐn)?shù)據(jù)動(dòng)態(tài)更新的算法,對(duì)數(shù)據(jù)進(jìn)行語(yǔ)義貼近的計(jì)算,根據(jù)計(jì)算結(jié)果在匿名數(shù)據(jù)集中選擇等價(jià)類,既保證了醫(yī)療數(shù)據(jù)實(shí)時(shí)一致性,又具有運(yùn)行時(shí)間短,信息損失度小的優(yōu)點(diǎn).文獻(xiàn)[20]基于K匿名的位置隱私保護(hù),利用隱私需求量和服務(wù)質(zhì)量構(gòu)建目標(biāo)函數(shù),提高用戶位置的隨機(jī)性,利用四叉樹(shù)結(jié)構(gòu)實(shí)現(xiàn)位置K匿名,有效地防止邊界信息被攻擊.
以上方法都未在數(shù)據(jù)降維基礎(chǔ)上結(jié)合QI屬性的關(guān)聯(lián)度以及局部K匿名進(jìn)行數(shù)據(jù)的隱私保護(hù),本文通過(guò)PCA-GRA達(dá)到對(duì)數(shù)據(jù)降維以及QI屬性的關(guān)聯(lián)度分析,再使用聚類算法進(jìn)行局部的K匿名研究,減少需要處理QI屬性,再根據(jù)QI屬性與敏感屬性的關(guān)聯(lián)度進(jìn)行泛化層次的劃分,優(yōu)化了泛化過(guò)程中造成的信息丟失,在聚類算法的基礎(chǔ)上進(jìn)行局部K匿名,有效地降低了數(shù)據(jù)的丟失,最大化地保護(hù)隱私數(shù)據(jù).
K匿名是保護(hù)用戶隱私的一種匿名技術(shù),若存在一個(gè)表格T(A1,A2,…,An)和準(zhǔn)標(biāo)識(shí)符(quasi-identifier),對(duì)于表格中的任一記錄,都存在至少k個(gè)與其數(shù)值相同的記錄,則該表格T滿足K匿名.經(jīng)過(guò)對(duì)準(zhǔn)標(biāo)識(shí)符的泛化或者抑制操作,當(dāng)表格中的數(shù)據(jù)存在k個(gè)等價(jià)類時(shí),數(shù)據(jù)攻擊者只有1/k的概率能夠獲取到特定人員的敏感信息,降低了隱私泄露的風(fēng)險(xiǎn).表1顯示了醫(yī)院診斷信息的初始數(shù)據(jù).
表1 初始數(shù)據(jù)表
未對(duì)數(shù)據(jù)進(jìn)行K匿名時(shí),若對(duì)患者的姓名、年齡、郵編和性別等敏感屬性進(jìn)行鏈接攻擊,可以迅速推斷出特定患者的患病情況,患者的隱私很容易遭到泄露.因此,在數(shù)據(jù)發(fā)布前,需要對(duì)數(shù)據(jù)進(jìn)行K匿名,K匿名后的數(shù)據(jù)如表2所示.
表2 K匿名數(shù)據(jù)表
在匿名處理前,表格中的數(shù)據(jù)均帶有明確的身份標(biāo)識(shí)信息,對(duì)于這類信息,應(yīng)當(dāng)直接抑制其發(fā)布.例如,表2刪除了表1的姓名屬性,表2可視為滿足k=2的K匿名數(shù)據(jù)表.
灰度關(guān)聯(lián)分析法用來(lái)計(jì)算主成分分析所選出的屬性與敏感屬性之間的關(guān)聯(lián)度,建立QI屬性的泛化層次.
該方法的具體流程如下:
1) 在灰度關(guān)聯(lián)分析中,需要確定反映系統(tǒng)行為特征的參考數(shù)列和影響系統(tǒng)行為的比較數(shù)列.反映系統(tǒng)行為特征的數(shù)據(jù)序列稱為參考數(shù)列,用于測(cè)量和對(duì)比數(shù)列之間的關(guān)聯(lián)度,表示為:Y=Y(k)|1,2,…,n,一般是將敏感屬性作為參考數(shù)列.Y(k)表示參考數(shù)列對(duì)應(yīng)的數(shù)據(jù)值.影響系統(tǒng)行為的因素組成的數(shù)據(jù)序列稱為比較數(shù)列,表示為:
Xi=Xi(k)|k=1,2,…,n,i=1,2,…,m,
xi(k)表示第i個(gè)比較數(shù)列中的第k個(gè)值,m表示QI屬性的個(gè)數(shù).
2) 由于數(shù)據(jù)的度量單位可能不同,在灰度關(guān)聯(lián)分析之前,需要通過(guò)均值化的方式對(duì)數(shù)據(jù)進(jìn)行歸一化處理,將序列中的每個(gè)數(shù)據(jù)值除以該序列數(shù)據(jù)的均值,使處理后的數(shù)據(jù)值在1的量級(jí)附近.具體公式為:
(2)
3) 經(jīng)過(guò)歸一化處理后,數(shù)據(jù)之間的量級(jí)差別變小了,更方便計(jì)算灰度關(guān)聯(lián)系數(shù),具體公式為:
(3)
|y(k)-xi(k)|是參考數(shù)列與第i個(gè)比較數(shù)列中對(duì)應(yīng)的第k個(gè)數(shù)據(jù)之間的距離,max表示最大距離,min表示最小距離.ρ稱為分辨系數(shù),一般ρ的取值區(qū)間為(0,1),當(dāng)ρ≤0.5463時(shí),分辨力較高,通常取ρ=0.5.
4)關(guān)聯(lián)系數(shù)體現(xiàn)了比較數(shù)列與參考數(shù)列在各個(gè)時(shí)刻的關(guān)聯(lián)程度,在度量關(guān)聯(lián)程度時(shí),需要利用各個(gè)時(shí)刻的關(guān)聯(lián)系數(shù)求平均值.關(guān)聯(lián)度ri的計(jì)算公式如下:
(4)
計(jì)算出的關(guān)聯(lián)度越接近1,則數(shù)列之間的關(guān)聯(lián)度越高,也就表明敏感數(shù)據(jù)與該標(biāo)識(shí)符屬性的關(guān)聯(lián)度越高.
結(jié)合本文第二部分討論的面向健康醫(yī)療大數(shù)據(jù)的隱私性,及其匿名化后的數(shù)據(jù)高效用性,提出PCA-GRA-BK算法,用來(lái)實(shí)現(xiàn)醫(yī)療大數(shù)據(jù)的隱私性和高效用分析.
PCA-GRA-BK算法即算法1結(jié)合了PCA算法、GRA算法、聚類算法以及K匿名化的方法.其中,PCA算法用于降低數(shù)據(jù)的維度,GRA算法用于計(jì)算QI屬性與敏感屬性之間的關(guān)聯(lián)度,確定QI屬性適合的泛化層次.在處理數(shù)據(jù)的過(guò)程中,Datafly算法需要從全局?jǐn)?shù)據(jù)集中選取QI屬性數(shù)值最大的屬性進(jìn)行泛化,擴(kuò)大了部分QI屬性的泛化層次.為了避免K匿名中過(guò)度的QI屬性泛化,需要在匿名化之前進(jìn)行數(shù)據(jù)相似等價(jià)類劃分.本文引入聚類算法的思想,使用手肘法確定最佳簇?cái)?shù)量,然后對(duì)聚類后的局部數(shù)據(jù)進(jìn)行K匿名化,能夠加快搜索等價(jià)類的速度,提升匿名化的效率,降低數(shù)據(jù)丟失率.選擇數(shù)據(jù)集T中符合K匿名的記錄,列入K匿名表;通過(guò)算法2,確定聚類算法的最佳m值,將最佳簇m的值作為Bikmeans聚類算法簇的數(shù)量;通過(guò)算法3,將數(shù)據(jù)集T分為m個(gè)數(shù)據(jù)集(T1,T2,…,Tm),分別找出m個(gè)數(shù)據(jù)集中數(shù)據(jù)值最多準(zhǔn)標(biāo)識(shí)符.
算法1PCA-GRA-BK算法
輸入:PCA-GRA處理后的數(shù)據(jù)集(T)、準(zhǔn)標(biāo)識(shí)符、K的值、m(簇)的值、每一個(gè)準(zhǔn)標(biāo)識(shí)符屬性的域歸納等級(jí)樹(shù).
if 統(tǒng)計(jì)Ti中每個(gè)準(zhǔn)標(biāo)識(shí)符屬性的取值個(gè)數(shù),找到取值個(gè)數(shù)最多和關(guān)聯(lián)度最高的準(zhǔn)標(biāo)識(shí)符屬性A;構(gòu)造滿足K匿名表的數(shù)據(jù)集Ti;
else 不滿足K匿名的Ti的記錄組合成新表TS;
循環(huán)執(zhí)行,直到表TS滿足k匿名為止;
輸出:K-匿名表.
算法2手肘法
輸入:PCA-GRA算法得到的具有簇標(biāo)簽的數(shù)據(jù)集D(其中包含n條記錄和c個(gè)準(zhǔn)標(biāo)識(shí)符),簇?cái)?shù)量m.
首先計(jì)算簇Bi(i=1,2,…,m)的質(zhì)心到Bi中每個(gè)數(shù)據(jù)點(diǎn)的歐氏距離,以及Bi中所有數(shù)據(jù)的誤差平方和;然后記錄簇?cái)?shù)量m與其對(duì)應(yīng)的總誤差平方和,循環(huán)執(zhí)行到i=m為止;最后將得到的結(jié)果,在直角坐標(biāo)系中繪制(m,SSEm)的坐標(biāo),確定最佳m值.
輸出:每個(gè)m值對(duì)應(yīng)的誤差平方和.
算法3Bikmeans算法
輸入:PCA-GRA算法得到的具有簇標(biāo)簽的數(shù)據(jù)集D(其中包含n條記錄和c個(gè)準(zhǔn)標(biāo)識(shí)符),簇?cái)?shù)量m.
首先將所有數(shù)據(jù)樣本作為一個(gè)簇放入隊(duì)列;循環(huán)執(zhí)行從隊(duì)列中選擇一個(gè)簇進(jìn)行m=2的均值聚類,并計(jì)算每個(gè)簇的SSE;然后選擇SSE最小的簇進(jìn)行m=2的均值聚類,放入隊(duì)列;
輸出:聚類后的T1,T2,…,Tm數(shù)據(jù)表.
實(shí)驗(yàn)選取美國(guó)加州大學(xué)機(jī)器學(xué)習(xí)數(shù)據(jù)庫(kù)中的心臟病數(shù)據(jù)集,數(shù)據(jù)集中有14個(gè)屬性,包括年齡、性別、胸疼類型、靜息血壓、血漿類固醇含量、空腹血糖、靜息心電圖結(jié)果、最高心率、運(yùn)動(dòng)型心絞痛、運(yùn)動(dòng)引起的ST下降值、最大運(yùn)動(dòng)量時(shí)心電圖ST的斜率、使用熒光法測(cè)定的主血管數(shù)、THAL(地中海貧血)以及是否患有心臟病.經(jīng)過(guò)數(shù)據(jù)清洗操作,刪除重復(fù)的數(shù)據(jù),處理之后的數(shù)據(jù)共有271條.實(shí)驗(yàn)環(huán)境為:Intel Core i5-6200U 2.30GHz CPU,12GB RAM,Windows 10 專業(yè)版64位操作系統(tǒng).
對(duì)數(shù)據(jù)集進(jìn)行主成分分析法之后,需要進(jìn)行KMO(Kaiser-Meyer-Olkin)檢驗(yàn),比較變量之間的簡(jiǎn)單相關(guān)系數(shù)和偏離相關(guān)系數(shù)[21].KMO檢驗(yàn)的結(jié)果為0.686,表明該數(shù)據(jù)集適用于主成分分析.
表3是對(duì)原始14個(gè)屬性進(jìn)行主成分分析后,根據(jù)相關(guān)系數(shù)大小,選擇維度最小的主成分,確定將表里的5個(gè)屬性作為QI屬性,進(jìn)行后續(xù)實(shí)驗(yàn).
進(jìn)行主成分分析和灰度關(guān)聯(lián)分析后,將性別、血漿類固醇量、靜息心電圖結(jié)果、最高心率以及運(yùn)動(dòng)型心絞痛這5個(gè)屬性作為準(zhǔn)標(biāo)識(shí)符.表4顯示了選定準(zhǔn)標(biāo)識(shí)符與敏感屬性之間的關(guān)聯(lián)度.
表4 準(zhǔn)標(biāo)識(shí)符QI的關(guān)聯(lián)度
利用這些關(guān)聯(lián)度數(shù)值建立泛化層次結(jié)構(gòu),關(guān)聯(lián)度越高表示數(shù)據(jù)之間的粘性越強(qiáng),數(shù)據(jù)的泛化層次結(jié)構(gòu)應(yīng)該更加細(xì)致;關(guān)聯(lián)度越低則表示數(shù)據(jù)之間的粘性較低,數(shù)據(jù)的泛化層次結(jié)構(gòu)相對(duì)模糊.
1) 對(duì)于非數(shù)值類型的數(shù)據(jù),需要轉(zhuǎn)化為數(shù)值型數(shù)據(jù)再進(jìn)行泛化層次結(jié)構(gòu)的劃分.例如,對(duì)于性別這一非數(shù)值數(shù)據(jù),需要先將性別類型進(jìn)行數(shù)值化,將女性數(shù)值化為“0”,男性數(shù)值化為“1”,最高層次定義為“人”,數(shù)值表示為“2”.
2) 對(duì)于數(shù)值屬性,根據(jù)屬性與敏感屬性之間的關(guān)聯(lián)度進(jìn)行泛化.例如,通過(guò)將血漿固醇含量和最高心率數(shù)據(jù)控制泛化層次的深度,使得數(shù)據(jù)分布更加均勻,有效減少了泛化過(guò)程中的信息損失,降低隱私泄露的風(fēng)險(xiǎn).血漿固醇含量和最高心率的泛化層次均為二層,性別的泛化層次為一層.根據(jù)關(guān)聯(lián)度以及準(zhǔn)標(biāo)識(shí)符屬性的取值范圍,運(yùn)動(dòng)型心絞痛的泛化層次為二層,靜息心電圖的泛化層次為三層.對(duì)QI屬性進(jìn)行泛化之后,需要使用聚類算法確定最佳簇的數(shù)量,提高數(shù)據(jù)的實(shí)用性.
本文中的實(shí)驗(yàn)使用手肘法確定最佳簇的數(shù)量,計(jì)算所有簇的誤差平方和(SSE),并將每個(gè)簇與其對(duì)應(yīng)的SSE值在坐標(biāo)軸中用點(diǎn)表示,坐標(biāo)軸中與手肘形狀最相似的拐點(diǎn)值被確定最佳的簇的數(shù)量,SSE的計(jì)算公式如下:
(5)
其中,Ci表示第i個(gè)簇,p表示Ci中的樣本點(diǎn),mi表示Ci中所有樣本的均值.
圖2 手肘圖Fig.2 Elbow method of data
根據(jù)坐標(biāo)點(diǎn)(k,SSEk)繪制出坐標(biāo)圖后,利用手肘法對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分析,確定合適的簇的數(shù)量.
由圖2可以看出,當(dāng)簇的數(shù)量等于6 時(shí),符合手肘法的判定標(biāo)準(zhǔn),因此,將該數(shù)據(jù)集的最佳簇的數(shù)量定為6,根據(jù)最佳簇的大小,完成對(duì)數(shù)據(jù)的聚類分析.為了比較數(shù)據(jù)匿名化后的效用性,本文從信息丟失以及執(zhí)行時(shí)間兩個(gè)方面對(duì)Datafly算法、PCA-GRA Datafly算法、PCA-GRA-KK算法以及PCA-GRA-BK算法進(jìn)行比較.
信息損失量是衡量匿名算法優(yōu)劣的基本標(biāo)準(zhǔn),信息損失量越低,表示匿名過(guò)程對(duì)原始數(shù)據(jù)信息的丟失率越小,數(shù)據(jù)的效用率更高,文獻(xiàn)[22]提出了信息損失量的計(jì)算公式:
(6)
其中,T表示原始的數(shù)據(jù)表,RT表示匿名化之后的數(shù)據(jù)表,n表示數(shù)據(jù)表中包含的元組個(gè)數(shù),nq表示準(zhǔn)標(biāo)識(shí)符屬性的數(shù)量,h表示第i條記錄的第j個(gè)準(zhǔn)標(biāo)識(shí)符在泛化樹(shù)中上升的層數(shù),|DHGA|表示屬性A的泛化樹(shù)高度,|t[Q]|表示記錄中準(zhǔn)標(biāo)識(shí)符Q的取值,m表示被抑制的元組個(gè)數(shù).
在K匿名化的過(guò)程中,QI屬性被泛化到高層次或被抑制到泛化結(jié)構(gòu)頂層的數(shù)據(jù)越多,表明信息的實(shí)用性被鉗制化,信息的損失率就越高.因此,K匿名是通過(guò)損失信息的實(shí)用性成本來(lái)達(dá)到匿名化的效果.
圖3顯示了四種算法的信息損失率,Dataly算法只對(duì)準(zhǔn)標(biāo)識(shí)符中數(shù)量最多的屬性值進(jìn)行K匿名化,造成的信息損失率較大;PCA-GRA Dataly算法將主成分分析法和灰度關(guān)聯(lián)分析法與Dataly算法相結(jié)合,根據(jù)屬性之間的關(guān)聯(lián)度劃分泛化層次,降低了信息損失率.
圖3 信息損失率的變化曲線圖Fig.3 Change curve of the information loss rate
PCA-GRA-KK算法與PCA-GRA-BK算法在PCA-GRA Dataly算法的基礎(chǔ)上增加聚類算法,對(duì)相似度高的元組進(jìn)行聚類,局部泛化QI屬性,對(duì)最佳聚類簇中的數(shù)據(jù)進(jìn)行K匿名化,減少了全局泛化造成的數(shù)據(jù)丟失;PCA-GRA-BK算法優(yōu)化了數(shù)據(jù)集中簇的劃分過(guò)程,進(jìn)一步降低了數(shù)據(jù)的丟失率;在醫(yī)療數(shù)據(jù)的匿名化過(guò)程中,關(guān)鍵是最大化地保留原始數(shù)據(jù)信息.顯然,在四種算法中,PCA-GRA-BK算法效果最優(yōu).
算法的運(yùn)行時(shí)間也是衡量一個(gè)算法性能的關(guān)鍵,運(yùn)行時(shí)間越短,則算法的時(shí)間復(fù)雜度更低,處理數(shù)據(jù)的速度更快.四種算法的時(shí)間復(fù)雜度和空間復(fù)雜度分別為O(n3),O(1).圖4顯示了四種算法的運(yùn)行時(shí)間.
綜合比較Datafly算法時(shí)間消耗更高;PCA-GRA Datafly算法對(duì)數(shù)據(jù)進(jìn)行降維,減少了算法的計(jì)算量,明顯降低了匿名化過(guò)程的時(shí)間消耗;與PCA-GRA-KK算法和PCA-GRA-BK算法相比,PCA-GRA Datafly算法通過(guò)使用聚類算法,大大減少了匿名化過(guò)程中尋找等價(jià)類的時(shí)間,而且算法運(yùn)行時(shí)間更加穩(wěn)定;PCA-GRA-BK算法對(duì)初始簇劃分進(jìn)行了優(yōu)化,避免在全局?jǐn)?shù)據(jù)聚類過(guò)程中陷入局部最優(yōu),在運(yùn)行時(shí)間上明顯優(yōu)于PCA-GRA-KK算法.綜合比較得出,PCA-GRA-BK算法在運(yùn)行時(shí)間上穩(wěn)定而且消耗時(shí)間少,更加具有優(yōu)勢(shì).
圖4 算法運(yùn)行時(shí)間的變化曲線圖Fig.4 Change curve of the running time of the algorithm
本文基于Datafly算法,為了解決數(shù)據(jù)維度高、傳統(tǒng)算法的QI屬性過(guò)度泛化的問(wèn)題及K-means算法的局部最優(yōu)問(wèn)題,提出PCA-GRA-BK算法.首先利用主成分分析法確定不同維度之間數(shù)據(jù)的關(guān)聯(lián)性,對(duì)原始數(shù)據(jù)進(jìn)行降維;再利用灰度關(guān)聯(lián)分析法劃分準(zhǔn)標(biāo)識(shí)符的泛化結(jié)構(gòu)層次,數(shù)據(jù)關(guān)聯(lián)度越高,則泛化層次越密集;最后對(duì)不同泛化層次的數(shù)據(jù)進(jìn)行匿名.在數(shù)據(jù)集的劃分過(guò)程中,將相似的數(shù)據(jù)元組劃分到同一個(gè)簇,避免了全局?jǐn)?shù)據(jù)匿名化造成的相近元組數(shù)據(jù)的信息損失.通過(guò)四種算法的信息損失率和運(yùn)行時(shí)間的比較,證明了PCA-GRA-BK算法的數(shù)據(jù)損失率更低,運(yùn)行時(shí)間穩(wěn)定而且消耗時(shí)間少.因此,PCA-GRA-BK算法能夠?qū)υ紨?shù)據(jù)降維的同時(shí),減少醫(yī)療數(shù)據(jù)的泄露概率,保護(hù)患者的隱私.如何降低信息損失度,是未來(lái)研究需要解決的重要問(wèn)題.在接下來(lái)的工作中,將進(jìn)一步對(duì)多敏感屬性數(shù)據(jù)進(jìn)行研究,使其能夠更好地應(yīng)用于醫(yī)學(xué)領(lǐng)域.