唐 云,羅俊松
TANG Yun, LUO Jun-song
(成都理工大學(xué) 信息工程學(xué)院,成都 610059)
現(xiàn)代的數(shù)據(jù)可視化(Data Visualization)技術(shù)指的是運(yùn)用計(jì)算機(jī)圖形學(xué)和圖像處理技術(shù),將數(shù)據(jù)轉(zhuǎn)換為圖形或圖像在屏幕上顯示出來(lái),并進(jìn)行交互處理的理論方法和技術(shù)。它涉及計(jì)算機(jī)圖形學(xué)、圖像處理、計(jì)算機(jī)輔助設(shè)計(jì)、計(jì)算機(jī)視覺(jué)及人機(jī)交互技術(shù)等多個(gè)領(lǐng)域。數(shù)據(jù)可視化概念首先來(lái)自科學(xué)計(jì)算可視化,近年來(lái),隨著網(wǎng)絡(luò)技術(shù)和電子商務(wù)的發(fā)展,出現(xiàn)了信息可視化(Information Visualization),成為數(shù)據(jù)可視化的新的熱點(diǎn)。數(shù)據(jù)可視化的基本含義是“使之可見(jiàn)”,因此,數(shù)據(jù)挖掘的許多活動(dòng)都可以認(rèn)為是一種可視化,即利用可視化技術(shù)進(jìn)行信息傳輸、數(shù)據(jù)挖掘和知識(shí)發(fā)現(xiàn),最終實(shí)現(xiàn)決策支持。從這種觀點(diǎn)出發(fā),數(shù)據(jù)挖掘與數(shù)據(jù)可視化息息相關(guān),也正是在這些功能上,數(shù)據(jù)可視化與數(shù)據(jù)挖掘具有最大的重疊。
計(jì)算機(jī)圖形學(xué)(Computer Graphics)是計(jì)算機(jī)應(yīng)用領(lǐng)域中的一個(gè)重要研究方向。國(guó)際標(biāo)準(zhǔn)化組織ISO將計(jì)算機(jī)圖形學(xué)定義為:研究用計(jì)算機(jī)進(jìn)行數(shù)據(jù)和圖形之間相互轉(zhuǎn)化的方法和技術(shù)。由于交互技術(shù)在計(jì)算機(jī)圖形學(xué)中的普遍使用和重要性,因此人們也常把計(jì)算機(jī)圖形學(xué)稱為交互式計(jì)算機(jī)圖形學(xué)。
交互式圖形系統(tǒng)是在交互軟件的支持下,由操作人員通過(guò)交互式繪圖設(shè)備和計(jì)算機(jī)進(jìn)行對(duì)話。
進(jìn)行交互式繪圖需要相應(yīng)的軟件和硬件,硬件主要由主機(jī)和輸入、輸出設(shè)備組成,而軟件主要由應(yīng)用模型、應(yīng)用程序和圖形系統(tǒng)組成。交互式圖形系統(tǒng)的硬件部分不在本文的考察范圍內(nèi),這里簡(jiǎn)單介紹交互式圖形系統(tǒng)的軟件組成部分。1)應(yīng)用模型:應(yīng)用模型為顯示的圖形提供數(shù)據(jù)或所描述的對(duì)象,它保存著構(gòu)造圖形的一個(gè)或多個(gè)對(duì)象的全部描述信息。這些信息為交互繪圖提供支持。2)應(yīng)用程序:是交互式圖形系統(tǒng)的核心,它從應(yīng)用模型中取得圖形對(duì)象的各種數(shù)據(jù),并對(duì)這些數(shù)據(jù)進(jìn)行變化處理,再使用圖形系統(tǒng)生成該對(duì)象圖形,在輸出設(shè)備上輸出。3)圖形系統(tǒng):包括一些圖形子程序,可以提供各種圖形功能,驅(qū)動(dòng)特定的輸出設(shè)備,并產(chǎn)生圖形。
目前常用的計(jì)算機(jī)圖形處理語(yǔ)言有DirectX、OpenGL、VRML以及Java3D。由于OPENGL的跨平臺(tái)特性,許多人利用OpenGL編寫三維應(yīng)用程序,不過(guò)對(duì)于一個(gè)非計(jì)算專業(yè)的人員來(lái)說(shuō),利用OpenGL編寫出復(fù)雜的三維應(yīng)用程序是比較困難的,與其他的計(jì)算機(jī)圖形處理語(yǔ)言相比Java3D有其自身的特色。Java3D是在OpenGL三維圖形庫(kù)的基礎(chǔ)上發(fā)展起來(lái)的,Java3D API是高層次的面向?qū)ο?基于場(chǎng)景圖的編程接口,能實(shí)現(xiàn)對(duì)3D圖形數(shù)據(jù)的高性能處理,對(duì)圖形的平移、旋轉(zhuǎn)、拾取、刪除等操作的優(yōu)化處理,能處理更豐富的三維組合圖形和復(fù)雜的圖形模型。Java在互聯(lián)網(wǎng)上幾乎隨處可見(jiàn),而它在3D圖形上正顯示出更大的威力。使用Java的重要理由之一是它的平臺(tái)無(wú)關(guān)性,它的平臺(tái)無(wú)關(guān)性來(lái)自于Java只需部分編譯。負(fù)責(zé)編譯Java程序的是Java Virtual Machine (JVM),不同的平臺(tái)有它自己的JVM,處理與平臺(tái)相關(guān)的功能。因此,只要支持JVM,就能運(yùn)行Java小程序。兩種最有名的瀏覽器Netscape和IE都支持JVM,所以用Java制作的3D圖形幾乎可以在所有的互聯(lián)網(wǎng)瀏覽器上顯示。Java 3D再一次體現(xiàn)了Java語(yǔ)言的“一次書寫,隨處運(yùn)行”的優(yōu)點(diǎn),使得Java3D能夠運(yùn)行于多種平臺(tái),能夠更方便地應(yīng)用最新的三準(zhǔn)圖形加速技術(shù)。
Java3D采用樹形的場(chǎng)景圖結(jié)構(gòu),易于實(shí)時(shí)處理特殊三維效果的顯示,Java3D API的低層圖形結(jié)構(gòu)綜合了其他低層API( Direct3D, OpenGL,Quick-Draw3D)的優(yōu)點(diǎn),其高層結(jié)構(gòu)結(jié)合了場(chǎng)景圖(SceneGraph)模型,開發(fā)者只需集中精力于場(chǎng)景圖中的各個(gè)對(duì)象和組成元素,不必花費(fèi)時(shí)間和精力來(lái)設(shè)計(jì)具體的幾何形體和描繪代碼。要建立三維的應(yīng)用,實(shí)際上是構(gòu)造一個(gè)特定的場(chǎng)景圖,定義所需要的形體(shape3D),給出形體的外觀(Appearance)和幾何(Geometry)信息,再將它們通過(guò)變換節(jié)點(diǎn)(Trans-form Group)移到合適的位置(變換節(jié)點(diǎn)包含平移變換、旋轉(zhuǎn)變換(Tranaform3D))等操作,將變換節(jié)點(diǎn)添加到分支節(jié)點(diǎn)(Branch Group),分支節(jié)點(diǎn)添加到虛擬世界(Virtual Universe)的局部坐標(biāo)系里(Locale)。
數(shù)據(jù)挖掘是從大量的數(shù)據(jù)中提取或“挖掘”知識(shí)。廣義的觀點(diǎn)是,數(shù)據(jù)挖掘是從存放在數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)或其他信息庫(kù)中的大量數(shù)據(jù)中挖掘有意義的知識(shí)的過(guò)程。數(shù)據(jù)挖掘被視為數(shù)據(jù)管理與分析技術(shù)自然進(jìn)化的產(chǎn)物??梢暬跀?shù)據(jù)挖掘中是一個(gè)多面手,能使人在視覺(jué)上理解多維數(shù)據(jù)中的復(fù)雜模式,通過(guò)觀察數(shù)據(jù)在多重維數(shù)和多重圖形窗體中的存在形態(tài),可以直觀、迅速地揭示數(shù)據(jù)趨勢(shì),幫助驗(yàn)證數(shù)據(jù)挖掘模型的可信度。目前可視化技術(shù)運(yùn)用于數(shù)據(jù)挖掘,一般是作為表示工具,如生成最初的視圖,解析復(fù)雜結(jié)構(gòu)的數(shù)據(jù)和顯示分析結(jié)果,而分析方法本身并不包括可視化。一個(gè)更強(qiáng)的可視化數(shù)據(jù)挖掘策略依賴于將可視化與分析過(guò)程緊密結(jié)合起來(lái),形成一個(gè)統(tǒng)一強(qiáng)大的可視化數(shù)據(jù)挖掘工具。人類可視地參與到分析過(guò)程中以實(shí)現(xiàn)決策支持依然是一個(gè)主要的挑戰(zhàn):以基于可視化的人類決策代替一個(gè)分析過(guò)程中的某一數(shù)學(xué)步驟,當(dāng)決策不再能自動(dòng)生成時(shí),以可視化支持人類來(lái)處理決策。
可視化的基本思想就是使用圖形和圖像來(lái)表征數(shù)據(jù),將隱藏在大量數(shù)據(jù)中的信息以相對(duì)直觀、易于領(lǐng)會(huì)的圖像方式表達(dá)出來(lái),從而加快獲取信息的速度。可視化離不開圖形,計(jì)算機(jī)圖形學(xué)是數(shù)據(jù)挖掘可視化的基本工具。數(shù)據(jù)可視化是對(duì)大型數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)的可視化,是數(shù)據(jù)分析過(guò)程中必不可少的一個(gè)階段。在數(shù)據(jù)可視化方面,目前的研究方向主要是將關(guān)系數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)從不同的抽象層次將屬性、維度進(jìn)行聯(lián)合之后,以不同的呈現(xiàn)形式展現(xiàn)給用戶,稱為“前端展示”。國(guó)內(nèi)相繼開展了數(shù)據(jù)可視化技術(shù)方面的研究,并取得了一些成績(jī)。將數(shù)據(jù)的各個(gè)屬性值以多維數(shù)據(jù)的形式表示,可以從不同的維度觀察數(shù)據(jù),從而對(duì)數(shù)據(jù)進(jìn)行更深入的觀察和分析。
由于數(shù)據(jù)庫(kù)的日益龐大和計(jì)算機(jī)硬件處理能力的飛速發(fā)展,需要存儲(chǔ)和表現(xiàn)于最終用戶之前的信息也不斷增長(zhǎng)。然而,無(wú)論數(shù)據(jù)庫(kù)有多大,或是計(jì)算機(jī)有多快,最終,信息必須流經(jīng)一個(gè)最緊的瓶頸:人腦吸收和處理新信息的能力所能達(dá)到的速度。數(shù)據(jù)的龐大是壓倒一切的,人類的視覺(jué)系統(tǒng)和大腦不足以滿足人類以數(shù)據(jù)本身的形式來(lái)工作的要求,因此,迫切需要提供可視化的工具。利用可視化技術(shù)和新型計(jì)算機(jī)的處理能力使人腦吸收和處理新信息變得簡(jiǎn)單,從而解決這個(gè)問(wèn)題。并且,使用可視化技術(shù)在很多時(shí)候還可以發(fā)現(xiàn)用其他方式都無(wú)法發(fā)現(xiàn)的規(guī)律、模式。例如,假設(shè)把一個(gè)數(shù)據(jù)倉(cāng)庫(kù)想象為一座待挖掘的數(shù)據(jù)山,那么,把它可視化為一座真正的山將更加有助于得到想得到的知識(shí)。
在數(shù)據(jù)挖掘算法所生成的大量模式中,最終只有十分少量的信息能夠以文字的形式解釋和評(píng)估。因而使用可視化技術(shù)作為服務(wù)于計(jì)算機(jī)與用戶之間的溝通紐帶,為用戶提供關(guān)于數(shù)據(jù)和知識(shí)的直觀信息。這雖然不是數(shù)據(jù)挖掘系統(tǒng)中必不可少的,卻是極其重要的一步。并且,傳統(tǒng)的挖掘過(guò)程不可見(jiàn)、不直觀,用戶無(wú)法干預(yù)挖掘過(guò)程,對(duì)用戶來(lái)說(shuō)好像一個(gè)黑箱子,使用戶對(duì)系統(tǒng)得出的結(jié)論持懷疑態(tài)度。使用適當(dāng)?shù)目梢暬夹g(shù),幫助用戶更緊密地與整個(gè)挖掘過(guò)程相結(jié)合,解決挖掘系統(tǒng)中存在的一些問(wèn)題。
可視化的目的就是要充分利用人類對(duì)于可視化形式下模型和結(jié)構(gòu)的獲取能力,并對(duì)這個(gè)結(jié)果進(jìn)行分析解釋。數(shù)據(jù)可視化的方法有許多,如幾何方法、基于圖標(biāo)的方法、面向像素的方法、等級(jí)方法、圖表方法及上述方法的綜合運(yùn)用。常用的可視化圖表類型有:面積圖、柱形圖、立方體、圓環(huán)圖、擬合曲線圖、散點(diǎn)圖、折線圖、帕雷托圖、雷達(dá)圖等;其他常用的多維圖表類型包括:輪廓圖、直方圖、誤差圖、威斯丁豪斯圖和箱式圖等。
傳統(tǒng)的數(shù)據(jù)挖掘過(guò)程是以機(jī)器為中心的,而新的吸納了可視化技術(shù)的數(shù)據(jù)挖掘過(guò)程是以人為中心的。以人為中心的數(shù)據(jù)挖掘過(guò)程將數(shù)據(jù)挖掘與可視化技術(shù)完美結(jié)合,提高了整個(gè)數(shù)據(jù)挖掘過(guò)程的靈活性、有效性、與用戶的交互性。可視化技術(shù)在數(shù)據(jù)挖掘中可以起到以下作用:
1)通過(guò)提供對(duì)數(shù)據(jù)和知識(shí)的可視化,可以利用人類的模式識(shí)別能力評(píng)估和提高挖掘出的結(jié)果模式的有效性。
2)利用可視化技術(shù)建立用戶與數(shù)據(jù)挖掘系統(tǒng)交互的良好溝通通道,使用戶能夠使用自己豐富的行業(yè)知識(shí)來(lái)規(guī)整、約束挖掘過(guò)程,改善挖掘結(jié)果。
為了實(shí)現(xiàn)可視化圖形的多樣性以及數(shù)據(jù)集的獨(dú)立性,可采用面向?qū)ο蠹夹g(shù),為可視化圖形和數(shù)據(jù)集建立兩種不同的對(duì)象。數(shù)據(jù)集對(duì)象負(fù)責(zé)從數(shù)據(jù)源獲取數(shù)據(jù),然后驅(qū)動(dòng)可視化對(duì)象進(jìn)行顯示;可視化圖形對(duì)象為用戶提供顯示交互和查詢交互的方法,用戶可以使用這些方法來(lái)選擇和改變用于可視化的數(shù)據(jù)集。這樣就形成了一種“用戶可視化圖形對(duì)象數(shù)據(jù)對(duì)象”的機(jī)制,按照這種機(jī)制,可以建立DVM模型。
模型中用戶可以通過(guò)交互式顯示和交互式查詢方法得到相應(yīng)的結(jié)果。即終端用戶可以在可視化類中定義相應(yīng)的查詢語(yǔ)句,通過(guò)查詢處理器獲取相應(yīng)的數(shù)據(jù)形成該數(shù)據(jù)對(duì)象,同時(shí)通過(guò)數(shù)據(jù)驅(qū)動(dòng),采取相應(yīng)的可視化技術(shù)將查詢處理的結(jié)果可視化。此外,終端用戶也可以直接通過(guò)查詢語(yǔ)句獲取結(jié)果。
可視化技術(shù)在數(shù)據(jù)挖掘中有著廣泛的應(yīng)用,隨著它的不斷發(fā)展形成了可視化數(shù)據(jù)挖掘。數(shù)據(jù)挖掘事先并不知道會(huì)挖掘出什么結(jié)果,也不知道挖掘模型會(huì)得到什么樣的挖掘結(jié)果,可視化為分析大量的復(fù)雜的數(shù)據(jù)提供了幫助,數(shù)據(jù)挖掘和可視化的結(jié)合能夠大大提高決策的速度和效率。可視化的發(fā)展離不開交互式計(jì)算機(jī)圖形學(xué),其中JAVA 3D因其較強(qiáng)的可移植性能運(yùn)用于多種平臺(tái),,有效地解決了傳統(tǒng)可視化程序的局限性,近年來(lái)運(yùn)用的愈加廣泛了。
[1] 丁愛(ài)玲.計(jì)算機(jī)圖形學(xué)[M].西安電子科技大學(xué)出版社,2005.
[2] Jiawei Han,Micheline Kamber著.范明,孟小峰,等譯.數(shù)據(jù)掘概念與技術(shù)[M].北京:機(jī)械工業(yè)出版社,2001.
[3] Tom Soukup,Ian Davidson著,朱建秋,蔡偉杰,譯,可視化數(shù)據(jù)挖掘[M].北京:電子工業(yè)出版社,2004.