《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于MAP-REDUCE的大數(shù)據(jù)不一致性解決算法
基于MAP-REDUCE的大數(shù)據(jù)不一致性解決算法
2015年微型機(jī)與應(yīng)用第15期
范 令
(中國海洋大學(xué) 信息科學(xué)與工程學(xué)院,,山東 青島 266100)
摘要: 大數(shù)據(jù)時(shí)代悄然而至,數(shù)據(jù)質(zhì)量也引起人們的關(guān)注,。在提高數(shù)據(jù)質(zhì)量方面,,很重要的一部分是解決數(shù)據(jù)不一致性問題。針對(duì)大數(shù)據(jù)情況下的數(shù)據(jù)不一致問題,,本文提出了在MAP-REDUCE框架下的聚類算法,。本文在MAP-REDUCE框架下對(duì)K-MEDOIDS聚類算法進(jìn)行了改進(jìn),增強(qiáng)了算法的適用性和精確性,,并通過仿真實(shí)驗(yàn)驗(yàn)證了在大數(shù)據(jù)環(huán)境下該算法的并行性和有效性,。
Abstract:
Key words :

  摘  要大數(shù)據(jù)時(shí)代悄然而至,數(shù)據(jù)質(zhì)量也引起人們的關(guān)注,。在提高數(shù)據(jù)質(zhì)量方面,,很重要的一部分是解決數(shù)據(jù)不一致性問題,。針對(duì)大數(shù)據(jù)情況下的數(shù)據(jù)不一致問題,本文提出了在MAP-REDUCE框架下的聚類算法,。本文在MAP-REDUCE框架下對(duì)K-MEDOIDS聚類算法進(jìn)行了改進(jìn),,增強(qiáng)了算法的適用性和精確性,并通過仿真實(shí)驗(yàn)驗(yàn)證了在大數(shù)據(jù)環(huán)境下該算法的并行性和有效性,。

  關(guān)鍵詞: 大數(shù)據(jù),;數(shù)據(jù)質(zhì)量;數(shù)據(jù)不一致性,;MAP-REDUCE,;聚類算法

0 引言

  隨著大數(shù)據(jù)時(shí)代的到來,龐大的數(shù)據(jù)被賦予了新的生命,,而數(shù)據(jù)質(zhì)量問題也引起了越來越多的關(guān)注,。數(shù)據(jù)質(zhì)量涉及數(shù)據(jù)的一致性、正確性,、完整性和最小性等多個(gè)方面[1-2],。當(dāng)分布在多個(gè)節(jié)點(diǎn)的數(shù)據(jù)集成時(shí),若提供的數(shù)據(jù)出現(xiàn)重疊,,容易引起數(shù)據(jù)不一致性的問題,。如何從若干個(gè)不一致的數(shù)據(jù)中獲得理想的數(shù)據(jù)答案在數(shù)據(jù)清洗中就顯得至關(guān)重要[3]。

  本文提出了基于MAP-REDUCE的聚類算法解決大數(shù)據(jù)環(huán)境中數(shù)據(jù)不一致性問題,。改進(jìn)了K-MEDOIDS聚類算法,,提高了算法的適用性和精確性。

