數據庫中的知識發現kdd(knowledge discovery in databases)和數據挖掘dm(data mining)是在需求的驅動下發展起來的一門新的技術。隨著在政府部門、企事業單位、大型金融保險機構、大型商業機構、大型制造業及科研機構數據庫的大量建立,數據積累成倍地急劇增長,如何充分利用這些大量數據,對數據進行分析來指導生產工作、運營工作、銷售工作、競爭策略, 給領導者的決策一些支持;另一方面,如何從大量數據中挖掘出有用的信息(模式)和知識(規律),挖掘出科學上的未知規律, 已成為人類需要急切解決的問題。因此數據挖掘技術、知識發現系統就成為當今計算機領域的研究和關注的熱點之一。
隨著數據積累的增長,充分利用大量數據(即對數據進行分析來指導工作),并從大量數據中挖掘出有用的信息和知識,找出未知的規律,已成為人類急需解決的問題。本文就數據挖掘技術、知識發現系統這一熱點問題闡述其成功的關鍵、面臨的問題及所采用的技術。
數據庫中的知識發現kdd(knowledge discovery in databases)和數據挖掘dm(data mining)是在需求的驅動下發展起來的一門新的技術。隨著在政府部門、企事業單位、大型金融保險機構、大型商業機構、大型制造業及科研機構數據庫的大量建立,數據積累成倍地急劇增長,如何充分利用這些大量數據,對數據進行分析來指導生產工作、運營工作、銷售工作、競爭策略, 給領導者的決策一些支持;另一方面,如何從大量數據中挖掘出有用的信息(模式)和知識(規律),挖掘出科學上的未知規律, 已成為人類需要急切解決的問題。因此數據挖掘技術、知識發現系統就成為當今計算機領域的研究和關注的熱點之一。
隨著kdd的深入發展和internet 的普及,網上信息的大量增加,許多信息在網上發布,KDD在WWW網上挖掘也形成了熱點,并形成了基于internet的web mining技術,web mining包括:web 內容挖掘,web結構挖掘,web 用戶行為挖掘,當遇到的有文本、圖形、圖像等信息,又形成了text mining和image mining,多媒體挖掘等新的kdd的新方向。
kdd:定義和過程
1、 kdd的定義
許多研究者從不同的角度給出了有關kdd的定義,目前較一致認同的描述性定義是fayyad等人給出的:kdd是從數據集中識別出有效的、新穎的、潛在有用的以及最終可理解的模式的非平凡過程。
在上述定義中指出kdd是個過程,是從數據集識別模式的過程,幾個定語都是不可少。
2、kdd的過程
kdd過程可分為數據準備、數據挖掘以及結果的解釋評價,如圖所示。

