官术网_书友最值得收藏!

1.5 數(shù)據(jù)科學(xué)和大數(shù)據(jù)技術(shù)

在大數(shù)據(jù)爆發(fā)式增長(zhǎng)的時(shí)代,在理論層面,對(duì)數(shù)據(jù)利用的理論體系正逐步形成,因而數(shù)據(jù)科學(xué)的誕生成為必然;在實(shí)踐層面,隨著數(shù)據(jù)科學(xué)的理論架構(gòu)逐步成熟,相應(yīng)的對(duì)數(shù)據(jù)的加工提煉及挖掘技術(shù)也伴隨而生。數(shù)據(jù)科學(xué)理論可以指導(dǎo)人們對(duì)大數(shù)據(jù)的利用,數(shù)據(jù)技術(shù)和工具成為挖掘數(shù)據(jù)的有力工具。

1.5.1 數(shù)據(jù)科學(xué)

目前大數(shù)據(jù)的工程技術(shù)研究已走在科學(xué)研究的前面。美國(guó)政府 6 個(gè)部門啟動(dòng)的大數(shù)據(jù)研究計(jì)劃中,國(guó)家科學(xué)基金會(huì)的研究?jī)?nèi)容提到要“形成一個(gè)包括數(shù)學(xué)、統(tǒng)計(jì)基礎(chǔ)和計(jì)算機(jī)算法的獨(dú)特學(xué)科”。圖靈獎(jiǎng)得主吉姆.格雷描繪了數(shù)據(jù)密集型科研第四范式的愿景,將大數(shù)據(jù)科研從第三范式(計(jì)算機(jī)模擬)中分離出來單獨(dú)作為一種科研范式,是因?yàn)槠溲芯糠绞讲煌诨跀?shù)學(xué)模型的傳統(tǒng)研究方式。大數(shù)據(jù)研究能成為一門科學(xué)的前提是,在一個(gè)領(lǐng)域發(fā)現(xiàn)的數(shù)據(jù)的相互關(guān)系和規(guī)律具有可推廣到其他領(lǐng)域的普適性。提煉“大數(shù)據(jù)”的共性還需要一段時(shí)間的實(shí)踐積累才會(huì)逐步清晰、明朗。將大量多元異構(gòu)、交互性和時(shí)效性強(qiáng),并包含大量噪聲的數(shù)據(jù)作為研究對(duì)象的專門學(xué)科,依然具備了鮮明的學(xué)科特征。

數(shù)據(jù)科學(xué)的目標(biāo),同時(shí)也是人類的一個(gè)目標(biāo):獲得洞察力和理解能力。數(shù)據(jù)科學(xué)是統(tǒng)計(jì)學(xué)、軟件工程和領(lǐng)域?qū)I(yè)知識(shí)的組合。數(shù)據(jù)科學(xué)是以數(shù)據(jù)為中心的科學(xué)。可以理解為從現(xiàn)實(shí)世界到數(shù)據(jù)世界的投影。通過對(duì)數(shù)據(jù)的分析,來解釋、預(yù)測(cè)、洞見和決策為現(xiàn)實(shí)世界服務(wù)。數(shù)據(jù)科學(xué)是大數(shù)據(jù)時(shí)代面臨的新問題、新挑戰(zhàn)、新機(jī)遇和新方法的一套知識(shí)體系。

數(shù)據(jù)科學(xué)的特征表現(xiàn)在以下幾個(gè)方面。

● 由原來的被動(dòng)式變?yōu)橹鲃?dòng)式。

● 由數(shù)值報(bào)表的傳統(tǒng)角色轉(zhuǎn)變?yōu)橹С譀Q策的角色。

● 傳統(tǒng)的技術(shù)方法轉(zhuǎn)為現(xiàn)代的技術(shù)方法。

● 成為大數(shù)據(jù)時(shí)代需要的、獨(dú)立的一整套科學(xué)體系。

統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí)、可視化和領(lǐng)域知識(shí)與經(jīng)驗(yàn)構(gòu)成了數(shù)據(jù)科學(xué)的4個(gè)方面。

數(shù)據(jù)科學(xué)以統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí)、數(shù)據(jù)可視化及其他領(lǐng)域知識(shí)為理論基礎(chǔ),其主要研究?jī)?nèi)容包括數(shù)據(jù)科學(xué)基礎(chǔ)理論、數(shù)據(jù)預(yù)處理、數(shù)據(jù)計(jì)算和數(shù)據(jù)管理。

1.5.2 大數(shù)據(jù)技術(shù)與工具

