摘 要: 介紹了物聯(lián)網(wǎng)數(shù)據(jù)處理的若干關(guān)鍵技術(shù),如大數(shù)據(jù)采集、大數(shù)據(jù)存儲(chǔ)、大數(shù)據(jù)的分析與挖掘等。以Hadoop為平臺(tái)對(duì)物聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行挖掘與分析,為了提高處理龐大數(shù)據(jù)的實(shí)效性,基于MapReduce架構(gòu)采用了樸素貝葉斯分類算法、K-modes聚類算法以及ECLAT算法。分析認(rèn)為,應(yīng)用這三類算法,提高了數(shù)據(jù)分類效率,優(yōu)化了類內(nèi)對(duì)象之間的相似性以及類間對(duì)象之間的關(guān)聯(lián)性,為更高效的數(shù)據(jù)挖掘提供了很好的思路。
關(guān)鍵詞: 物聯(lián)網(wǎng); Hadoop; 樸素貝葉斯; K-modes; ECLAT
中圖分類號(hào):TP212.9;TP391.4 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2018)06-29-03
Analysis and application of data mining algorithm for Internet of Things based on Hadoop
Chen Juan
(Guangling College of YangZhou University, Yangzhou, Jiangsu 225127, China)
Abstract: Some key technologies of data processing for Internet of Things are introduced, such as big data acquisition, big data storage, big data analysis and mining. In this paper, the data of Internet of Things is excavated and analyzed on Hadoop platform, In order to improve the effectiveness of large data processing, Naive Bayesian classification algorithm, K-modes clustering algorithm and ECLAT algorithm are adopted in MapReduce framework. The analysis shows that the application of these three kinds of algorithms improves the efficiency of data classification, optimizes the similarity among the objects in the class and the correlation among the objects between classes, and provides a good idea for more efficient data mining.
Key words: Internet of things; Hadoop; Naive Bayesian; K-modes; ECLAT
0 引言
當(dāng)前計(jì)算機(jī)技術(shù)發(fā)展迅速,物聯(lián)網(wǎng)是在計(jì)算機(jī)、互聯(lián)網(wǎng)之后信息產(chǎn)業(yè)發(fā)展的第三次浪潮,它必將成為社會(huì)發(fā)展的重要推力,它能夠?qū)崿F(xiàn)人與人、人與物和物與物之間的溝通與交流。物聯(lián)網(wǎng)的興起也必將再次引發(fā)數(shù)據(jù)的快速增長(zhǎng),對(duì)許多行業(yè)來(lái)說(shuō)既是更嚴(yán)峻的挑戰(zhàn),也是更寶貴的機(jī)遇。物聯(lián)網(wǎng)正在深刻改變著人們的生活習(xí)慣、工作方式。
本文主要采用Hadoop分布式系統(tǒng)架構(gòu)處理物聯(lián)網(wǎng)環(huán)境下的大數(shù)據(jù),Hadoop是一個(gè)分布式計(jì)算平臺(tái),具有高可靠性、高擴(kuò)展性、高效性以及高容錯(cuò)性等優(yōu)點(diǎn)。其主要由三大部分構(gòu)成,HDFS(Hadoop Distributed File System)分布式文件系統(tǒng)、Hadoop MapReduce分布式計(jì)算模型和 HBase 分布式數(shù)據(jù)庫(kù)。
因此,如何更好地應(yīng)用Hadoop計(jì)算平臺(tái)處理好物聯(lián)網(wǎng)大數(shù)據(jù),將是一個(gè)待攻克的難題。本文主要分析如何運(yùn)用Hadoop平臺(tái)處理大數(shù)據(jù)的理論依據(jù),以及物聯(lián)網(wǎng)的應(yīng)用前景。
1 物聯(lián)網(wǎng)概述
物聯(lián)網(wǎng)[1]底層網(wǎng)絡(luò)通過(guò)RFID(Radio Frequency Identification)、WSNs(Wireless Sensor Networks)、無(wú)線局域網(wǎng)等網(wǎng)絡(luò)技術(shù)采集物物交換信息并傳輸?shù)街悄軈R聚網(wǎng)關(guān),通過(guò)智能匯聚網(wǎng)關(guān)接入到網(wǎng)絡(luò)融合體系,最后利用包括廣播電視網(wǎng)、互聯(lián)網(wǎng)、電信網(wǎng)等網(wǎng)絡(luò)途徑使信息到達(dá)終端用戶應(yīng)用系統(tǒng)。作為底層的數(shù)據(jù)感知層次[2],在這個(gè)階段主要感知各種各樣的信息內(nèi)容,例如二維標(biāo)簽、識(shí)別器、攝像頭信息、傳感網(wǎng)絡(luò)等。然后,整理收集到的數(shù)據(jù)通過(guò)傳輸層進(jìn)行傳遞,例如網(wǎng)絡(luò)管理中心、通信網(wǎng)絡(luò)和智能處理等。最后,系統(tǒng)處理傳輸層的數(shù)據(jù),通過(guò)人機(jī)交互解決信息處理和人機(jī)界面的問(wèn)題。
2 Hadoop工作原理
2.1 Hadoop基本架構(gòu)
Hadoop主要是處理大數(shù)據(jù)的開源式平臺(tái),其具有海量存儲(chǔ)、成本低廉、效率高以及牢靠性高等特點(diǎn),因此可以應(yīng)用到物聯(lián)網(wǎng)平臺(tái)的大數(shù)據(jù)處理[3]。Hadoop的兩大主要元件是HDFS和MapReduce。前者的工作主要是存儲(chǔ)海量的數(shù)據(jù),其存儲(chǔ)方式是分布式的;后者主要是計(jì)算處理這些大數(shù)據(jù),其計(jì)算方式也是分布式處理[4]。為了更好的理解這兩個(gè)元件的體系結(jié)構(gòu)及其工作流程,架構(gòu)分析如圖1所示。
圖1 Hadoop體系結(jié)構(gòu)以及工作流程
2.2 HDFS分布式文件系統(tǒng)
HDFS是一個(gè)分布式文件系統(tǒng),其具有高容錯(cuò)性和低廉的成本。HDFS實(shí)現(xiàn)的主要目標(biāo)有以下幾點(diǎn)。①以最快的速度檢查出硬件異常情況并且及時(shí)解決異常。②進(jìn)行批量化處理文件,提高效率節(jié)省時(shí)間,重點(diǎn)強(qiáng)調(diào)數(shù)據(jù)的吞吐量。③支持大數(shù)據(jù)集,不僅可以處理聚集式的高寬帶數(shù)據(jù),而且可以支持成百個(gè)節(jié)點(diǎn)的單個(gè)集群。④其訪問(wèn)模式是“一次輸入,多次讀取”,保證了數(shù)據(jù)訪問(wèn)吞吐量的高效性。⑤HDFS設(shè)計(jì)可實(shí)現(xiàn)不同平臺(tái)間的互相轉(zhuǎn)移,因而促進(jìn)了大數(shù)據(jù)程序平臺(tái)的廣泛應(yīng)用。
HDFS以主從(Master/Slave)結(jié)構(gòu)為主,HDFS集群由一個(gè)NameNode和許多個(gè)DataNode組成。NameNode為主服務(wù)器,主要負(fù)責(zé)管理存儲(chǔ)文件以及訪問(wèn)客戶端操作文件。DataNode主要負(fù)責(zé)管理存儲(chǔ)數(shù)據(jù),也就是存儲(chǔ)小的數(shù)據(jù)塊。
2.3 MapReduce分布式計(jì)算框架
MapReduce的兩大階段主要是Map階段和Reduce階段。Map階段構(gòu)成:①輸入數(shù)據(jù)格式解析(InputFormat);②輸入數(shù)據(jù)處理(Mapper);③數(shù)據(jù)分組(Partitioner)。而Reduce階段構(gòu)成:①數(shù)據(jù)遠(yuǎn)程拷貝;②數(shù)據(jù)按照KEY排序;③數(shù)據(jù)處理(Reduce);④數(shù)據(jù)輸出格式(OutputFormat)。
其工作流程如下。
⑴ 數(shù)據(jù)預(yù)處理:從HDFS數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),分析輸入數(shù)據(jù)格式。
⑵ MAP映射任務(wù):讀取自己所屬的文件分片,將每一條數(shù)據(jù)轉(zhuǎn)換成鍵值對(duì),運(yùn)用MAP函數(shù)得到新的鍵值對(duì)并將其存儲(chǔ)到中間節(jié)點(diǎn)上。
⑶ 定位緩存文件:將上一步得到的鍵值對(duì)的存儲(chǔ)位置信息發(fā)送給Reducer。
⑷ Reduce階段:通過(guò)位置信息讀取文件,將所有數(shù)據(jù)進(jìn)行重新排序并且合并同一KEY值,再通過(guò)Reduce函數(shù)化簡(jiǎn),最后輸出最終結(jié)果值。
3 數(shù)據(jù)挖掘算法分析
MapReduce架構(gòu)具有簡(jiǎn)易性、效率高、靠譜性以及并行的運(yùn)算方式等特點(diǎn),同時(shí)MapReduce架構(gòu)的運(yùn)用廣度也有局限性,不能實(shí)現(xiàn)全部算法的應(yīng)用。因此,最關(guān)鍵的是此算法需滿足可伸縮性的特點(diǎn),這里采用三類算法:分類算法、聚類算法和關(guān)聯(lián)規(guī)則算法,研究改造并且能夠應(yīng)用到MapReduce架構(gòu)中。
3.1 樸素貝葉斯分類算法
樸素貝葉斯分類算法[5](Naive Bayesian classification,NBC),即將所有數(shù)據(jù)進(jìn)行分類,先以一個(gè)特定的點(diǎn)定義好類別,建造一個(gè)分類器,其作用是將待定的數(shù)據(jù)先通過(guò)映射,劃分到確定的類別。簡(jiǎn)言之,首先需構(gòu)建一個(gè)分類器,獲得某個(gè)已知樣本的先驗(yàn)概率的前提,再運(yùn)用貝葉斯公式:
⑴
得出一個(gè)后驗(yàn)概率,最后確定后驗(yàn)概率最大的類是對(duì)象所屬的類。
樸素貝葉斯分類算法采用的是掃描式方式,其算法操作如下:
⑴ Main函數(shù):讀取數(shù)據(jù)集;
⑵ Map函數(shù):計(jì)算離散屬性取值的總和、其連續(xù)屬性的平均值μ以及標(biāo)準(zhǔn)差δ;
⑶ Reduce函數(shù):整合輸出統(tǒng)計(jì)值;
⑷ Main函數(shù):由步驟3的結(jié)果生成分類器。
3.2 K-modes聚類算法
K-modes聚類算法[6],即先將對(duì)象進(jìn)行聚集劃分成不同的類別和子集,通過(guò)靜態(tài)分類的方法將相似的成員對(duì)象分為一類,以區(qū)別于其他簇中的對(duì)象。由于這種方式不需要進(jìn)行人工標(biāo)注處理,因而具有一定的自適應(yīng)性即無(wú)需看管監(jiān)督的算法。
K-modes算法不僅其算法思想容易實(shí)現(xiàn),而且本身簡(jiǎn)單易用,因此成為最常用的聚類算法之一。K-modes算法是K-means算法基礎(chǔ)上的延伸,不僅可以處理數(shù)值型數(shù)值,也可以處理分類屬性型的數(shù)據(jù),這是一個(gè)大的改進(jìn)。K-modes算法可以很好的處理數(shù)量少的數(shù)據(jù)集,同時(shí)也可以高效處理龐大的數(shù)據(jù)集,其算法時(shí)間復(fù)雜度為O(tnkm),共同決定于迭代數(shù)t,數(shù)據(jù)集中對(duì)象數(shù)n,劃分子類數(shù)k,以及屬性數(shù)量m。K-modes算法中modes可直接描述每一個(gè)類的屬性和特性,便于解析聚類結(jié)果。K-modes算法是收斂的。
以上是傳統(tǒng)的K-modes算法的優(yōu)點(diǎn),其也有缺點(diǎn)。K-modes算法雖然是收斂的,但是Huang證明其只能在局限收斂中實(shí)現(xiàn)最小值,在全局收斂中實(shí)現(xiàn)不了。聚類算法的好壞取決于相異度度量方法, K-modes算法在展示兩者的差異性不占優(yōu)勢(shì)。聚類算法中modes決定了結(jié)果的精確度,而此算法的modes不是獨(dú)一無(wú)二的。因此,采用改進(jìn)的K-modes算法。
K-modes聚類算法[7]采用迭代式的方式,其算法操作如下。
⑴ main函數(shù):讀取數(shù)據(jù)集中的初始中心點(diǎn)。
⑵ map函數(shù):主要計(jì)算差異值、眾數(shù)和目標(biāo)函數(shù)值。
⑶ main函數(shù):最后讀取和判斷目標(biāo)函數(shù)值,若連續(xù)兩輪的結(jié)果無(wú)變化,則結(jié)束這次過(guò)程,得出中心點(diǎn),反之需要進(jìn)行下一輪的迭代進(jìn)程。
因此,聚類算法的應(yīng)用能夠?qū)㈩悆?nèi)對(duì)象的相似性達(dá)到最大,類間對(duì)象的相似性盡量的小,從而可以更好的區(qū)分對(duì)象間的差別。
3.3 ECLAT頻繁項(xiàng)集挖掘算法
關(guān)聯(lián)規(guī)則挖掘算法的主要作用是找出不同項(xiàng)集之間的關(guān)聯(lián)性,并且應(yīng)用到大數(shù)據(jù)中。例如,顧客去便利超市買東西,觀察分析顧客的購(gòu)物車,會(huì)發(fā)現(xiàn)商品間的聯(lián)系。因而調(diào)整商品的擺放位置,可以更好的促銷商品。ECLAT算法[8]其本質(zhì)是一種頻繁項(xiàng)集挖掘算法,其異于傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu),是基于垂直數(shù)據(jù)結(jié)構(gòu)格式。其工作流程如下:首先全面掃描所有數(shù)據(jù),然后將數(shù)據(jù)的格式展示為垂直的,最后得到一個(gè)項(xiàng)集的長(zhǎng)度值,即項(xiàng)集支持度的計(jì)數(shù)。依據(jù)算法Apriori的特性,從K=1開始,對(duì)頻繁K項(xiàng)集的交進(jìn)行計(jì)算,構(gòu)建備選的K+1項(xiàng)集并且選出第K+1項(xiàng)時(shí),反復(fù)操作,將K的值加一,當(dāng)不能挖掘出頻繁項(xiàng)集便結(jié)束這個(gè)工作。
ECLAT頻繁項(xiàng)集挖掘算法也是采用迭代式,其算法操作如下。
⑴ Main函數(shù):讀取上一輪的挖掘數(shù)據(jù)。
⑵ Map函數(shù):存儲(chǔ)垂直K項(xiàng)集。
⑶ Reduce函數(shù):對(duì)垂直K項(xiàng)集挖掘出頻繁K項(xiàng)集。
⑷ Main函數(shù):讀取最終的Reduce函數(shù)中的結(jié)果,如果不是空值,繼續(xù)進(jìn)行下一輪挖掘,反之就結(jié)束此程序。
因此,ECLAT算法的最大優(yōu)勢(shì)是更快地找出數(shù)據(jù)間的關(guān)聯(lián)性,為數(shù)據(jù)挖掘提供了很好的解決方法。
4 應(yīng)用前景
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,其能夠廣泛應(yīng)用到各行各業(yè)[9]。例如,農(nóng)業(yè)物聯(lián)網(wǎng)即物聯(lián)網(wǎng)技術(shù)應(yīng)用于農(nóng)業(yè)領(lǐng)域,從農(nóng)業(yè)的生產(chǎn)、經(jīng)營(yíng)、管理到服務(wù)都可以提供支持,通過(guò)農(nóng)業(yè)信息感知設(shè)備,提高農(nóng)業(yè)生產(chǎn)的品質(zhì)與效率。智能交通中,將物聯(lián)網(wǎng)技術(shù)應(yīng)用到交通運(yùn)輸領(lǐng)域,實(shí)現(xiàn)交通運(yùn)輸?shù)闹悄芑?,提高?guó)家的整體實(shí)力和科技水平。城市安全管理是將物聯(lián)網(wǎng)技術(shù)應(yīng)用到公共安全領(lǐng)域。例如城軌站點(diǎn)安全監(jiān)測(cè),人員密集的公共場(chǎng)所安全監(jiān)測(cè),橋梁建筑物安全監(jiān)測(cè),以及特定危險(xiǎn)品的生產(chǎn)場(chǎng)所的安全監(jiān)測(cè)等。同時(shí),物聯(lián)網(wǎng)可以應(yīng)用到石油行業(yè)中,從油氣勘探、鉆井、油田生產(chǎn)到管理運(yùn)輸和煉油化工等方面,物聯(lián)網(wǎng)技術(shù)大大提高了生產(chǎn)和管理效率,從而增強(qiáng)我國(guó)石油行業(yè)的可持續(xù)發(fā)展能力和國(guó)際影響力。
5 結(jié)束語(yǔ)
本文通過(guò)Hadoop平臺(tái)挖掘分析物聯(lián)網(wǎng)數(shù)據(jù),并且將樸素貝葉斯分類算法、K-modes聚類算法以及ECLAT頻繁項(xiàng)集挖掘算法應(yīng)用于MapReduce架構(gòu)。結(jié)果表明,這三類算法的運(yùn)用可以更高效的處理大數(shù)據(jù),從而獲取更有價(jià)值的信息。優(yōu)化物聯(lián)網(wǎng)數(shù)據(jù)挖掘分析方法,進(jìn)而促進(jìn)物聯(lián)網(wǎng)產(chǎn)業(yè)的發(fā)展。物聯(lián)網(wǎng)作為新一代信息技術(shù)的典型代表,不僅滲透到農(nóng)業(yè)生產(chǎn)、智能交通、公共安全、石油產(chǎn)業(yè)等領(lǐng)域,而且對(duì)將來(lái)的經(jīng)濟(jì)發(fā)展和社會(huì)生活都將產(chǎn)生深遠(yuǎn)影響。物聯(lián)網(wǎng)的挖掘分析方法在實(shí)際運(yùn)用中還需要進(jìn)一步探索與研究。
參考文獻(xiàn)(References):
[1] 趙興芝.計(jì)算機(jī)物聯(lián)網(wǎng)技術(shù)發(fā)展及應(yīng)用[J].電子世界,2017.1.
[2] 劉云浩.物聯(lián)網(wǎng)導(dǎo)論[M].科學(xué)出版社,2015.
[3] 陳娟.基于Hadoop網(wǎng)上購(gòu)物系統(tǒng)算法的分析與實(shí)現(xiàn)[D].江
西農(nóng)業(yè)大學(xué)碩士學(xué)位論文,2015.
[4] 任仁.Hadoop在大數(shù)據(jù)處理中的應(yīng)用優(yōu)勢(shì)分析[J].電子技術(shù)
與軟件工程,2014.8.
[5] 衛(wèi)潔,石洪波,冀素琴.基于Hadoop的分布式樸素貝葉斯文
本分類[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012.2.
[6] 孫吉貴,劉杰,趙連宇.聚類算法研究[J].軟件學(xué)報(bào),2008.19
(1):48-61
[7] Gan G,WU J, Yang Z. A genetic fuzzy k-modes algorithm
for clustering categorical data[J]. Expert Systems with Applications,2008.36(2):1615-1620
[8] 張玉芳,熊忠陽(yáng),耿曉斐,陳劍敏.Eclat算法的分析及改進(jìn)[J].
計(jì)算機(jī)工程,2010.23(36).
[9] 侯赟慧,岳中剛.我國(guó)物聯(lián)網(wǎng)產(chǎn)業(yè)未來(lái)發(fā)展路徑探析[J].現(xiàn)代
管理科學(xué),2010.2.