蔡 鵬
[摘要]數據挖掘是解決數據庫中數據急劇增大與利用率低之間矛質的必然結果。數據庫知識發現(kdd)技術的應運而生使得人們在實際工作中消耗大量財力和物力的數據得以利用。這也是數據庫知識和人工智能技術發展的結果。
[關鍵詞]模式 數據庫中的知識發現 數據挖掘
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0920081-01
一、引言
隨著數據庫技術的不斷發展及數據庫管理系統的廣泛應用,數據庫中存儲的數據量急劇增大。但目前數據庫系統所能做到的只是對數據庫中已有的數據進行存取,人們通過這些數據所獲得的信息僅僅是整個數據庫所包含的信息量的一部分。也就是說傳統的數據分析方法(例如:統計)只能獲得這些數據的表層信息,而不能獲得數據屬性的內在關系和隱含的信息,即不能獲得重要的知識。面對“堆積如山”的數據集合,無論在時間意義上還是空間意義上,傳統的數據分析手段還是難以應付。這樣,快速的數據產生與搜集技術和拙劣的數據分析方法之間形成了鮮明的對照。
在數據技術飛速發展的同時,人工智能和機器學習的研究也取得了很大進展。根據人類學習的不同模式人們提出了很多機器學習方法。如:實例學習、觀察和發現學習、神經網絡和遺傳算法等等,其中某些成熟的算法已被人們運用于應用系統及智能機的設計和實現中。
正是由于數據庫技術和人工智能技術的發展,也是為了滿足人們實際工作的需要:“智能地”和“自動地”分析數據,以使消耗大量財力和物力所收集與整理的寶貴資源——數據得以利用,數據庫知識發現(KDD)技術應運而生。
二、KDD與Data Minning
1996年KDD國際會議上KDD下了最新的定義:KDD是識別出存在于數據庫中有效的(valid)、新穎的(novel)、具有潛在效用的(potentially useful)乃至最終可理解的(ultimatly understandable)模式的非平凡過程。
數據:是指一個有關事實F的集合,它是用來描述事物有關方面的信息的。
模式:對于集合F的數據,用語言L來描述其中的數據的特性。從實際應用角度來講,這里所說的模式提取意味著尋求數據的模型和結構,或產生數據集的高層描述。
處理過程:KDD是一個多步驟的處理過程,包括數據預處理、模式提取、知識評估及過程優化。我們說這個過程是非平凡的,主要是指這個過程中加入了啟發參考信息,也就是說它并不是我們平常所說的數據集合上的計算,不是在預先定量基礎上的一個直接計算。
可信:通過KDD從當前數據所發現的模式必須有一定的正確程度,否則KDD就毫無作用。可以通過新增數據來檢驗模式的正確性。
新穎:經過KDD提取出的模式必須是新穎的,至少對系統來說應該如此。模式是否新穎可以通過兩個途徑來衡量:其一是得到的數據,通過當前獲得數據和以前的數據或期望得到的數據之間比較,來判斷該模式的新穎程度;其二是通過其內部所包含的知識,通過對比發現的模式與已有模式的關系來判斷。
潛在作用:提取出的模式應該是有意義的,例如,它可以給用戶或工程帶來好處。
可被人理解:KDD的一個目標就是將數據庫中隱含的棋式以容易被理解的形式表現出來。為此,可以輔以后期處理:如解釋過程。
KDD是一個多步驟的處理過程,在處理過程中可能會有很多次的反復。主要包括以下一些步驟:
1.準備。了解KDD相關領域的有關情況,熟悉背景知識,并弄清楚用戶的要求。
2.數據選擇。根據用戶的要求從數據庫中提取與KDD相關的數據,KDD將主要從這些數據中進行知識提取,在此過程中,會利用一些數據庫操作對數據進行處理。
3.數據預處理。主要是對階段2產生的數據進行再加工,檢查數據的完整性及數據的一致性,對其中的噪音數據進行處理,對丟失的數據可以利用統計方法進行填補。
4.數據縮減。對經過預處理的數據,根據知識發現的任務對數據進行再處理,主要通過投影或數據庫中的其他操作減少數據量。
5.確定KDD的目標。根據用戶的要求,確定KDD是發現何種類型的知識,因為對KDD的不同要求,會在具體的知識發現過程中采用不同的知識發現算法。
6.確定知識發現算法。根據階段分析所確定的任務,選擇合適的知識發現算法,這包括選取合適的模型和參數,并使得知識發現算法與整個KDD的評判標準相一致。
7.數據挖掘(DM)。運用選定的知識發現算法,從數據中提取用戶所需要的知識,這些知識可以用一種特定的方式表示或使用一些常用的表示方法,如產生規則等。
8.模式解釋。對發現的模式進行解釋。在此過程中,為了取得更為有效的知識,可能會返回前面處理步驟中的某些步以反復提取,從而獲得更有效的知識。
9.知識評價。將發現的知識以用戶能了解的方式呈現給用戶。這期間也包含對知識的一致性的檢查,以確信本次發現的知識不與前發現的知識相抵觸。
從上面可以看出,數據挖掘只是KDD中的一個步驟,它主要是利用數據分析和某些特定的知識發現算法,在一定的運算效率的限制內,從數據中發現,生成模式。數據挖掘是KDD中最重要的一步。
一個數據挖掘算法通常由以下三個元素組成:
模型:包括模型助理功能(例如,分類或聚類等)和基函數(例如,線性函數或高斯概率分布函數)等。從數據中確定參數以后就形成模型。
優先準則:由于數據的不精確性將導致模型的多樣性與不完全性,因此需要具有確定模型或參數優先機制,它一般是表示某種形式的模型對問題的符合度函數。
搜索算法:包括對模型、參數或優先準則的各種搜索算法。
三、DataMining技術
知識發現的目的決定于系統的目標,它可以分成兩類:證實(verifi
cation)和發現(discovery)。前者是指系統局限于確認用戶的假設;后者是指系統自動地尋求新的模式。基于發現目的的不同又可以分成預測和描述兩類。預測是指尋求模式的目的是為了預測某些實體的將來行為;描述是指系統尋求模式的目的是為了用戶理解。
不管目的如何,它們均可以借助于數據庫搜索、生成、知識表示、數學或統計學模型等等來實現。但是,由于數據挖掘提出了很多具有挑戰性的課題,直接運用相關學科(如:機器學習、統計學和數據庫系統等)的方法和技術不能很多地解決這些難題。所以進行專向研究,以發明新的數據挖掘方法或形成集成技術,用以更加高效、更有效的數據挖掘成為必然。在這個意義上,數據挖掘已形成了一個自身獨立的新領域。
總的來說,數據挖掘是面向應用的,不同的應用需要不同的挖掘技術去實現。數據挖掘中運用的技術可以分成以下幾類:
1.挖掘關聯規則:發現數據對象間的相互依賴關系。
2.數據概括和總結:從相關的一組數據中提取出這些數據的特征式,表達數據集總體特征。
3.數據分類:根據數據的不同特性,將其劃歸為不同的類,這些類是事先利用訓練數據建立起來的。
4.數據聚類:根據所處理的數據的一些屬性,對這些數據進行分類,這種分類是基于當前所處理的數據。
5.模式搜索:可以利用遺傳算法等。
目前Data Mining和KDD的研究已引起各種研究機構和公司的關注。其研究和應用方面還存在許多問題尚待解決,還面臨著許多挑戰。隨著技術的發展和理論研究的深入,相信在不久的將來,會有新的多種理論與方法合理結合出現,那時KDD會更好地服務于人們。