大數(shù)據(jù)技術(shù)與工具包括:大數(shù)據(jù)采集及預(yù)處理、大數(shù)據(jù)分析、大數(shù)據(jù)可視化、Hadoop平臺(tái)、HDFS和Common概論、MapReduce概論、NoSQL技術(shù)、R與Python等。借助這些大數(shù)據(jù)的平臺(tái)和工具,分析、研究大量的數(shù)據(jù)過程中的模式、相關(guān)性和其他有用的信息,可以幫助企業(yè)更好地適應(yīng)變化,并做出更明智的決策。圖1-12所示為大數(shù)據(jù)分析所采用的技術(shù)平臺(tái)、方法和語言。此處不一一列舉,僅就數(shù)據(jù)可視化技術(shù)、Hadoop平臺(tái)、R語言和Python語言談一下大數(shù)據(jù)技術(shù)及工具。

圖1-12 大數(shù)據(jù)分析的技能圖譜

1.數(shù)據(jù)可視化技術(shù)

數(shù)據(jù)可視化旨在借助于圖形化手段,清晰、有效地傳達(dá)與溝通信息。為了有效地傳達(dá)思想觀念,美學(xué)形式與功能需要齊頭并進(jìn),通過直觀地傳達(dá)關(guān)鍵的方面與特征,從而實(shí)現(xiàn)對(duì)于相當(dāng)稀疏而又復(fù)雜的數(shù)據(jù)集的深入洞察。然而,設(shè)計(jì)人員往往并不能很好地把握設(shè)計(jì)與功能之間的平衡,從而創(chuàng)造出華而不實(shí)的數(shù)據(jù)可視化形式,無法達(dá)到其主要目的,也就是傳達(dá)與溝通信息。

數(shù)據(jù)可視化與信息圖形、信息可視化、科學(xué)可視化及統(tǒng)計(jì)圖形密切相關(guān)。當(dāng)前,在研究、教學(xué)和開發(fā)領(lǐng)域,數(shù)據(jù)可視化是一個(gè)極為活躍而又關(guān)鍵的方面。“數(shù)據(jù)可視化”這條術(shù)語實(shí)現(xiàn)了成熟的科學(xué)可視化領(lǐng)域與較年輕的信息可視化領(lǐng)域的統(tǒng)一。

(1)科學(xué)可視化

科學(xué)可視化(Scientific Visualization)是科學(xué)中的一個(gè)跨學(xué)科研究與應(yīng)用領(lǐng)域,主要關(guān)注的是三維現(xiàn)象的可視化,如建筑學(xué)、氣象學(xué)、醫(yī)學(xué)或生物學(xué)方面的各種系統(tǒng)。重點(diǎn)在于對(duì)體、面及光源等的逼真渲染,甚至還包括某種動(dòng)態(tài)成分。此類數(shù)字型表現(xiàn)形式或數(shù)據(jù)集可能會(huì)是液體流型(fluid flow)或分子動(dòng)力學(xué)之類的計(jì)算機(jī)模擬的輸出,或者經(jīng)驗(yàn)數(shù)據(jù)(如利用地理學(xué)、氣象學(xué)或天體物理學(xué)設(shè)備所獲得的記錄)。就醫(yī)學(xué)數(shù)據(jù)(CT、MRI和PET等)而言,常常聽說的一條術(shù)語就是“醫(yī)學(xué)可視化”。圖1-13所示為人類的顱骨CT片。

圖1-13 人類的顱骨CT片

科學(xué)可視化本身并不是最終目的,而是許多科學(xué)技術(shù)工作的一個(gè)構(gòu)成要素。這些工作之中通常會(huì)包括對(duì)于科學(xué)技術(shù)數(shù)據(jù)和模型的解釋、操作與處理??茖W(xué)工作者對(duì)數(shù)據(jù)加以可視化,旨在尋找其中的種種模式、特點(diǎn)、關(guān)系及異常情況;換句話說,也就是為了幫助理解。因此,應(yīng)當(dāng)把可視化看作是任務(wù)驅(qū)動(dòng)型,而不是數(shù)據(jù)驅(qū)動(dòng)型。

(2)信息可視化

信息可視化(Information Visualization)是一個(gè)跨學(xué)科領(lǐng)域,旨在研究大規(guī)模非數(shù)值型信息資源的視覺呈現(xiàn)(如軟件系統(tǒng)中眾多的文件或者一行行的程序代碼)。通過利用圖形圖像方面的技術(shù)與方法,幫助人們理解和分析數(shù)據(jù)。與科學(xué)可視化相比,信息可視化則側(cè)重于抽象數(shù)據(jù)集,如非結(jié)構(gòu)化文本或者高維空間當(dāng)中的點(diǎn)(這些點(diǎn)并不具有固有的二維或三維幾何結(jié)構(gòu))。圖1-14所示為云標(biāo)簽分析出的文本。

