江 琴
(江蘇省江陰中等專業(yè)學校 江蘇 江陰 214400)
在計算機技術和信息技術的飛速發(fā)展下,各個領域產(chǎn)生的數(shù)據(jù)量持續(xù)增多,數(shù)據(jù)規(guī)模日益增大,促進我國步入大數(shù)據(jù)時代[1]。 在大數(shù)據(jù)時代下,數(shù)據(jù)的獲取與存儲尤為重要,由此衍生的大數(shù)據(jù)創(chuàng)新技術為大數(shù)據(jù)分析提供有力保障。 大數(shù)據(jù)分析作為大數(shù)據(jù)領域中的關鍵組成,主要采用合適的數(shù)據(jù)統(tǒng)計分析方法對采集獲取到的數(shù)據(jù)展開分析,從中提取價值信息進行歸納和總計,最終得出結(jié)論。總之,大數(shù)據(jù)分析的根本目的是從海量、無規(guī)則的數(shù)據(jù)中尋找具有價值的數(shù)據(jù),從而提高數(shù)據(jù)價值或賦予新價值,以便為決策人員提供科學的參考。 但常規(guī)大數(shù)據(jù)分析容易受數(shù)據(jù)類型繁雜等諸多因素的影響,導致大數(shù)據(jù)分析的效果不佳[2]。 而在大數(shù)據(jù)分析中應用Python 語言則能顯著提升數(shù)據(jù)分析的性能,Python 語言具有豐富的庫資源,在提高信息處理效率、降低誤差等方面具有較高的應用價值,在快速開發(fā)方面表現(xiàn)出顯著優(yōu)勢,現(xiàn)階段已經(jīng)成為第三大編程語言,具有廣泛應用價值。
在大數(shù)據(jù)時代背景下,大數(shù)據(jù)技術的應用范圍愈加廣泛,各個行業(yè)領域都會生成海量的數(shù)據(jù)。 大數(shù)據(jù)具有種類多、體量大的特點,且具有極高的數(shù)據(jù)價值,因此怎樣對大數(shù)據(jù)進行有效的分析處理,提高大數(shù)據(jù)資源利用率,是現(xiàn)階段信息技術領域面臨的主要問題。 大數(shù)據(jù)分析主要是依靠相應的數(shù)據(jù)統(tǒng)計分析方法,在保持數(shù)據(jù)處理效率的同時,對大數(shù)據(jù)內(nèi)部相關性及發(fā)展趨勢展開重點分析。 常規(guī)的大數(shù)據(jù)分析流程為“收集—清洗—分析—可視化”。 其中數(shù)據(jù)收集是大數(shù)據(jù)分析的前提,一般通過互聯(lián)網(wǎng)、數(shù)據(jù)庫、本地文件或傳感器等途徑對數(shù)據(jù)進行主動獲?。粩?shù)據(jù)清洗則是將收集到數(shù)據(jù)樣本中邏輯不清、無價值或不規(guī)范的數(shù)據(jù)剔除,或轉(zhuǎn)化為滿足質(zhì)量要求的數(shù)據(jù);數(shù)據(jù)分析主要是通過適當?shù)慕y(tǒng)計分析方法實現(xiàn)的數(shù)據(jù)樣本的分析,歸納數(shù)據(jù)之間的內(nèi)部關聯(lián),得出分布規(guī)律;數(shù)據(jù)可視化則是借助圖像處理技術,運用可視化圖像將數(shù)據(jù)直觀、形象地展現(xiàn)給用戶,為用戶對決策的制定提供參考。
在大數(shù)據(jù)分析中,集成信息系統(tǒng)(statistics analysis system,SAS)、Python 語言、R 語言都是常用的典型編程工具,其中R 語言和Python 語言是開源的,在互聯(lián)網(wǎng)領域中得到廣泛應用;而SAS 則是付費軟件,是醫(yī)療和金融行業(yè)編程開發(fā)所使用的標準工具[3]。 考慮大數(shù)據(jù)分析過程中涉及大量數(shù)據(jù)交互、計算以及可視化,Python 語言憑借自身豐富的第三方庫,更適合在大數(shù)據(jù)分析中應用,更便于實現(xiàn)多種數(shù)據(jù)分析。
1.2.1 Numpy 庫—數(shù)據(jù)分析基礎工具
Numpy 庫作為Python 語言中進行數(shù)組處理和矢量運算的一個科學計算庫,也是進行數(shù)據(jù)分析的標準工具。 借助Numpy 庫能夠有效實現(xiàn)Python 語言編程的高性能計算,為數(shù)組排列和適量計算提供有力幫助。 Numpy 庫的矢量運算功能不僅具有多個便捷接口,而且具有較高的計算效率,其運算速度是程序員自行操作Python 語言展開運算的一倍左右。 即便Numpy 庫不具備較多的高級分析能力,功能主要以基礎數(shù)據(jù)分析為主,但應用Numpy 庫是實現(xiàn)大數(shù)據(jù)分析的重要支持。
1.2.2 Pandas 庫—數(shù)據(jù)分析專用庫
Pandas 庫作為基于Numpy 庫的數(shù)據(jù)分析專用庫,具有較高的數(shù)據(jù)分析能力,可以對數(shù)據(jù)樣本進行分組、排序和歸并等相關處理操作,也可以實現(xiàn)求和、極值、標準差等計算。 Pandas 庫的應用主要是對結(jié)構(gòu)化數(shù)據(jù)進行處理。對于大數(shù)據(jù)分析的數(shù)據(jù)收集而言,Pandas 庫還支持對csv、xlsx、SQL Server、txt 等多種格式文件的讀取,且包含多種應用程序接口(application programming interface,API)函數(shù)。
1.2.3 Matplotlib 庫—數(shù)據(jù)可視化工具
Matplotlib 庫是典型的繪圖庫之一,通常與Numpy 庫配合使用,能夠?qū)崿F(xiàn)對數(shù)據(jù)分析結(jié)果的可視化,是應用Python 語言進行大數(shù)據(jù)分析中的關鍵可視化工具。 對于Matplotlib 庫的應用主要利用plot 工具包,plot 工具包憑借自身具備的繪圖API,實現(xiàn)了對繪圖對象結(jié)構(gòu)的有效封裝,用戶僅需對Pyplot 模塊中的函數(shù)進行調(diào)用,即可通過極少量的代碼完成所需圖形的高質(zhì)量繪制,包括散點圖、直方圖、三維圖形等。 其中直方圖是對數(shù)據(jù)體態(tài)特征的直接反映,如圖1 所示的是滿足正態(tài)分布下sigma 為20、mu為100 的10 萬條數(shù)據(jù)的直方圖。
圖1 利用Matplotlib 庫進行直方圖繪制
1.2.4 Scikit-learn 庫數(shù)據(jù)分析實現(xiàn)
Scikit-learn 庫是基于Numpy 庫、Matplotlib 庫的機器學習庫,支持回歸、分類、聚類三個計算類別,且具有模型選擇、數(shù)據(jù)降維處理、數(shù)據(jù)預處理等功能。 以下針對應用Scikit-learn 庫實現(xiàn)回歸計算的過程進行介紹。
首先對算法進行設計,Logistic 回歸作為線性分析模型,是借助回歸形式對分類問題進行有效解決。 假設特征向量x的屬性值集合為(x1,x2,x3,…,xn),由此基于屬性值線性組合得到的預測函數(shù)如式(1)所示:
式(1)中w代表權重,b代表偏值,由此可以認為算法是針對w與b的學習,也就是通過訓練學習的方式得到w與b,保證預測值和真實值之間具有最小的均方誤差[4]。 基于上述設定,針對數(shù)據(jù)點(x,y) ,如果數(shù)據(jù)點的預測值與真實值接近,即可生成如式(2)所示的線性回歸模型,主要是對輸入x與輸出y之間線性關系的表征。
其次,需要應用Scikit-learn 庫中的iris 數(shù)據(jù)展開訓練預測。 若沒有安裝Python 科學計算包,可采用Anaconda,作為Python 語言的集成開發(fā)環(huán)境,實現(xiàn)對大量第三方包資源的集成,適用于Python 的數(shù)據(jù)處理、科學計算以及預測分析。 在安裝完成Anaconda 之后,僅需通過對所需模塊導入數(shù)據(jù)即可將數(shù)據(jù)輸入劃分為訓練和測試兩個集合;通過對Logistic 回歸模型的合理選擇,即可完成對數(shù)據(jù)的訓練和預測。
在上述過程中,需要注意Scikit-learn 庫通常會將訓練獲取到的數(shù)值存儲在下劃線末端屬性之中,以此實現(xiàn)與程序員規(guī)劃參數(shù)區(qū)域的有效隔離:其中權重w存儲在coef_之中,偏值b存儲在intercept_之中。
Python 語言作為程序的一種,可借助軟件工具實現(xiàn)對網(wǎng)頁數(shù)據(jù)的獲取。 在對Python 爬蟲的設計過程中,通過對爬取網(wǎng)頁地址的確定,通過超文本傳輸協(xié)議(hyper text transfer protocol,HTTP)即可在信息頁面獲取所需的信息數(shù)據(jù),利用lxml 對數(shù)據(jù)進行篩選、保存。 在對Python 語言進行應用的過程中,在面向?qū)ο蟮幕A上,通過數(shù)據(jù)挖掘?qū)崿F(xiàn)對數(shù)據(jù)編譯的完善,進而為數(shù)據(jù)操作提供保障。 建立文件后,即可對爬蟲程序的基本規(guī)則進行設定,將數(shù)據(jù)放置在指定位置上。 同時,在提取爬蟲信息時,可依照Scrapy-Redis 對文件夾進行創(chuàng)建,在文件夾中對爬蟲所需內(nèi)容予以確定,實現(xiàn)對數(shù)據(jù)收集和分析的完善,進一步提升數(shù)據(jù)分析的時效性。
待完成Python 語言設計和數(shù)據(jù)信息的處理后,能夠利用搜索引擎實現(xiàn)網(wǎng)址的發(fā)送。 例如在軟件的開發(fā)設計完成后,可先對相關的數(shù)據(jù)信息進行網(wǎng)頁搜索,構(gòu)建鏈接通道,從而基于數(shù)據(jù)分析實現(xiàn)對數(shù)據(jù)規(guī)則及信息處理等的有效控制,保證數(shù)據(jù)抓取目標的達成。 而當新網(wǎng)站成功建立后,能夠同其他網(wǎng)站構(gòu)建合作關系,通過對Python 爬蟲爬取的應用,對數(shù)據(jù)提取規(guī)則進行添加,以達成大數(shù)據(jù)分析的目標。
應用Python 語言的過程中,為提升網(wǎng)頁信息數(shù)據(jù)獲取的便利性,可借助爬蟲軟件搭建搜索引擎,通過對統(tǒng)一資源定位符(uniform resource locator,URL)數(shù)據(jù)的分析實現(xiàn)數(shù)據(jù)分析的目的。 在此過程中可以通過獲取到的數(shù)據(jù)與目標數(shù)據(jù)之間的對比,得到URL 數(shù)據(jù)。 之后將存儲地址作為根據(jù),對相關數(shù)據(jù)展開統(tǒng)計和分析;將部分數(shù)據(jù)存儲于本地磁盤之中,通過有效的數(shù)據(jù)整合促進大數(shù)據(jù)分析能力的提升。
對于數(shù)據(jù)抓取而言,進行抓取的頁面中通常會存在較多的圖片和廣告,從而導致抓取到的數(shù)據(jù)容易出現(xiàn)失真的問題[5]。 由此,對于Python 語言的應用而言,可采用提供的數(shù)據(jù)預處理功能,優(yōu)先對頁面中的龐雜信息進行處理。 同時對于數(shù)據(jù)操作而言,可應用Python 語言對文字進行提取,通過爬蟲實現(xiàn)對數(shù)據(jù)獲取的控制,優(yōu)化大數(shù)據(jù)分析與處理。
應用爬蟲可實現(xiàn)對URL 數(shù)據(jù)的獲取,處理頁面信息,基于對爬蟲信息的獲取,能夠?qū)?shù)據(jù)存儲進一步優(yōu)化,強化對網(wǎng)站數(shù)據(jù)的分析與處理。 由程序員收集頁面中的相關數(shù)據(jù)信息,若數(shù)據(jù)存在相同情況即可合并,剔除其中的無價值信息,在計算機中存儲有價值的信息。 為盡可能減少存儲空間,需要對大數(shù)據(jù)先進行篩選,保證篩選過程的有效性。 在此過程中應用Python 語言則能有效處理頁面數(shù)據(jù),從而實現(xiàn)對信息抄襲的規(guī)避。
對于網(wǎng)絡爬蟲的應用而言,必須實現(xiàn)對爬取信息的強化控制。 基于對request 請求的設置,應用Python 語言具有的分頁檢索功能,基于對大數(shù)據(jù)的排序、分析、修改等,進一步提升Python 語言應用的舒適程度。
基于Python 語言自身的特點,對大數(shù)據(jù)分析中的實際應用進行設計。 基于對自動化平臺的構(gòu)建,在文件、執(zhí)行、腳本、實時信息等多個方面展開綜合管控,利用數(shù)據(jù)分析處理,進一步提高數(shù)據(jù)讀取水平。 在數(shù)據(jù)邏輯分析過程中,應用Python 語言,優(yōu)化文件信息和編程過程,通過對文件信息管控的強化,提高Python 語言的應用實效。 首先創(chuàng)建語言文件,通過對命令邏輯的設置處理數(shù)據(jù)流,待完成對文件信息的翻譯后,即可實現(xiàn)對整個數(shù)字操作和數(shù)據(jù)流輸出環(huán)節(jié)的優(yōu)化。 其次,對應用設計過程中的信息實時處理而言,可以采用.xml 格式進行文件信息的編譯,在數(shù)據(jù)輸出和信息處理的基礎上,輸出和控制編譯完成的文件信息,最終實現(xiàn)對相關數(shù)據(jù)的顯示。 為保證對Python語言的有效控制,采用工作流重啟方案,通過對臨時文件的選擇和處理,基于對現(xiàn)場文件的傳輸與控制,綜合管控參數(shù)及賦值變化情況,最終實現(xiàn)數(shù)據(jù)顯示與分析。 在此過程中,還可以采用cmd 命令,調(diào)用數(shù)據(jù)信息,實現(xiàn)數(shù)據(jù)的深度挖掘。
為驗證大數(shù)據(jù)分析中應用Python 語言的分析能力,通過對某區(qū)域狀態(tài)大數(shù)據(jù)的評估,將與傳統(tǒng)智能數(shù)據(jù)分析系統(tǒng)進行對比分析,展開測試。
為確保測試的效果,構(gòu)建模擬測試平臺,采用三維機械設計軟件(modular formation dynamics tester,MDT)和測量報告(measurement report,MR)定位裝置對區(qū)域狀態(tài)進行評估,搭建仿真模型對區(qū)域內(nèi)的狀態(tài)大數(shù)據(jù)進行收集,模型輸出如表1 所示。
表1 模型輸出統(tǒng)計
通過表1 得到的數(shù)據(jù)能夠看出,仿真模型的輸出數(shù)據(jù)和實際數(shù)據(jù)具有較高的擬合度,大數(shù)據(jù)信息準確性較高。在實際測試過程中,先進入大數(shù)據(jù)分析系統(tǒng),進行大數(shù)據(jù)智能分析,對大數(shù)據(jù)分析通過準則進行設置,也就是在MR 大數(shù)據(jù)測量過程中需要保證不同建筑物的大數(shù)據(jù)采集情況,對不同建筑物進行差異顏色渲染,確保滿足二區(qū)rsrp<-90 dBm,-110 dBm<三區(qū)rarp<-90 dBm,一區(qū)rsrp<-110 dBm。 之后即可進行大數(shù)據(jù)分析的時長測試。
應用Python 語言的大數(shù)據(jù)分析和傳統(tǒng)大數(shù)據(jù)智能分析對不同區(qū)域仿真檢測分析的耗時結(jié)果如表2 所示。
表2 測試結(jié)果
由表2 得到的測試結(jié)果可知,對于a~e 五個不同區(qū)域的測試而言,應用Python 語言的大數(shù)據(jù)分析耗時要明顯優(yōu)于傳統(tǒng)大數(shù)據(jù)智能分析的耗時,證明應用Python 語言的大數(shù)據(jù)分析具有更好的分析性能,分析效率相對較高。
綜上所述,Python 語言憑借其簡單易學、具有豐富類庫的特點在網(wǎng)絡爬蟲、Web 編程、人工智能等領域中得到廣泛應用。 本文通過對Python 語言和大數(shù)據(jù)分析,明確Python 語言可以為大數(shù)據(jù)提供基礎工具、專用庫、可視化工具,以及實現(xiàn)分析過程。 測試結(jié)果證明:應用Python 語言的大數(shù)據(jù)分析在耗時方面明顯優(yōu)于傳統(tǒng)大數(shù)據(jù)分析,Python 語言分析效率更高,可以更好地滿足大數(shù)據(jù)分析的實際應用需求。