基于空間數據庫的數據挖掘技術
從空間數據庫發現知識的傳統途徑是通過專家系統、數據挖掘、空間分析等技術來實現的。但是在空間數據庫隱含知識的發現方面,只單獨依賴某一種技術,往往存在著這樣或那樣的缺陷。
對于專家系統來講,專家系統不具備自動學習的能力,GIS中的專家系統也達不到真正的智能系統的要求,僅能利用已有的知識進行推導。對于數據挖掘來講,空間數據庫與普通數據庫的在數據存儲機制的不同和空間數據的相互依賴性等特點決定了在空間數據庫無法直接采用傳統的數據挖掘方法。
對于空間分析來講,雖然空間分析中常用的統計方法可以很好地處理數字型數據,但是它存在的問題很多,如統計方法通常假設空間分布的數據間是統計上獨立的,而現實中空間對象間一般是相互關聯的;其次,統計模型一般只有具有相當豐富領域知識和統計方面經驗的統計專家才能用;另外,統計方法對大規模數據庫的計算代價非常高,所以在處理海量數據方面能力較低。
從上面的分析可以看出,由于空間數據具有諸多特點,因此在空間數據庫進行知識發現,需要克服使用單一技術的缺陷,即需要融合多種不同技術。所以研究人員提出了空間數據挖掘技術來解決從空間數據庫知識發現隱含知識的難題。
空間數據挖掘是多學科和多種技術交*綜合的新領域,它綜合了機器學習、空間數據庫系統、專家系統、可移動計算、統計、遙感、基于知識的系統、可視化等領域的有關技術。
空間數據挖掘利用空間數據結構、空間推理、計算幾何學等技術,把傳統的數據挖掘技術擴充到空間數據庫并提出很多新的有效的空間數據挖掘方法。與傳統空間分析方法相比,它在實現效率、與數據庫系統的結合、與用戶的交互、發現新類型的知識等方面的能力大大增強。空間數據挖掘能與GIS的結合,使GIS系統具有自動學習的功能,能自動獲取知識,從而成為真正的智能空間信息系統。
2 擴展傳統數據挖掘方法到空間數據庫
空間數據挖掘技術按功能劃分可分為三類:描述、解釋、預測。描述性的模型將空間現象的分布特征化,如空間聚類。解釋性的模型用于處理空間關系,如處理一個空間對象和影響其空間分布的因素之間的關系。預測型的模型用來根據給定的一些屬性預測某些屬性。
預測型的模型包括分類、回歸等。以下介紹將幾個典型的數據挖掘技術聚類、分類、關聯規則擴展到空間數據庫的方法。
聚類分析方法按一定的距離或相似性測度將數據分成一系列相互區分的組,而空間數據聚類是按照某種距離度量準則,在某個大型、多維數據集中標識出聚類或稠密分布的區域,從而發現數據集的整個空間分布模式。
經典統計學中的聚類分析方法對海量數據效率很低,而數據挖掘中的聚類方法可以大大提高聚類效率。文獻[1]中提出兩個基于CLARANS聚類算法空間數據挖掘算法SD和ND,可以分別用來發現空間聚類中的非空間特征和具有相同非空間特征的空間聚類。
SD算法首先用CLARANS算法進行空間聚類,然后用面向屬性歸納法尋找每個聚類中對象的高層非空間描述;ND算法則反之。文獻[4]中提出一種將傳統分類算法ID3決策樹算法擴展到空間數據庫的方法,該算法給出了計算鄰近對象非空間屬性的聚合值的方法,并且通過對空間謂詞進行相關性分析和采用一種逐漸求精的策略使得計算時間復雜度大大降低。
Koperski等[4]將大型事務數據庫的關聯規則概念擴展到空間數據庫,用以找出空間對象的關聯規則。此方法采用一種逐漸求精的方法計算空間謂詞,首先在一個較大的數據集上用MBR最小邊界矩形結構技術對粗略的空間謂詞進行近似空間運算,然后在裁剪過的數據集上用代價較高的算法進一步改進挖掘的質量。
3 空間數據庫實現技術
空間數據挖掘系統中,空間數據庫負責空間數據和屬性數據的管理,它的實現效率對整個挖掘系統有著舉足輕重的影響。所以下面詳細介紹空間數據庫的實現技術。
根據空間數據庫中空間數據和屬性數據的管理方式,空間數據庫有兩種實現模式:集成模式和混合模式。后者將非空間數據存儲在關系數據庫中,將空間數據存放在文件系統中。
這種采用混合模式的空間數據庫中,空間數據無法獲得數據庫系統的有效管理,并且空間數據采用各個廠商定義的專用格式,通用性差。而集成模式是將空間數據和屬性數據全部存儲在數據庫中,因此現在的GIS軟件都在朝集成結構的空間數據庫方向發展。
下面對集成結構的空間數據庫技術中的兩個主流技術基于空間數據引擎技術的空間數據庫和以Oracle Spatial為代表的通用空間數據庫進行比較分析。
空間數據引擎是一種處于應用程序和數據庫管理系統之間的中間件技術。使用不同GIS廠商的客戶可以通過空間數據引擎將自身的數據交給大型關系型DBMS統一管理;同樣,客戶也可以通過空間數據引擎從關系型DBMS中獲取其他類型GIS的數據,并轉化成客戶可使用的方式。
它們大多是在Oracle8i Spatial(較成熟的空間數據庫版本8.1.7于2000年9月推出)推出之前由GIS軟件開發商提供的將空間數據存入通用數據庫的解決方案,且該方案價格昂貴。
Oracle Spatial提供一個在數據庫管理系統中管理空間數據的完全開放體系結構。Oracle Spatial提供的功能與數據庫服務器完全集成。用戶通過SQL定義并操作空間數據,且保留了Oracle的一些特性,如靈活的n-層體系結構,對象定義,健壯的數據管理機制,Java存儲過程。
它們確保了數據的完整性、可恢復能力和安全性,而這些特性在混合模式結構中幾乎不可能獲得。在Oracle Spatial中,用戶可將空間數據當作數據庫的特征使用,可支持空間數據庫的復制、分布式空間數據庫以及高速的批量裝載,而空間中間件則不能。
除了允許使用所有數據庫特性以外,Spatial Cart ridge還提供用戶使用行列來快速訪問數據。使用簡單的SQL語句,應用者就能直接選取多個記錄。Spatial Cart ridge數據模型也給數據庫管理員提供了極大的靈活性,DBA可使用常見的管理和調整數據庫的技術。
4 空間數據挖掘系統的開發
4.1 通用SDM系統
在空間數據挖掘系統的開發方面,國際上最著名的有代表性的通用SDM系統有:GeoMiner,Descartes和ArcView GIS的S-PLUS接口。GeoMiner是加拿大Simon Fraser大學開發的著名的數據挖掘軟件DBMiner的空間數據挖掘的擴展模塊。
本文引用地址:http://www.j9360.com/article/201706/353656.htm空間數據挖掘原型系統GeoMiner包含有三大模塊:空間數據立方體構建模塊、空間聯機分析處理(OLAP)模塊和空間數據采掘模塊,能夠進行交互式地采掘并顯示采掘結果。空間數據采掘模塊能采掘3種類型的規則:特征規則、判別規則和關聯規則。GeoMiner采用SAND體系結構,采用的空間數據采掘語言是GMQL。其空間數據庫服務器包括MapInfo,ESRI/OracleSDE,Informix-Illustra以及其它空間數據庫引擎。
Descartes可支持可視化的分析空間數據,它與開發此軟件的公司所開發的數據挖掘工具Kepler結合使用,Kepler完成數據挖掘任務且擁有自己的表現數據挖掘結果的非圖形界面。Kepler和Descarte動態鏈接,把傳統DM與自動作圖可視化和圖形表現操作結合起來,實現C4.5決策樹算法、聚類、關聯規則的挖掘。
ArcView GIS的S-PLUS接口是著名的ESRI公司開發的,它提供工具分析空間數據中指定類。
除了以上空間數據挖掘系統外,還有GwiM等系統。
從以上SDM系統可以看出,它們的共同優點是把傳統DM與地圖可視化結合起來,提供聚類、分類等多種挖掘模式,但它們在空間數據的操作上實現方式不盡相同。Descartes是專門的空間數據可視化工具,它只有與DM工具Kepler結合在一起,才能完成SDM任務。而GeoMiner是在MapInfo平臺上二次開發而成,系統龐大,造成較大的資源浪費。S-PLUS的局限在于,它采用一種解釋性語言(Script),其功能的實現比用C和C++直接實現要慢得多,所以只適合于非常小的數據庫應用。基于現存空間數據挖掘系統的結構所存在的缺陷,我們提出空間數據挖掘系統一種新的實現方案。
4.2 空間數據挖掘系統一種新的實現方案
以上幾種系統都是用自己開發的或GIS軟件開發商提供的GIS平臺、組件或中間件來實現SDM系統中空間數據管理和分析。本文中提出了空間數據挖掘系統一種新的實現方案,即以現在通用空間數據庫(Oracle Spatial)為核心,利用其空間數據管理和空間分析的能力,完成空間數據挖掘中大量的空間信息抽取任務,GIS組件只承擔對挖掘結果的地圖化顯示任務。
采用這種模式,不僅可實現GIS系統與空間數據挖掘系統完全集成,并且由于大部分空間信息抽取過程直接在低層數據庫上進行,從而可大大提高計算效率。
新的空間數據挖掘系統結構如圖1所示。該系統的基本結構與一般數據挖掘系統相同,僅在數據挖掘和數據管理中增加了有關空間信息的抽取、空間數據管理和空間分析的功能,并建立了一個人機接口處理用戶的指令和顯示挖掘結果。
這種開發模式與現存開發模式的最大區別是用通用空間數據庫代替專門的GIS商用軟件實現空間數據管理和空間分析功能。它的優點如下:
(1)GIS商用軟件一般是為開發GIS系統而設計的。GIS作為一個獨立軟件系統時,需要具有完整的功能結構,而在為數據挖掘服務時,其主要目的在于為決策者提供決策對象及顯示作為挖掘結果的地圖,因此只要按需選取GIS的部分功能,而不必面面俱到。
GIS的一些功能,如空間數據的管理和空間分析等,在通用空間數據庫系統中存在相似模塊,因此可由通用空間數據庫管理系統中已有功能得到。空間數據和屬性數據的查詢和空間操作可利用數據庫管理功能,數據挖掘分析模塊則可作為一個或多個模塊,由數據挖掘子系統統一管理,而空間數據的存儲管理與分析均交給通用空間數據庫完成。
這樣不僅可減少系統的功能冗余,提高系統的一致性,還可更好地利用商用數據管理系統的各種優化技術來提高系統空間數據管理與分析的速度。
(2)從異構數據庫的集成和空間數據與屬性數據的統一管理來看,目前不同GIS廠商的遵循的空間數據格式標準不同,GIS通用平臺或組件一般只能直接處理本系統的空間數據文件,因此異種數據庫的集成是一個難題。
而通用空間數據庫提供了數據轉換接口,可以將各種不同格式的空間數據轉換為統一的格式存入擴展的對象——關系數據庫,從而很好地解決了異種數據庫的集成的問題。另外,它還克服了GIS系統空間數據與屬性數據分離的缺點。
(3)從數據挖掘與空間數據庫技術結合來看,空間數據庫系統與數據挖掘系統完全分開的系統盡管簡單,但有不少缺點。
首先,空間數據庫系統在存儲、組織、訪問和處理數據立方體方面提供了很大的靈活性和有效性。在空間數據庫(SDB)/空間數據倉庫(SDW)系統中,數據多半被很好地組織、索引、清理、集成或合并,使得找出任務相關的、高質量的數據成為一件容易的任務。不使用SDB/SDW系統,數據挖掘系統可能要花大量的時間查找、收集、清理和轉換數據。
其次,在SDB或SDW系統中,有許多被測試的、可伸縮的算法和數據結構,因此,使用這種系統開發有效的、可伸縮的實現,是切實可行的。
此外,大部分數據已經或將要存放在SDB/SDW系統中,不與這些系統耦合,數據挖掘系統就需要使用其它工具提取數據,使得很難將這種系統集成到信息處理環境。
(4)Oracle Spatial是專門為開發與執行大型企業空間數據倉庫而研制的產品,它在海量空間數據的存儲和組織上性能卓越,在開發基于空間數據倉庫的空間數據挖掘應用方面具有顯著的優勢。
(5)Oracle Spatial分擔了SDM算法中部分空間數據抽取的任務,減輕了數據挖掘子系統的負擔;另外,由于Oracle對分布式應用的良好支持,從而為實現分布式空間數據挖掘及并行空間數據挖掘提供了最佳方案。
基于以上方案,筆者實現了一個基于Oracle Spatial的分布式空間數據挖掘原型系統。系統由五部分組成:
①圖形用戶界面:用于進行交互式的挖掘并顯示挖掘結果;
②數據準備模塊:進行數據的選擇、預處理和轉換;
③挖掘模塊:聚類、分類、關聯規則等空間數據挖掘功能及挖掘結果的評價;
④空間數據管理模塊:執行數據準備模塊及挖掘模塊指定的空間操作;
⑤數據庫服務器:管理作為挖掘目標的空間數據和非空間數據及概念層次庫、挖掘結果庫。挖掘目標的空間和非空間數據及概念層次的存儲和空間數據的管理由Oracle8.1.7 Spatial實現。數據準備算法和聚類、分類、關聯規則等挖掘算法在服務器端實現,并提供接口給客戶端,在客戶端用GIS組件MapX4.0實現挖掘結果的專題圖顯示。其編程工具為VC++6.0。
評論