圖1-14 云標(biāo)簽

(3)可視化分析

就目標(biāo)和技術(shù)方法而言,信息可視化與可視化分析之間存在著一些重疊。當(dāng)前,關(guān)于科學(xué)可視化、信息可視化及可視化分析之間的邊界問題,還沒有達(dá)成明確清晰的共識(shí)。不過,大體上來說,這三個(gè)領(lǐng)域之間存在著以下幾點(diǎn)區(qū)別。

① 科學(xué)可視化處理的是那些具有天然幾何結(jié)構(gòu)的數(shù)據(jù)(如MRI數(shù)據(jù)、氣流等)。②信息可視化處理的是抽象數(shù)據(jù)結(jié)構(gòu),如樹狀結(jié)構(gòu)或圖形。③可視化分析尤其關(guān)注的是意會(huì)和推理。

任何事物都是一類信息,如表格、圖形、地圖,甚至包括文本在內(nèi),無論其是靜態(tài)的還是動(dòng)態(tài)的,都將為人們提供某種方式或手段,從而讓人們能夠洞察其中的緣由,找出問題的答案,發(fā)現(xiàn)形形色色的關(guān)系,或許還能讓人們理解在其他形式的情況下不易發(fā)覺的事情。不過,如今在科學(xué)技術(shù)研究領(lǐng)域,信息可視化這條術(shù)語則一般適用于大規(guī)模非數(shù)字型信息資源的可視化表達(dá)。有關(guān)可視化的內(nèi)容將在后續(xù)章節(jié)中進(jìn)一步討論。

2.Hadoop軟件框架

Hadoop 是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架。Hadoop是以一種可靠、高效、可伸縮的方式進(jìn)行處理的。Hadoop 是可靠的,因?yàn)樗僭O(shè)計(jì)算元素和存儲(chǔ)會(huì)失敗,因此它維護(hù)多個(gè)工作數(shù)據(jù)副本,確保能夠針對(duì)失敗的結(jié)點(diǎn)重新分布處理。Hadoop 是高效的,因?yàn)樗圆⑿械姆绞焦ぷ鳎ㄟ^并行處理來加快處理速度。Hadoop 還是可伸縮的,能夠處理 PB 級(jí)數(shù)據(jù)。此外,Hadoop 依賴于社區(qū)服務(wù)器,因此它的成本比較低,任何人都可以使用。

Hadoop是一個(gè)能夠讓用戶輕松架構(gòu)和使用的分布式計(jì)算平臺(tái)。用戶可以輕松地在Hadoop上開發(fā)和運(yùn)行處理海量數(shù)據(jù)的應(yīng)用程序。它主要有以下幾個(gè)優(yōu)點(diǎn)。

1)高可靠性。Hadoop按位存儲(chǔ)和處理數(shù)據(jù)的能力值得人們信賴。

2)高擴(kuò)展性。Hadoop是在可用的計(jì)算機(jī)集簇間分配數(shù)據(jù)并完成計(jì)算任務(wù)的,這些集簇可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的結(jié)點(diǎn)中。

3)高效性。Hadoop能夠在結(jié)點(diǎn)之間動(dòng)態(tài)地移動(dòng)數(shù)據(jù),并保證各個(gè)結(jié)點(diǎn)的動(dòng)態(tài)平衡,因此處理速度非???。

4)高容錯(cuò)性。Hadoop能夠自動(dòng)保存數(shù)據(jù)的多個(gè)副本,并且能夠自動(dòng)將失敗的任務(wù)重新分配。

Hadoop帶有用 Java 語言編寫的框架,因此運(yùn)行在 Linux 生產(chǎn)平臺(tái)上是非常理想的。Hadoop 上的應(yīng)用程序也可以使用其他語言編寫,比如 C++。圖1-15所示為Hadoop構(gòu)架。

圖1-15 Hadoop構(gòu)架

3.R與Python語言

做數(shù)據(jù)分析、科學(xué)計(jì)算等離不開編程語言的使用,目前該領(lǐng)域的主流編程語言是R語言、Python語言等。

(1)R語言

