摘要:隨著網絡安全問題受到越來越多的關注,隱私保護數據挖掘問題已經成為數據挖掘領域中的研究熱點。該文設計與實現了一個隱私保護數據挖掘系統,系統的算法可以幫助用戶完成一些簡單的隱私保護數據挖掘工作。在實際系統應用中,用戶可以根據實際需要加入新的算法來完成隱私保護數據挖掘工作。
關鍵詞:隱私保護;數據挖掘;數據變換
中圖分類號:TP309文獻標識碼:A文章編號:1009-3044(2010)11-2605-03
Privacy Data Mining System Design and Implementation
ZHONG Yi, CHEN Zhi-bin
(Guangzhou Municipal Education Information Center, Guangzhou 510030, China)
Abstract: With the network security issues are more and more attention, privacy preserving data mining data mining has become a hot area of research. In this paper the design and implementation of a privacy preserving data mining system, the system's algorithms can help users to complete simple privacy preserving data mining work. In actual system applications, the actual needs of the user can add new algorithms to complete the work of privacy preserving data mining.
Key words: privacy protection; data mining; data transformation
在信息時代,各種信息狂轟濫炸,人們在面臨更多信息的同時,在浩瀚無垠的信息海洋面前,面臨艱難的選擇。互聯網中快速增長的信息與數據背后隱藏著眾多人們所不知的知識,因此,人們都希望通過對這些數據進行深入的分析,找出這些信息內部存在的關系和規則,將數據變為對自己有用的信息,成為真正的財富。數據挖掘技術的出現使得這些變成可能。數據挖掘技術是對大量的數據進行處理,從中提取和挖掘有趣知識的有效手段。數據挖掘可以使用戶準確、及時地得到所需要的信息。但凡事都有兩面性,數據挖掘能夠產生財富的同時,信息安全與個人隱私問題成為一個嚴峻的問題。
1 系統需求分析
隱私保護數據挖掘系統是一個應用于集中式數據的隱私保護數據挖掘的工具軟件。系統整體包括兩個獨立運行的子系統:隱私保護與數據挖掘子系統。系統主要分兩步完成隱私保護數據挖掘工作,如圖1所示。
關系數據庫中的數據表是系統的處理對象。其中,隱私保護子系統對需要保護隱私的數據表進行隱私保護,得到隱私保護輸出表,并保存到數據庫。輸出表包含多個配套的輔助信息表和一個經隱私保護后得到的改造后的新數據表。數據挖掘子系統根據輔助信息表對新數據表進行數據挖掘,得到數據挖掘結果。
1.1 隱私保護子系統需求分析
隱私保護子系統的需求分析如下:
1)執行算法
系統執行用戶預先設定好的隱私保護算法,并將隱私保護輸出表保存到數據庫中。
2)指定需要保護隱私的數據表(以下簡稱原表)輸入數據庫
用戶根據系統界面提示,指定原表輸入數據庫并建立連接。
3)選擇原表
系統中顯示原數據庫中的數據表,用戶從數據表中選出原表。如果找不到原表,用戶可以返回,重新指定輸入數據庫。
4)設定算法
用戶為數據庫中的每個原表中的字段選擇隱私保護算法的算法,未選擇算法的字段將不會受到保護。用戶可以為保護算法指定算法參數。如果沒有指定,保護算法使用默認參數。
5)設定參數
系統顯示算法參數的說明及當前值,用戶對參數值進行修改。如果用戶給定的參數值不合法,系統給出錯誤原因,并要求用戶重新設定參數。
6)指定輸出數據庫
用戶根據界面提示指定輸出數據庫并建立連接。
1.2 數據挖掘子系統需求分析
數據挖掘子系統的功能需求如下:
1)執行算法
系統執行用戶設定好的數據挖掘算法,并將挖掘結果保存在結果文件中。
2)指定數據庫
用戶根據界面提示指定數據庫并建立連接。
3)選擇數據表
系統列表顯示數據庫中的數據表,用戶從數據庫中選出要挖掘的數據表。如果沒有,用戶可以返回并重新選擇數據源。
4)設定算法
系統列表顯示系統中存在的數據挖掘算法和原表中的全部字段,用戶選擇相應的算法,并選出應用該算法的字段。如果選擇的字段不適用于所選擇的算法,系統出現錯誤提示,并要求用戶重新選擇字段。
5)給定參數
系統顯示算法參數的當前值及說明。如有必要,用戶對參數值進行修改。如果用戶輸入的參數值不合法,系統提示錯誤及原因,并要求用戶重新輸入參數。
6)選擇結果文件
用戶從系統文件目錄中新建或選擇保存結果的文件。
2 隱私保護數據挖掘系統詳細設計
2.1 隱私保護子系統
1)數據訪問包
數據訪問包是對數據庫的訪問方法。本文設計的系統使用開放式數據庫互聯(Open Database Connectivity)技術實現對數據庫的訪問。開放式數據庫互聯的工作依賴于數據庫制造商提供的驅動程序,在開放式數據庫互聯的DLL下安裝不同數據庫的驅動程序,開發人員可以訪問不同數據庫的資源。
本系統使用MFC語言實現,開發工具為VC6.0。MFC引入了ODBC接口的封裝類,這些類封裝了很多的ODBC接口,通過這些類提供的接口,開發人員不用使用ODBC接口,就可以對數據庫的進行大部分操作,這大大簡化了編程過程,提高效率。
2)算法接口
所有的隱私保護算法組件都通過統一的算法接口與用戶界面進行交互。算法組件的保存格式為dll文件,其導出函數必須符合下述格式:
extern”C”CAlg*PASCALEXPORT CreateAlg(void)
CAlg為算法基類,具體算法必須聲明為算法基類的派生類并給出所有接口函數的實現。導出函數用來生成一個具體算法的對象,并返回該對象的指針。
算法基類包括的接口函數有:
·InitAlg(CDatabase*source,CString name,CString ob):算法初始化。給定算法的輸入信息:source參數為使用該算法的數據庫指針;name參數為使用該算法的數據表表名;ob參數記錄了使用該算法的字段名,如果有多個字段,中間以空格隔開。如果算法不適用于指定的數據表或字段,函數返回相應的提示信息。
·GetPara(CListCtrllist):獲取參數信息。將算法的參數信息付值給list,其第一列必須為各個參數的取值,其他各列為各參數的說明,具體個列數和內容有具體算法決定。
·RunAlg(CDatabase*result):執行算法。按照設定好的輸入信息和參數信息執行該算法,結果保存在result所指示的數據庫中。
·SetPara(CListCtrllist):設置參數信息。從list中讀取各算法參數的取值,list的格式與GetPara方法中付值時的格式相同。如果list中的參數值不合法,函數返回錯誤原因。
2.2 數據挖掘子系統
1)數據訪問包
與隱私保護子系統一樣,這里略去。
2)算法接口
所有的隱私保護算法組件都通過統一的算法接口與用戶界面進行交互。算法組件的保存格式為dll文件,其導出函數必須符合下述格式:
extem”C”CAlg*PASCAL EXPORT CreateAlg(void)
CAlg為算法基類,具體算法必須聲明為算法基類的派生類并給出所有接口函數的實現。導出函數用來生成一個具體算法的對象,并返回該對象的指針。
算法基類包括的接口函數有:
·InitAlg(CDatabase*source,CString name,CString ob):算法初始化。給定算法的輸入信息:source參數為使用該算法的數據庫指針;name參數為使用該算法的數據表表名;ob參數記錄了使用該算法的字段名,如果有多個字段,中間以空格隔開。如果算法不適用于指定的數據表或字段,函數返回相應的提示信息。
·GetPara(CListCtrllist):獲取參數信息。將算法的參數信息付值給list,其第一列必須為各個參數的取值,其他各列為各參數的說明,具體個列數和內容有具體算法決定。
·RunAlg(CString Fname):執行算法。按照設定好的輸入信息和參數信息執行該算法,結果保存在Fname所指示的文件中。
·SetPara(CListCtrllist):設置參數信息。從list中讀取各算法參數的取值,list的格式與GetPara方法中付值時的格式相同。如果list中的參數值不合法,函數返回錯誤原因。
3 系統的實現
系統主要包括隱私保護予系統和數據挖掘子系統兩大部分。
在隱私保護子系統的實現時,用戶根據系統的界面提示,設置輸入相關信息。然后系統根據用戶設置的信息執行算法。隱私保護子系統設計并實現了概率轉移、獨立噪音和分割擾亂三個隱私保護算法。
隱私保護子系統根據用戶輸入輸出數據表,執行算法得到相應的信息表和干擾后的數據表。這些結果表將集中存放在用戶指定的數據庫中。
在隱私保護子系統的實現時,用戶根據系統的界面提示,設置輸入相關信息。然后系統根據用戶設置的信息執行算法。數據挖掘子系統主要設計有三種數據挖掘算法:ID3、k-means、和Apriori。
數據挖掘子系統根據用戶的輸入輸出數據表,執行算法后得到的挖掘結果。用戶指定這些結果保存在結果文件中。結果文件的格式如下:
1)ID3算法
文件類型:文本文件
用類似XML的文檔格式描述得到的決策數。
2)k-means算法:
文件類型:文本文件
每行對應數據表中的一個元組,每行有兩個數值,第一個為元組代號,第二個為該元組所在聚簇的代號。
3)Apriori算法
文件類型:文本文件
每一行是一條關聯規則,關聯規則的輸出格式為:
(取值@字段,……)>>>(取值@字段,……)
參考文獻:
[1] 丁小剛,黃偉偉,柏文陽.關聯規則隱藏算法的研究[J].計算機應用研究,2006(6):28.
[2] 張鵬,童云海,唐世渭,等.一種有效的隱私保護關聯規則挖掘方法[J].軟件學報,2006(17):1764.
[3] 劉松.隱私保護下的關聯模式挖掘.微計算機應用[J].2006,27(2):85.