1 相關(guān)工作

  目前,,解決數(shù)據(jù)不一致性問題的方案很多,,如參考文獻(xiàn)[4]討論了太陽黑子探測(cè)數(shù)據(jù)不一致性問題,并提出了一種加權(quán)匹配技術(shù)減小數(shù)據(jù)的不一致性,。針對(duì)數(shù)據(jù)復(fù)制時(shí)產(chǎn)生的數(shù)據(jù)不一致問題,,參考文獻(xiàn)[5]定義了不同版本數(shù)據(jù)的距離函數(shù),以此消除復(fù)制數(shù)據(jù)時(shí)的不一致性,。參考文獻(xiàn)[2]是通過屬性間的條件依賴(CFD)探測(cè)數(shù)據(jù)間的不一致性進(jìn)而進(jìn)行數(shù)據(jù)修復(fù),。然而,當(dāng)數(shù)據(jù)量急劇增大時(shí),,現(xiàn)有的清洗算法將不再適用,。

  在大數(shù)據(jù)環(huán)境下,數(shù)據(jù)呈現(xiàn)規(guī)模性,、多樣性,、高速性和價(jià)值性等多種特性[6]。聚類算法是研究分類問題的一種統(tǒng)計(jì)分析方法,基于MAP-REDUCE的聚類方法可以有效解決大數(shù)據(jù)環(huán)境中的一些問題,。神經(jīng)網(wǎng)絡(luò)[7],、貝葉斯網(wǎng)絡(luò)[8]等算法也都在MAP-REDUCE框架下實(shí)現(xiàn)了并行化。

  K-MEDOIDS聚類算法介紹如下,。

  算法1:K-MEDOIDS聚類算法

  Initialize:Random k objects in D as medoids

  Associate each object to the closest medoid

  For each medoid m

  For each non-medoid object o

  Get DISi

  Select the new medoid with the lowest distance

  Repeat steps 2 to 6 until there is no change in the medoids

  S$2ZXQEP%E[OHW41IN9K{%E.jpg

  其中,,GetDis(Di,Dj)函數(shù)的功能是獲取對(duì)象Di和Dj之間的距離,。本文主要解決文本型數(shù)據(jù)的不一致性問題,,所以選擇文本的最小編輯距離函數(shù),即Levenshtein距離,。

2 基于MAP-REDUCE的聚類算法

  2.1 基于MAP-REDUCE的K-MEDOIDS算法

  互聯(lián)網(wǎng)的進(jìn)步讓人們足不出戶就可以完成火車票,、汽車票、機(jī)票等的訂購,,享受網(wǎng)上購物的樂趣,,而這一切,也需要通過在各個(gè)網(wǎng)站注冊(cè)并保留個(gè)人身份信息,,包括網(wǎng)上銀行等,,才能完成這一系列操作。假設(shè)將這些網(wǎng)絡(luò)的身份信息匯總到一起,,就有可能出現(xiàn)數(shù)據(jù)不一致情況,,如表1所示,T1~T7共7條含有身份證號(hào)和姓名的數(shù)據(jù)來自5個(gè)不同的網(wǎng)站,,由于某些原因,,如拼寫錯(cuò)誤(T3、T4,、T6),、字段截取(T5)等,,產(chǎn)生了數(shù)據(jù)不一致問題?,F(xiàn)在定義一條數(shù)據(jù)的格式為<KEY,,VALUE>,,如<ID,NAME>,。數(shù)據(jù)集DATA含有n條數(shù)據(jù):{DATA1,,DATA2,…,,DATAn},,即{<KEY1,VALUE1>,<KEY2,,VALUE2>,,…,<KEYn,,VALUEn>},。DATA中的數(shù)據(jù)分布在不同的節(jié)點(diǎn)上,當(dāng)數(shù)據(jù)集成時(shí),,利用MAP-REDUCE框架的MAP過程把具有相同KEY的數(shù)據(jù)分配到同一節(jié)點(diǎn)上,,就得到了具有相同KEY值的數(shù)據(jù)<KEY,List<VALUE>>,,如表2和表3所示,。

003.jpg

  當(dāng)發(fā)現(xiàn)List<VALUE>中的數(shù)據(jù)不同時(shí)(表2、表3),,就出現(xiàn)了數(shù)據(jù)不一致情況,。若想在List<VALUE>中找到比較理想的數(shù)據(jù),可以采用K-MEDOIDS聚類算法,。

  把K-MEDOIDS聚類算法應(yīng)用到MAP-REDUCE框架下,,算法如下。

  算法2:基于MAP-REDUCE的K-MEDOIDS算法

 ?。?)Input:DATA

 ?。?)Map(DATA)MAPDATA={<KEY1,List<VALUE1>,,<KEY2,,List<VALUE2>,…}

 ?。?)For each MAPDATA <KEY,,List<VALUE>

  (4)Get medoids by using K-MEDOIDS algorithm

 ?。?)Get the max-count medoid

 ?。?)Output:<KEY1,VALUE1>,,<KEY2,,VALUE2>,…,,<KEYm,,VALUEm>

  首先,通過MAP操作把數(shù)據(jù)集具有相同KEY值的VALUE聚集在一起,。然后,,通過K-MEDOIDS算法把List<VALUE>中的數(shù)據(jù)分為K個(gè)類,有效排除數(shù)量少但誤差過大的數(shù)據(jù),對(duì)于數(shù)量較多且誤差較小的數(shù)據(jù),,取其對(duì)象最多的分類的中心點(diǎn)作為理想數(shù)據(jù),。

  2.2 更加適用的E-MEDOIDS聚類算法

  算法2中,首先設(shè)定分類個(gè)數(shù)為K,,然后取隨機(jī)值作為K個(gè)分類的中心點(diǎn),。但在具體應(yīng)用中,不容易確定K的具體取值,。針對(duì)此情況,,對(duì)K-MEDOIDS進(jìn)行了初步的改進(jìn),提出了初始誤差值E,,以改進(jìn)聚類初始化時(shí)的中心點(diǎn)分布,。

  算法3:基于MAP-REDUCE的E-MEDOIDS聚類算法

  (1)Input:DATA{DATA1,,DATA2,,…,DATAn}

 ?。?)Map(DATA)MAPDATA={<KEY1,,List<VALUE1>,<KEY2,,List<VALUE2>,,…}

  (3)For each MAPDATA<KEY,,List<VALUE>

 ?。?)M1=VALUE1

  (2)For each non-medoid object o

 ?。?)If GetDis(o,,medoids)>E,M.Add(o)

 ?。?)Associate each object to the closest medoid

 ?。?)For each medoid m

  (6)For each non-medoid object Di

 ?。?)Get DISi

 ?。?)If DISi=min(DIS)

  (9)m=Di

 ?。?0)Repeat steps 11 to 16 until there is no change in the medoids

 ?。?1)Get the max-count medoid

 ?。?2)Output:<KEY1,,VALUE1>,<KEY2,VALUE2>,,…,,<KEYm,VALUEm>

  算法3與算法2的不同之處在于(8)~(10)行:首先選取List<VALUE>的第一個(gè)值作為第一個(gè)分類的中心點(diǎn)(M1),。然后遍歷余下的對(duì)象,,若此對(duì)象與所有分類的中心點(diǎn)距離均大于初始誤差值E,則把此對(duì)象作為新類的中心點(diǎn)添加到Medoids中,。算法3用若干分散的對(duì)象作為分類的中心點(diǎn)代替算法2中的隨機(jī)對(duì)象,,目的是讓中心點(diǎn)分布得更加離散,聚類的速度也有所提高,。而且用E代替K更適用于本領(lǐng)域,,同時(shí)還可以通過對(duì)初始誤差值E的設(shè)定控制每個(gè)分類的范圍。

  2.3 具有權(quán)重值的EW-MEDOIDS聚類算法

  算法3中,,把所有節(jié)點(diǎn)的數(shù)據(jù)視作等價(jià)的,,沒有權(quán)重大小的區(qū)別。然而現(xiàn)實(shí)生活中并非如此,。例如,,政府網(wǎng)站提供的數(shù)據(jù)往往比其他的網(wǎng)站具有更高的可信度。因此,,在所有節(jié)點(diǎn)上加上權(quán)重值,,以此表明此節(jié)點(diǎn)數(shù)據(jù)的可信度。通過權(quán)重值的設(shè)置,,可以調(diào)整分類中心點(diǎn)的偏移,,使得結(jié)果更加精確,如表4所示,。