R語言是統(tǒng)計(jì)領(lǐng)域廣泛使用的、誕生于1980年左右的S語言的一個(gè)分支??梢哉J(rèn)為R語言是S語言的一種實(shí)現(xiàn)。而S語言是由AT&T貝爾實(shí)驗(yàn)室開發(fā)的一種用來進(jìn)行數(shù)據(jù)探索、統(tǒng)計(jì)分析和作圖的解釋型語言。后來Auckland大學(xué)的Robert Gentleman和Ross Ihaka及其他志愿人員開發(fā)了一個(gè)R系統(tǒng)。R語言是基于S語言的一個(gè)項(xiàng)目,所以也可以當(dāng)作S語言的一種實(shí)現(xiàn),通常用S語言編寫的代碼都可以不作修改地在R語言環(huán)境下運(yùn)行。R語言是一個(gè)免費(fèi)的軟件,針對(duì)不同的操作系統(tǒng)都是可以免費(fèi)下載和使用的。

R語言有一套完整的數(shù)據(jù)處理、計(jì)算和制圖開發(fā)工具。其功能包括:數(shù)據(jù)存儲(chǔ)和處理系統(tǒng);數(shù)組運(yùn)算工具(其向量、矩陣運(yùn)算方面功能尤其強(qiáng)大);完整連貫的統(tǒng)計(jì)分析工具;優(yōu)秀的統(tǒng)計(jì)制圖功能;簡(jiǎn)便而強(qiáng)大的編程語言,可操縱數(shù)據(jù)的輸入和輸出,可實(shí)現(xiàn)分支、循環(huán),用戶可自定義功能。

R語言的思想是:它可以提供一些集成的統(tǒng)計(jì)工具,但更大量的是它提供各種數(shù)學(xué)計(jì)算、統(tǒng)計(jì)計(jì)算的函數(shù),從而使用戶能靈活機(jī)動(dòng)地進(jìn)行數(shù)據(jù)分析,甚至創(chuàng)造出符合需要的新的統(tǒng)計(jì)計(jì)算方法。R語言的功能如下。

● R語言內(nèi)含多種統(tǒng)計(jì)學(xué)及數(shù)字分析功能。因?yàn)镾語言的關(guān)系,R比其他統(tǒng)計(jì)學(xué)或數(shù)學(xué)專用的編程語言有更強(qiáng)的物件導(dǎo)向(面向?qū)ο蟪绦蛟O(shè)計(jì))功能。

● R語言的另一強(qiáng)項(xiàng)是繪圖功能。

● R語言可用作矩陣計(jì)算,其分析速度可高過商業(yè)軟件MATLAB。

R語言入門難,入門后相對(duì)容易,而Python語言入門相對(duì)容易,接下來對(duì)其做簡(jiǎn)要介紹。

(2)Python語言

Python語言是一種面向?qū)ο蟮?、直譯式計(jì)算機(jī)程序設(shè)計(jì)語言,由Guido van Rossum于1989年底發(fā)明。第一個(gè)公開發(fā)行版發(fā)行于1991年。Python語法簡(jiǎn)潔而清晰,具有豐富和強(qiáng)大的類庫(kù)。

它能夠很輕松地把用其他語言制作的各種模塊(尤其是C/C++)輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用Python語言快速生成程序的原型(有時(shí)甚至是程序的最終界面),然后對(duì)其中有特別要求的部分用更合適的語言改寫。比如3D游戲中的圖形渲染模塊,速度要求非常高,就可以用C++重寫。

Python語言的特點(diǎn)通過表1-7列舉出來。

表1-7 Python語言的特點(diǎn)

Python易學(xué)、易讀、易維護(hù),處理速度也比R語言要快,無須把數(shù)據(jù)庫(kù)切割。相對(duì)于傳統(tǒng)的Java,C語言、R和Python具有強(qiáng)大的數(shù)據(jù)處理和分析能力,是大數(shù)據(jù)時(shí)代的主流語言工具。

總之,大數(shù)據(jù)的開發(fā)工具和平臺(tái)不止以上這幾種,相信在不久的將來,隨著人們對(duì)大數(shù)據(jù)的利用程度的深入,將會(huì)涌現(xiàn)出更好的開發(fā)工具和語言,對(duì)數(shù)據(jù)的挖掘和利用的程度和效率也會(huì)更高、更好。

主站蜘蛛池模板: 桦甸市| 家居| 香港 | 莱州市| 金湖县| 禹州市| 邯郸县| 德江县| 金秀| 鸡西市| 合肥市| 余姚市| 五莲县| 治县。| 灵山县| 华池县| 石渠县| 巴青县| 库尔勒市| 西丰县| 石门县| 汉阴县| 秦安县| 陕西省| 淮滨县| 合肥市| 克拉玛依市| 广安市| 乐陵市| 襄汾县| 灵山县| 华亭县| 永修县| 垣曲县| 新营市| 化隆| 山阳县| 洪洞县| 兰考县| 紫云| 安远县|