圖:kdd的主要過程
(1)數據準備:數據準備可分為數據選取/抽樣、數據預處理和數據轉換。
(2)數據挖掘階段:根據數據挖掘的任務,確定采用哪一種數據挖掘算法。同樣的數據挖掘任務可以用不同的數據挖掘算法來實現,數據挖掘算法的選擇主要是根據以下兩個方面的因素:一是數據的特點;二是用戶和實際運行系統的要求。在完成了這些準備工作后,就可以進行數據挖掘了。數據挖掘階段僅占整個kdd過程的25%左右的工作量。
(3)結果解釋和評價:經數據挖掘所發現的模式,可能存在冗余或用戶不感興趣的模式,這時需要將其除去;也有可能所發現的模式不能滿足用戶的需要,要求整個發現過程再返回到數據挖掘階段之前,重新進行數據選取/抽樣、數據變換和數據挖掘,甚至換一種挖掘算法(如在發現分類規則就有多種數據挖掘方法可供選擇,不同的方法可能具有不同的挖掘效果)。
成功的關鍵與面臨的問題
數據挖掘與知識發現不是給出一些數據,采用一些數據挖掘算法就可以輕易地挖掘出知識,數據挖掘與知識發現成功的關鍵必須做到下面幾點:
1、 有明確的目標:用 kdd方法要解決什么問題,挖掘什么樣的模式、規律或知識,必須提出要挖掘的目標。這一點是能否挖掘出有用知識基點,不能說,我給你一些數據,你給我挖掘出知識來,在給出數據后,采用什么挖掘方法,怎樣挖掘,必須在有明確目標情況下進行,盲目的挖掘使挖掘系統無法進行。
2、 相對較長一段時間和相對準確的數據的積累:數據是知識發現的基礎,數據的質量和數量對知識發現起決定性作用,不是隨便給一些數據就能挖掘出有用的知識,數據必須有一定的質量和數量,在極不完整的數據上進行數據挖掘不會得到好的結果,往往數據質量和數量比數據挖掘方法更重要。
3、 領域專家的參與和指導:從目標的明確到挖到信息和知識的評價與判斷都需要領域專家的指導,否則知識的可信度和可靠性都值得懷疑。
kdd研究面臨的問題:
kdd是一個新興的研究領域,目前還處在發展的階段,還有很多的研究難題有待解決,數據的巨量性、動態性、多樣性、不一致性、噪聲性、缺值和稀疏性、發現模式的可理解性、興趣度等都給kdd帶來難度;數據質量、算法的有效性,知識的可用性都是研究的課題;kdd與應用系統的集成,kdd與用戶的交互,知識的更新管理,復雜數據類型的處理等等都是kdd研究面臨的挑戰。
crisp—dm簡介
crisp-dm - cross industry standard process for data mining 是ncr等四家公司聯合的研究項目,1997年開始,1999年3月已給出一個初步約100頁的報告,在此對其只作簡單介紹, 它將kdd過程分為下列幾個步驟:
1、 business understanding:在進行數據挖掘任務時首先要從企業的角度來了解任務的目標和要求,然后將這些目標和要求體現在數據挖掘的問題定義中和為達到這個目標所設計的初始的計劃中。
2、 data understanding:了解數據首先從收集數據開始,為保證數據質量,為對數據的深刻理解和為篩選出感興趣數據集,在其深刻理解數據的基礎上,應不斷收集相類似的數據,以便形成尋找隱藏信息的假設。
3、 data preparation:數據準備階段包括從初始的粗數據不斷形成適合數據挖掘模型的最后數據的全過程,包括數據表格、記錄、屬性的選擇,數據的轉換和數據清理。這項工作要多次完成。
4、 modeling:在這階段各種數據挖掘方法模型被選擇和應用;模型的參數被校準到最佳值。有許多數據挖掘方法可適應同一數據類型,有些數據挖掘方法對數據有特定要求。有時這階段還會返回到數據準備階段。
5、 evaluation:從數據分析人員的觀點看,所選模型有相當高的質量,在最后應用推廣時,必須更加徹底地評價這個模型,看看為構成該模型所執行的各個步驟能否達到企業要求的目標,更重要的是企業的關鍵問題有沒有充分考慮到。
6、 deployment:一般來說, 產生挖掘的模型并不是任務的結束, 雖然挖掘得到了知識,但知識需要組織和呈現給用戶,使用戶可以很好用這些知識。是否采用和推廣使用這種模型一般由用戶來進行決定,而不是分析人員來進行決定。
采用的幾種技術
根據數據采掘所采用的技術大致分為:統計方法、機器學習方法、神經網絡方法和數據庫方法。統計方法主要包括:回歸分析(多元回歸、自回歸等)、判別分析(貝葉斯判別、費歇爾判別、非參數判別等)、聚類分析(系統聚類、動態聚類等)、探索性分析(主元分析法、相關分析法等)、貝葉斯方法(貝葉斯網絡, 貝葉斯分類器等)。機器學習主要包括:歸納學習方法(決策樹、規則歸納、面向屬性的歸納方法等)、基于事例的學習、遺傳算法等, 神經網絡方法。數據庫方法主要是多維數據分析或olap方法;此外還有模糊方法,粗糙集方法和可視化方法。由于篇幅所限,本文僅就幾種常用的數據挖掘技術進行說明。
1、 決策樹歸納方法
在數據挖掘中最常使用的方法就是決策樹方法,它屬于歸納學習方法。它的基本想法是:給一組用屬性描述的訓練例,然后按屬性(值)構造一棵樹(二叉或多叉樹),從根節點到葉節點一條規則,葉節點就是一個類,由這棵樹(或由這棵樹形成的規則集)對另一組測試例進行分類(或)預測。這棵樹就是知識。
決策樹歸納方法主要有兩個問題:一是先從哪一屬性往下分叉,既特征選擇問題(或稱偏向問題),二是如何構造一棵"好"的樹(樹剪枝問題)。為解決前一問題研究出許多方法;最有代表性的是id3(改進的c4.5, c5.0),該方法用信息熵來找出最大增益(gain most information)作為構造樹的依據。剪枝一般說來有兩種策略:向前剪枝(forward pruning)和向后剪枝(backward pruning)。許多人給出各種剪枝方法,究竟采用什么剪枝法,視問題而定。
決策樹方法的優點是速度快,直觀可理解,所以被廣泛采用,但由于它是歸納學習方法,它有兩個弱點:樹不唯一且不永真。一般來說精度也不太高。為了提高精度,近年來發展起來的bagging和boosting 方法取得較好的效果。在選擇特征上也有人提出信息熵之外的方法,也有人提出多屬性方法,樹往下分叉不是用一個屬性,而用多個屬性,既多屬性(變量)決策樹。
2、 關聯規則的發現
關聯規則挖掘問題的提出:在大型零售商店或超級市場,存儲了大量的銷售記錄,這些銷售記錄又稱為貨籃數據(basket data)。貨籃數據保存了顧客在一次購買中所涉及的商品的詳情(如商品名稱、價格、數量等),我們稱之為事務。數據庫僅存大量的事務,決策者們想從這些數據中發現有用的信息,指導他們的營銷活動。在這樣的應用背景下,產生了關聯規則挖掘算法,用來從事務數據庫中發現有關客戶購買行為的知識,顧客購買一些商品與另一些商品的關系,稱之為關聯規則。以后關聯規則又被廣泛應用到其他領域。在此我們介紹關聯規則的一些定義,對算法不作介紹。
定義1:關聯規則挖掘的事務數據庫為d, d中的每個元組(紀錄)稱為事務t,d中所有屬性稱項目集i,i={i1,i2,...im} i 是一個項目,m是d中的所有項目數, 一條事務t是i中項目的集合,即t i。
定義2: 任意的項目集x和事務t若滿足:t x,則稱事務t包含項目集x。
任意的項目集y和事務t若滿足:t y ,則稱事務t包含項目集y 。
在超級市場的關聯規則挖掘問題中項目集可以看成一個或多個商品的集合,與某顧客一次購買對應的事務t包含項目集x(或y),也就是說該顧客在這次購物中購買了項目集x(或y)中的所有商品。
定義3: 關聯規則是形如x y的規則,其中x、y為項目集且x∩y= 。
表示顧客中購買了x中的所有商品,又購買了y中的所有商品。
定義4:若數據庫d中, s%的事務包含x∪y則關聯規則x y的支持率為s%;若包含項目集x的事務有c%的也包含項目集y,則關聯規則x y的置信度為c%。
3、 粗糙集(rough set)理論
粗糙集(rough set)理論是一種新型的處理模糊和不確定知識的數學工具。自1982年由波蘭數學家pawlak首次提出以來,經過十幾年的研究與發展,已經在理論和實際應用上取得了長足的進展,特別是由于八十年代末和九十年代初在知識發現等領域得到了成功的應用而受到國際上廣泛關注。目前,它已經在人工智能、知識發現、模式識別與分類、故障檢測等方面得到了較為成功的應用。粗糙集理論具有一些獨特的觀點,這些觀點使得粗糙集特別適合于進行數據分析。 粗糙集理論認為知識的粒度性是造成使用已有知識不能精確地表示某些概念的原因。 通過引入不可區分關系作為粗糙集理論的基礎, 并在此基礎上定義了上下近似等概念, 粗糙集理論能夠有效地逼近這些不精確概念。有了上、下近似和不可分關系的概念我們就能夠定義約簡和核這兩個對kdd有很大作用的概念。和模糊集合需要指定成員隸屬度不同, 粗糙集的成員是客觀計算的, 只和已知數據有關, 從而避免了主觀因素的影響。
4、 貝葉斯網絡
八十年代貝葉斯網絡成功地應用于專家系統,成為表示不確定性專家知識和推理的一種方法。九十年代以來,研究者們進一步研究了直接從數據中學習并生成貝葉斯網絡的方法,為貝葉斯網絡用于數據采掘和知識發現開辟了新途徑。這些新的方法和技術還在發展之中,但已在一些數據建模問題中顯示出令人矚目的效果。與其它用于數據采掘的表示法如規則庫、決策樹、人工神經網絡相比,基于貝葉斯方法的貝葉斯網絡有如下特點:適合處理不完整數據集問題,可以發現數據間的因果關系,可以綜合先驗信息(領域知識)和樣本信息,在樣本難以獲得或者代價高昂時特別有用。可以預見,在數據采掘和知識發現中,貝葉斯網絡將成為一個有力的工具。貝葉斯網絡至少可以解決如下四個方面的問題。其一是貝葉斯網能夠真正地處理具有不完整的數據集合;其二是貝葉斯網能夠獲得因果聯系;其三是貝葉斯網能夠更有機和充分地結合和利用已有的知識和觀測數據進行學習和預測;其四是貝葉斯網絡結合其它一些方法可以有效地避免數據的過度擬合。