丘仕能
摘要:隨著大數(shù)據(jù)時(shí)代的發(fā)展,數(shù)據(jù)分析成為整個(gè)大數(shù)據(jù)處理流程的核心,就是從大數(shù)據(jù)中獲得各種信息,這就包括了數(shù)據(jù)可視化分析、數(shù)據(jù)預(yù)測(cè)、數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)等。而tensorflow在數(shù)據(jù)分析方面有一定的便捷性。該文對(duì)大數(shù)據(jù)的特征進(jìn)行了分析,并由此為基礎(chǔ)介紹當(dāng)前數(shù)據(jù)分析的一些技術(shù)和工具,并介紹tensorflow關(guān)于數(shù)據(jù)處理與數(shù)據(jù)可視化方面的運(yùn)用。
關(guān)鍵詞:大數(shù)據(jù);數(shù)據(jù)分析;tensorflow;可視化
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1009-3044(2018)15-0022-01
1大數(shù)據(jù)的定義與特征
自2011年IDC給出大數(shù)據(jù)定義以來(lái),隨著眾多專家對(duì)大數(shù)據(jù)的研究與分析,現(xiàn)在較為被人接受的定義如下,大數(shù)據(jù)是指使用傳統(tǒng)和常用的軟件技術(shù)和工具在一定時(shí)間內(nèi)無(wú)法完成獲取、管理和處理的數(shù)據(jù)集;而麥肯錫全球研究所給出的定義是,大數(shù)據(jù)指的是在大小范圍超過(guò)常用數(shù)據(jù)庫(kù)工具的獲取、存儲(chǔ)、管理和分析能力的數(shù)據(jù)集。
相較于傳統(tǒng)處理的小數(shù)據(jù),大數(shù)據(jù)具有以下“5個(gè)V的特點(diǎn):
1)規(guī)模大(Volume):數(shù)據(jù)容量從20世紀(jì)80年代末的GB、TB的級(jí)別上升到20世紀(jì)90年代的PB、EB級(jí)別的數(shù)據(jù)單位。
2)類型多(Variety):即大數(shù)據(jù)不僅包括傳統(tǒng)的關(guān)系型、結(jié)構(gòu)化數(shù)據(jù),還包括以網(wǎng)頁(yè)、視頻、音頻、文檔等形式存在的未加工、半結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù)。
3)時(shí)效性(Velocity):很多大數(shù)據(jù)需要在一定的時(shí)間限度內(nèi)得到及時(shí)處理,滿足一定的響應(yīng)性能要求。
4)準(zhǔn)確性(Veracity):大數(shù)據(jù)中的內(nèi)容是與真實(shí)世界中的發(fā)生息息相關(guān)的,研究大數(shù)據(jù)就是從龐大的網(wǎng)絡(luò)數(shù)據(jù)中提取出能夠解釋和預(yù)測(cè)現(xiàn)實(shí)事件的過(guò)程,處理的結(jié)果要保證一定的準(zhǔn)確性。
5)價(jià)值性(Value):是通過(guò)數(shù)據(jù)分析后獲取得到有價(jià)值的數(shù)據(jù),并對(duì)大數(shù)據(jù)進(jìn)行分析挖掘,合理運(yùn)用數(shù)據(jù),以低成本創(chuàng)造高價(jià)值。
2 大數(shù)據(jù)分析的技術(shù)與工具
大數(shù)據(jù)分析是將數(shù)據(jù)用于特定的模型中回答特定的問(wèn)題或發(fā)現(xiàn)新的見(jiàn)解,特定的模型是指具有描述性、診斷性、預(yù)測(cè)性與規(guī)定性的模型,通過(guò)在某平臺(tái)上運(yùn)行算法后發(fā)現(xiàn)大數(shù)據(jù)中潛在價(jià)值的過(guò)程。
大數(shù)據(jù)分析的第一步是數(shù)據(jù)的“抽取——轉(zhuǎn)換——加載”,典型的大數(shù)據(jù)分析方法有以下三種,一是可視化數(shù)據(jù)分析,二是數(shù)據(jù)挖掘算法,三是預(yù)測(cè)性分析。大數(shù)據(jù)分析時(shí)是將數(shù)據(jù)的不同來(lái)源、類型關(guān)系的區(qū)別、平面數(shù)據(jù)等文件提取出來(lái),然后通過(guò)人工或者機(jī)器進(jìn)行清潔、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉(cāng)庫(kù)或者數(shù)據(jù)集市中,成為聯(lián)機(jī)分析處理、數(shù)據(jù)挖掘的基礎(chǔ)。由于數(shù)據(jù)來(lái)源不同且格式不匹配,因此,數(shù)據(jù)清潔變得尤為重要。目前,數(shù)據(jù)清潔工作基本都是數(shù)據(jù)工程師通過(guò)半自動(dòng)化的工具進(jìn)行的人工的簡(jiǎn)單處理。因?yàn)閿?shù)據(jù)源的種類與數(shù)量同商業(yè)的情報(bào)任務(wù)時(shí)刻緊密關(guān)聯(lián),從而這就涉及實(shí)時(shí)數(shù)據(jù)分析了,而這種數(shù)據(jù)分析這一般采用“復(fù)雜事件處理”方法,是指通過(guò)將系統(tǒng)數(shù)據(jù)分為不同類型的事件,根據(jù)事件間的關(guān)系建立不同的序列庫(kù),利用過(guò)濾、關(guān)聯(lián)等技術(shù),最終產(chǎn)生高級(jí)事件和商業(yè)流程。另一個(gè)大數(shù)據(jù)分析的重要因素是“關(guān)鍵績(jī)效指標(biāo)”,通過(guò)建立關(guān)聯(lián)績(jī)效指標(biāo),“成功”的標(biāo)準(zhǔn)成為企業(yè)及其各部門制定優(yōu)先事項(xiàng)標(biāo)準(zhǔn)的界定。大數(shù)據(jù)分析需要?jiǎng)?chuàng)新,故而需要大量的試驗(yàn);雖然大數(shù)據(jù)分析有它獨(dú)特的優(yōu)勢(shì),但也有很大的局限性,因?yàn)橹灰獢?shù)據(jù)足夠大,數(shù)據(jù)挖掘總能發(fā)現(xiàn)一些關(guān)系,因此需要很多專家來(lái)控制大數(shù)據(jù)分析的范圍,以及分析方向。
目前并沒(méi)有適合所有場(chǎng)所的大數(shù)據(jù)分析軟件和工具。由于大數(shù)據(jù)分析工具通常非常復(fù)雜、程序密集,所以再運(yùn)用時(shí)需要多種技能才能有效應(yīng)用。而目前的分析工具有:電子表格、在線分析處理、統(tǒng)計(jì)或定量算法、規(guī)則引擎、數(shù)據(jù)挖掘工具、文本挖掘工具、模擬工具、遺傳算法、信息提取、群智能;但按分析流程劃分有:查詢和報(bào)告軟件、聯(lián)機(jī)分析軟件、數(shù)據(jù)挖掘軟件、可視化軟件等。當(dāng)前大數(shù)據(jù)處理確定標(biāo)準(zhǔn)的軟件系統(tǒng)有可能是目前比較流行的Hadoop。這些流行的系統(tǒng)一般具備較好特性,如具有磁性、靈活性與深刻性等特點(diǎn)。
3 tensorflow的數(shù)據(jù)處理
Tensorflow是一個(gè)采用數(shù)據(jù)流圖,用于數(shù)值己算的開源軟件庫(kù)。節(jié)點(diǎn)(Nodes)表示數(shù)學(xué)操作,線(edges)則表示在節(jié)點(diǎn)間相互聯(lián)系的多維數(shù)據(jù)數(shù)組,即張量(tensor)。任何研究開發(fā)人員都可以在 Apache2.0開源協(xié)議下使用tensorflow,而Tensorflow具備以下特征:高度的靈活性,需要將你的計(jì)算表示為一個(gè)數(shù)據(jù)流,也可以通過(guò)自己書寫代碼來(lái)豐富底層操作;真正可移植性發(fā),tensorflow可以在CPU與GPU上運(yùn)行,從而可以使你的模型在多個(gè)CPU上規(guī)?;\(yùn)算;性能最優(yōu)化,Tensorflow 給予了線程、隊(duì)列、異步操作等以最佳的支持,可以將你手邊硬件的計(jì)算潛能全部發(fā)揮出來(lái);多語(yǔ)言支持,支持python/C++程序構(gòu)建頁(yè)面,如果業(yè)務(wù)使用其他編程也不用擔(dān)心,使用跨語(yǔ)言的gRPC或者HTTP服務(wù)也可以訪問(wèn)使用TensorFlow訓(xùn)練好的智能模型。
大數(shù)據(jù)架構(gòu)中采用的是hadoop系統(tǒng)以及Kerberos安全認(rèn)證,而分布式的Tensorflow是常用與機(jī)器學(xué)習(xí)的架構(gòu),hadoop解決了大數(shù)據(jù)的存儲(chǔ)問(wèn)題,而分布式Tensorflow解決了大數(shù)據(jù)訓(xùn)練以及數(shù)據(jù)可視化分析的問(wèn)題。
TensorFlow的數(shù)據(jù)供給機(jī)制允許你在TensorFlow運(yùn)算圖中將數(shù)據(jù)注入到任一張量中。因此,python運(yùn)算可以把數(shù)據(jù)直接設(shè)置到TensorFlow圖中。Tensorflow處理大數(shù)據(jù)一般使用其提供的batch gennerator,然后把數(shù)據(jù)送入隊(duì)列中用string_input_producer來(lái)生成一個(gè)先入先出的隊(duì)列,從而使文件閱讀器讀取數(shù)據(jù),根據(jù)閱讀器,選擇相應(yīng)閱讀器read方法輸出一個(gè)key來(lái)表示輸入的文件和其中的記錄,使用tf.train.batch或者tf.train.shuffle_bath就可以生成你定義的batch size的數(shù)據(jù)了,需要用Coordinator()和start_queue_runer()來(lái)監(jiān)控隊(duì)列的狀態(tài)。
Tensorflow的數(shù)據(jù)可視化分析運(yùn)用的是TensorBoard,主要是方便TensorFlow程序的理解、調(diào)試與優(yōu)化,并展示其圖像,繪制生成的定量指標(biāo)圖及附加數(shù)據(jù)。
在生成TensorBoard時(shí)主要是通過(guò)創(chuàng)建節(jié)點(diǎn)圍繞數(shù)據(jù)生成圖像。主要通過(guò)構(gòu)建函數(shù),創(chuàng)建一個(gè)FileWrite對(duì)象和一個(gè)事件文件,運(yùn)用tf.train.SummaryWriter生成可視化的文件,TensorBoard會(huì)在事件文件中選擇相應(yīng)的圖,并且通過(guò)圖形的方式展示出來(lái).
參考文獻(xiàn):
[1] 顧榮.大數(shù)據(jù)處理技術(shù)與系統(tǒng)研究[D].南京:南京大學(xué),2016.
[2] 高志鵬,牛琨,劉杰.面向大數(shù)據(jù)的分析技術(shù)[J].北京郵電大學(xué)校報(bào),2015(7).
[3] 張靖雨,網(wǎng)瀟楓,周楠.基于大數(shù)據(jù)分析技術(shù)的數(shù)據(jù)安全與機(jī)器學(xué)習(xí)[J].數(shù)據(jù)庫(kù)技術(shù),2018(03).
[4] 王兆華.基于大數(shù)據(jù)分析下的機(jī)器學(xué)習(xí)模型設(shè)計(jì)方法[J].電腦知識(shí)與技術(shù),2018(01).
[5] 李成錄.大數(shù)據(jù)背景下機(jī)器學(xué)習(xí)算法的綜述[J].信息技術(shù)與材料,2018(03).