汪澤宇
(三亞學(xué)院 海南 三亞 572022)
隨著大數(shù)據(jù)等新興技術(shù)的出現(xiàn),人們生活的各個方面都受到了影響。通過大數(shù)據(jù)技術(shù)可以輕松實(shí)現(xiàn)數(shù)據(jù)的特征分析,為個性化推薦服務(wù)提供技術(shù)支持。在目前的導(dǎo)航領(lǐng)域、人工智能領(lǐng)域、交通管理領(lǐng)域等多個不同領(lǐng)域中,大數(shù)據(jù)技術(shù)都發(fā)揮著出色的作用。比如通過大數(shù)據(jù)對比技術(shù),交通管理部門就可以根據(jù)車主的駕駛行為分辨出哪些車主屬于飲酒駕駛,這種精準(zhǔn)化的分辨方式可以很大程度上提高執(zhí)行的有效率,減少因酒駕、醉駕而引發(fā)的交通意外情況,從而保護(hù)了人民的財產(chǎn)、人身安全。
隨著數(shù)據(jù)量的增長,大數(shù)據(jù)時代正式來臨,在大數(shù)據(jù)時代中最重要的資源就是數(shù)據(jù),它已經(jīng)由簡單的處理對象演化為了一種基礎(chǔ)性資源,而大數(shù)據(jù)計算就是對這種資源的有效利用。并行計算在大數(shù)據(jù)中技術(shù)優(yōu)勢在于計算的并發(fā)性,高并發(fā)性使得數(shù)據(jù)處理更加快速,可同時處理的數(shù)據(jù)量也得到提高。
大數(shù)據(jù)其實(shí)包含很多概念,可以將達(dá)到一定數(shù)量級的數(shù)據(jù)體稱為大數(shù)據(jù),也可以將數(shù)據(jù)處理方式稱為大數(shù)據(jù),總之大數(shù)據(jù)在業(yè)界沒有形成統(tǒng)一的定義,人們?nèi)粘K佑|到的大數(shù)據(jù)也是比較模糊的,是多類技術(shù)的組合。
大數(shù)據(jù)的特征十分明顯,首先,數(shù)據(jù)體量大,大數(shù)據(jù)是在數(shù)據(jù)爆炸時代提出的新理論,本身“大數(shù)據(jù)”三個字就說明了這一特點(diǎn)。其次,數(shù)據(jù)類型復(fù)雜、數(shù)據(jù)價值密度低,大數(shù)據(jù)的計算就是在許多類型復(fù)雜的數(shù)據(jù)中尋找有特征、有價值的數(shù)據(jù),所以以上兩點(diǎn)也是大數(shù)據(jù)的基本特點(diǎn)。面對如此龐大的數(shù)據(jù)量,大數(shù)據(jù)必須有一個快速處理數(shù)據(jù)的解決方案,否則處理時的時間成本過高,數(shù)據(jù)便失去了原有的價值。大數(shù)據(jù)技術(shù)想要獲得更加準(zhǔn)確的數(shù)據(jù)特征就必須要處理足夠多的數(shù)據(jù)量。數(shù)據(jù)類型復(fù)雜和價值密度低也是大數(shù)據(jù)的基本特征之一,由于大數(shù)據(jù)本身的數(shù)量級十分龐大,其中所包含的數(shù)據(jù)類型十分復(fù)雜,很多數(shù)據(jù)都是無理化的無用數(shù)據(jù)或者重復(fù)數(shù)據(jù),想要在大量的數(shù)據(jù)中找到有用的信息,就需要進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)挖掘。
大數(shù)據(jù)挖掘有非常重要的應(yīng)用價值,最常見的是在電商領(lǐng)域的應(yīng)用。通過數(shù)據(jù)挖掘可以獲得商品的評價特征,從而確定商品的使用人群和目標(biāo)客戶。另一方面,通過數(shù)據(jù)挖掘也可以實(shí)現(xiàn)商品廣告的精準(zhǔn)化推送,實(shí)現(xiàn)定向廣告和智能推薦的宣傳模式[1]。在互聯(lián)網(wǎng)中,每一個網(wǎng)民都有獨(dú)特的用網(wǎng)特征,大數(shù)據(jù)挖掘就是發(fā)現(xiàn)這種特征數(shù)據(jù)并進(jìn)行分析,使其變成一種可用資源。大數(shù)據(jù)處理的一般流程分為用戶使用、數(shù)據(jù)解釋、數(shù)據(jù)分析、數(shù)據(jù)抽取集成和數(shù)據(jù)準(zhǔn)備五個步驟。
大數(shù)據(jù)挖掘的應(yīng)用十分廣泛,可以為很多商業(yè)決策提供參考,但是在某個產(chǎn)品的市場分析領(lǐng)域,大數(shù)據(jù)挖掘技術(shù)可以比較準(zhǔn)確地找出商品的潛在客戶,同時也可以分析商品宣傳的實(shí)際效果,相對于看廣告轉(zhuǎn)化率這一固定方法,大數(shù)據(jù)挖掘技術(shù)有更高的容錯率,可以發(fā)現(xiàn)更多的意向客戶和潛在客戶。
通過并行計算來實(shí)現(xiàn)并行數(shù)據(jù)處理,通常使用Hadoop平臺MapReduce工具。并行計算與普通計算最大的區(qū)別是允許一組數(shù)據(jù)同時執(zhí)行計算,在非并行計算方式中,一組數(shù)據(jù)計算的執(zhí)行是順序式的,而并行計算可以將一個計算任務(wù)拆分成多個子任務(wù)同時進(jìn)行,并行計算適用于大型且復(fù)雜的計算問題。表面看起來并行計算和多線程差不多,但是兩者之間又存在區(qū)別,并行計算還與分布式計算有關(guān)聯(lián),分布式計算可以在一臺計算機(jī)上進(jìn)行也可以在多臺計算機(jī)上同步進(jìn)行,這些計算機(jī)只需要通過一定的網(wǎng)絡(luò)協(xié)議進(jìn)行連接即可[2]。
MapReduce是Hadoop計算平臺的核心部分,通過MapReduce可以方便地實(shí)現(xiàn)并行數(shù)據(jù)挖掘。MapReduce模型屬于一種簡化的分布式程序設(shè)計,在處理大量數(shù)據(jù)的時候非常有優(yōu)勢,其基本的工作原理就是將要計算的數(shù)據(jù)集拆分之后自動分布到一個計算機(jī)集群中去進(jìn)行并發(fā)運(yùn)算,這些由普通計算機(jī)組成的計算機(jī)集群同時進(jìn)行演算工作,最后將結(jié)果進(jìn)行整理,并行計算模型可以節(jié)省大量的時間。MapReduce在執(zhí)行操作時,會按照創(chuàng)建挖掘任務(wù)、設(shè)置數(shù)據(jù)頭文件和算法參數(shù)、啟動任務(wù)、結(jié)果展示這幾個步驟依次完成,其中設(shè)置數(shù)據(jù)頭文件和算法參數(shù)這一步驟中,Map操作將數(shù)據(jù)一對一的映射為另外的一組數(shù)據(jù),Reduce則是對數(shù)據(jù)進(jìn)行規(guī)約,通過函數(shù)完成規(guī)則的指定。
通過并行計算來完成挖掘算法,最主要的目的是利用并行計算的特性來減少數(shù)據(jù)挖掘執(zhí)行所花費(fèi)的時間,當(dāng)通過平臺下發(fā)一個數(shù)據(jù)挖掘任務(wù)時,平臺會分配給這個任務(wù)一些執(zhí)行ID,得到ID的任務(wù)會進(jìn)入到任務(wù)執(zhí)行隊列中,在檢查了任務(wù)信息、計算作業(yè)的輸入分片、分局集群感知后,將任務(wù)交由JobTracker去執(zhí)行。TaskTracker在接收到分配的任務(wù)之后,會采用對應(yīng)的分類算法對任務(wù)進(jìn)行特征分析,得出分類分析的模型之后就代表整個任務(wù)已經(jīng)執(zhí)行完畢,分類模型是由計算得出的,這一過程使用的是并行計算模式。客戶端在收到任務(wù)已經(jīng)執(zhí)行完畢的信息之后,就會將接收到的分類模型以可視化數(shù)據(jù)的形式展示給用戶。
并行分類算法最常使用的解決方案是決策樹,決策樹是一個分類器,可以對數(shù)據(jù)進(jìn)行劃分。決策樹實(shí)現(xiàn)所有的算法有很多種,這些算法各有各自的優(yōu)勢,所以適用的場景也存在差異,實(shí)際的算法選擇要根據(jù)數(shù)據(jù)挖掘任務(wù)的特征來靈活選用。以SLIO算法為例,SLIO分類器是可以處理連續(xù)和離散特征決策樹,其主要特點(diǎn)是通過預(yù)排序技術(shù)來有效減少計算連續(xù)屬性所帶來的代價,這一過程發(fā)生在樹的構(gòu)建環(huán)節(jié)[3]。
聚類算法具有自我學(xué)習(xí)功能,相當(dāng)于一個無監(jiān)督的環(huán)境中仍然可以實(shí)現(xiàn)自我學(xué)習(xí)。聚類自救的基本原理是尋找一個數(shù)據(jù)集中的特征,并根據(jù)特征將擁有相同特征的數(shù)據(jù)聚集在一起,通過聚類算法將數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行劃分,得到子數(shù)據(jù)集都是具有一定意義的,并且去除了無理化數(shù)據(jù)。子類的數(shù)據(jù)一般都有一種或多種共同特征,甚至是子類的數(shù)據(jù)都是相同、相近的,較為典型的聚類算法有并行K-均值算法和K-最近鄰算法。
K-均值算法被認(rèn)為是非常簡單而有效地統(tǒng)計算法,其基本實(shí)現(xiàn)步驟是選擇一個K值,用以確定簇的總數(shù),總數(shù)確定好之后在中間任一位置選定K個樣本為中心點(diǎn),所有的數(shù)據(jù)計算都是圍繞這些中心點(diǎn)進(jìn)行,除去K個樣本中心點(diǎn)之外,其他樣本數(shù)據(jù)都使用簡單的歐式距離進(jìn)行樣本賦予,直到新的平均值等于上次迭代的平均值時被終止。
K-最近鄰算法是基于類比學(xué)習(xí)的分類算法,在理論上這種方法比較成熟,且執(zhí)行起來的可靠性也比較高,被看作是最簡單的機(jī)器學(xué)習(xí)算法。在數(shù)據(jù)特征空間中,當(dāng)樣本附近的K個樣本滿足某個分類的歸屬關(guān)系,這個樣本就會被認(rèn)為是屬于此分類的。在K-最近鄰算法中,K值的選擇是非常重要的,K值的選擇會直接影響到整個算法的結(jié)果,K值過小和過大都不可以,比如當(dāng)K值過小的時候,就意味著只有非常相鄰的幾個樣本會被納入到結(jié)果計算之中,如果這幾個樣本恰好都不具備某一分類的特征,那么這個樣本就無法被認(rèn)為是屬于這一分類,這顯然會導(dǎo)致計算結(jié)果的不確定性。但是如果當(dāng)K值過大時,整個樣本區(qū)間也會被放大,所以通常會用交叉算法得出一個最優(yōu)解作為K值[4]。
在民用領(lǐng)域中,數(shù)據(jù)挖掘的實(shí)踐意義越來越被看重,不管是在科學(xué)研究領(lǐng)域還是在商業(yè)決策方面,數(shù)據(jù)挖掘技術(shù)都有著不可替代的價值。并行計算與數(shù)據(jù)挖掘結(jié)合而實(shí)現(xiàn)的并行數(shù)據(jù)挖掘技術(shù),不僅能節(jié)約大量的計算時間成本,還能讓數(shù)據(jù)挖掘所能處理的數(shù)據(jù)量級得到提升,具有深遠(yuǎn)的社會意義和經(jīng)濟(jì)意義,本文正是基于數(shù)據(jù)挖掘和并行計算理論的研究,提出了并行分類算法和并行聚類算法,希望能為并行數(shù)據(jù)挖掘技術(shù)提供一定的參考價值。