004.jpg

  算法4:基于MAP-REDUCE的EW-MEDOIDS聚類算法

 ?。?)Input:DATA

  (2)Map(DATA)MAPDATA={<KEY1,,List<VALUE1>,,<KEY2,List<VALUE2>,,…}

 ?。?)For each MAPDATA<KEY,List<VALUE>

 ?。?)M1=VALUE1

 ?。?)For each non-medoid object o

  (6)If GetDis(o,,medoids)>E

 ?。?)M.Add(o)

 ?。?)Associate each object to the closest medoid

  (9)For each medoid m

 ?。?0)For each non-medoid object Di

 ?。?1)Get DISi with weight

  (12)If DISi=min(DIS)

 ?。?3)m=Di

 ?。?4)Repeat steps 11 to 16 until there is no change in the medoids

  (15)Get the max-count medoid

 ?。?6)Output:<KEY1,,VALUE1>,<KEY2,,VALUE2>,,…,<KEYm,,VALUEm>

  數(shù)據(jù)集D={D1,,D2,…Dn}來自若干個(gè)不同節(jié)點(diǎn),。通過評(píng)價(jià)節(jié)點(diǎn)的可信度,,人工設(shè)定節(jié)點(diǎn)的權(quán)重值分別為(W1,W2,,…,,Wn)。這樣數(shù)據(jù)集D可以表示為{<D1,,W1>,,<D2,W2>,,…,,<Dn,Wn>},。算法3和算法2的不同之處在于(13)行,,即更新中心點(diǎn)時(shí),權(quán)重值屬性參與了計(jì)算,。

  W`N94GPVGIF`ET6W}%A95WV.jpg

3 仿真實(shí)驗(yàn)

  為了評(píng)估本文提出的算法的效率,、并行程度,搭建了HADOOP平臺(tái)進(jìn)行實(shí)驗(yàn),。實(shí)驗(yàn)的編程語言采用Java語言,,在HADOOP平臺(tái)上實(shí)現(xiàn)算法1、算法2和算法3,。實(shí)驗(yàn)平臺(tái)包含6個(gè)節(jié)點(diǎn),,每個(gè)節(jié)點(diǎn)安裝有UBUNTU 14.10操作系統(tǒng),、HADOOP 2.4.0平臺(tái),具有AMD 3.10 GHz雙核處理器和4 GB內(nèi)存,。

  本實(shí)驗(yàn)數(shù)據(jù)要求文本型數(shù)據(jù),而且其中部分?jǐn)?shù)據(jù)呈現(xiàn)錯(cuò)亂現(xiàn)象,,因此采用人工生成的測(cè)試數(shù)據(jù)集,。具有權(quán)重值的EW-MODOIDS算法是在E-MEDOIDS算法的基礎(chǔ)上加上節(jié)點(diǎn)的權(quán)重值控制中心點(diǎn)的偏移,因此只要權(quán)重值的設(shè)定符合實(shí)際情況,,EW-MEDOIDS算法的精確性就大于無權(quán)重干預(yù)的K-MEDOIDS算法和E-MEDOIDS算法,,無需實(shí)驗(yàn)驗(yàn)證。

  3.1 單節(jié)點(diǎn)數(shù)據(jù)規(guī)模對(duì)運(yùn)行時(shí)間的影響

  為了評(píng)估算法的運(yùn)行效率,,生成100~1 000條不一致的數(shù)據(jù)分別用K-MEDOIDS算法和E-MEDOIDS算法(EW-MEDOIDS算法和E-MEDOIDS算法效率相當(dāng))在單一節(jié)點(diǎn)實(shí)現(xiàn),。在生成單節(jié)點(diǎn)實(shí)驗(yàn)數(shù)據(jù)時(shí),首先設(shè)置固定詞條作為正確答案,,然后按一定比例隨機(jī)挑選數(shù)據(jù)條目進(jìn)行增加,、刪除、修改,、調(diào)換順序等操作,,每組實(shí)驗(yàn)數(shù)據(jù)均取十次相同重復(fù)實(shí)驗(yàn)結(jié)果的平均值。

001.jpg

  E-MEDOIDS算法中參數(shù)E的引入不僅提高了聚類算法的適用性,,而且從圖1可以看出,,E-MEDOIDS算法的運(yùn)行效率比K-MEDOIDS算法有一定的提高,。

  3.2 參數(shù)E對(duì)算法的影響

002.jpg

  分別采用400,、500、600條目的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),,每次實(shí)驗(yàn)更改參數(shù)E的大小,,然后收集程序的運(yùn)行時(shí)間。圖2表明E-MEDOIDS參數(shù)E對(duì)算法的運(yùn)行效率整體影響不大,,但是當(dāng)參數(shù)E取得某一恰當(dāng)值(約等于固定詞條的長度)時(shí),,程序運(yùn)行時(shí)間取得最小值。因此,,正確設(shè)置參數(shù)E,,可以提高算法的效率。

  3.3 HADOOP平臺(tái)上數(shù)據(jù)集規(guī)模對(duì)算法的影響

  為了驗(yàn)證在大數(shù)據(jù)環(huán)境下算法的并行性,,在HADOOP平臺(tái)上使用大小不等的10組數(shù)據(jù)進(jìn)行實(shí)驗(yàn),。實(shí)驗(yàn)數(shù)據(jù)集由不同數(shù)量的單節(jié)點(diǎn)實(shí)驗(yàn)數(shù)據(jù)組成,生成的實(shí)驗(yàn)數(shù)據(jù)文件大小從20 MB~200 MB不等,。HADOOP實(shí)驗(yàn)平臺(tái)運(yùn)行20個(gè)MAP-REDUCE任務(wù),,實(shí)驗(yàn)結(jié)果如圖3所示,。

  由圖3可以看出,隨著數(shù)據(jù)量增加,,HADOOP任務(wù)運(yùn)行時(shí)間也平緩增加,。當(dāng)數(shù)據(jù)量較小時(shí),算法運(yùn)行時(shí)間增長較快,;當(dāng)數(shù)據(jù)量較大時(shí),,運(yùn)行時(shí)間增長比較緩慢。這是因?yàn)楫?dāng)數(shù)據(jù)量較大時(shí)才能發(fā)揮HADOOP平臺(tái)下算法并行運(yùn)算的優(yōu)勢(shì),,因此算法具有良好的并行性,。所以本文提出的基于MAP-REDUCE的聚類算法可以有效解決大數(shù)據(jù)環(huán)境下數(shù)據(jù)不一致性問題。

4 結(jié)束語

  大數(shù)據(jù)環(huán)境中,,提高數(shù)據(jù)質(zhì)量也將成為數(shù)據(jù)價(jià)值再創(chuàng)造的關(guān)鍵之一,。當(dāng)分布在不同節(jié)點(diǎn)上的數(shù)據(jù)集成時(shí),很容易引起數(shù)據(jù)不一致問題,,嚴(yán)重影響數(shù)據(jù)質(zhì)量,。本文提出了基于MAP-REDUCE的聚類算法解決大數(shù)據(jù)環(huán)境下的數(shù)據(jù)不一致問題。通過改進(jìn)K-MEDOIDS算法提出E-MEDOIDS算法,,使聚類算法在處理數(shù)據(jù)不一致問題上適用性更強(qiáng),。又提出了EW-MEDOIDS算法,引入節(jié)點(diǎn)的權(quán)重值對(duì)聚類算法進(jìn)行干預(yù),,進(jìn)一步提高聚類算法的精確性,。而算法采用MAP-REDUCE框架實(shí)現(xiàn),有效增強(qiáng)了聚類算法的并行性,,可高效解決大數(shù)據(jù)環(huán)境下的數(shù)據(jù)不一致問題,。

  目前,EW-MEDOIDS算法的權(quán)重值是通過人工設(shè)定的,。當(dāng)數(shù)據(jù)節(jié)點(diǎn)量很大時(shí),,人工設(shè)置的方法將不適用。未來可以在自動(dòng)設(shè)置權(quán)重值方面開展工作,,盡量減少不必要的人工操作,。

參考文獻(xiàn)

  [1] AEBI D, PERROCHON L. Towards improving data quality[C]. CiSMOD,, 1993: 273-281.

  [2] FAN W,, GEERTS F. Foundations of data quality management[J]. Synthesis Lectures on Data Management, 2012,,4(5):1-217.

  [3] RAHM E,, DO H H. Data cleaning: problems and current approaches[J]. IEEE Data Eng. Bull., 2000,,23(4):3-13.

  [4] SHAHAMATNIA E,, DOROTOVI I,, MORA A, et al. Data inconsistency in sunspot detection[C]. Intelligent Systems′ 2014,, Springer International Publishing,, 2015:567-577.

  [5] DANILOWICZ C, NGUYEN N T. Consensus methods for solving inconsistency of replicated data in distributed systems[J]. Distributed and Parallel Databases,, 2003,,14(1): 53-69.

  [6] 孟小峰,慈祥.大數(shù)據(jù)管理:概念,,技術(shù)與挑戰(zhàn)[J].計(jì)算機(jī)研究與發(fā)展,,2013,,50(1):146-169.

  [7] KUMAR V V,, DINESH K. Job scheduling using fuzzy neural network algorithm in cloud environment[J]. Bonfring International Journal of Man Machine Interface, 2012,,2(1):1-6.

  [8] TEWARI N C,, KODUVELY H M, GUHA S,, et al. MapReduce implementation of variational bayesian probabilistic matrix factorization algorithm[C]. Big Data,, 2013 IEEE International Conference on. IEEE, 2013:145-152.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。