国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MR框架的不確定時(shí)間序列相似性計(jì)算方法

2018-10-15 05:58李成為鄭迪威
關(guān)鍵詞:細(xì)粒度相似性復(fù)雜度

李成為,王 嶼,鄭迪威

(南京航空航天大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211106)

0 引 言

不確定時(shí)間序列(uncertain time series)是按照時(shí)間戳先后順序排列的記錄值的序列,在每個(gè)時(shí)間戳的序列值都是未知的或者不可預(yù)料的。不確定時(shí)間序列數(shù)據(jù)廣泛應(yīng)用于定位服務(wù)[1]、醫(yī)療數(shù)據(jù)分析[2]、時(shí)序數(shù)據(jù)庫(kù)[3]、無(wú)線傳感器網(wǎng)絡(luò)[4]等等。不確定性的產(chǎn)生是由于數(shù)據(jù)采集和環(huán)境方面的誤差[5]、使用了預(yù)測(cè)技術(shù)[6-7],以及對(duì)于測(cè)量屬性的多次讀取數(shù)據(jù)[8]等因素。

在不確定時(shí)間序列數(shù)據(jù)處理的諸多任務(wù)和問(wèn)題中,不確定時(shí)間序列相似性計(jì)算是其很重要的一個(gè)部分[9]。對(duì)于不確定時(shí)間序列相似性計(jì)算方法,主要從兩個(gè)方向進(jìn)行研究:一個(gè)是參考最初為確定性時(shí)間序列數(shù)據(jù)提出的相似性計(jì)算算法來(lái)進(jìn)行改造[10-11];一個(gè)是根據(jù)不確定時(shí)間序列的特性,融合傳統(tǒng)的確定性時(shí)間序列相似性算法思想,提出專(zhuān)門(mén)適用于不確定時(shí)間序列的相似性算法[6-7,12-14]。文中主要對(duì)第二個(gè)方向進(jìn)行研究。

在傳統(tǒng)的確定性時(shí)間序列相似性計(jì)算方法中,DTW由于不要求兩個(gè)序列等長(zhǎng),并且兩個(gè)序列求差值的點(diǎn)可以一對(duì)多或多對(duì)一,廣泛用于計(jì)算各種情況的時(shí)間序列相似性。文獻(xiàn)[8]針對(duì)經(jīng)典DTW算法具有較高計(jì)算時(shí)間和空間損耗的問(wèn)題,提出解決流檢測(cè)問(wèn)題的ShortestDTW算法;文獻(xiàn)[14]通過(guò)多次在一些超平面上的投影來(lái)組織序列,提出了FastDTW算法,但該算法需要預(yù)先知道不同對(duì)象之間的距離,屬于一種粗獷的過(guò)濾方式,會(huì)帶來(lái)許多不相似的噪音;文獻(xiàn)[15]基于DTW原理提出了TD算法,對(duì)時(shí)間跨度較大且體現(xiàn)一個(gè)連續(xù)、完整過(guò)程的時(shí)間序列數(shù)和時(shí)間跨度較小、體現(xiàn)狀態(tài)點(diǎn)的時(shí)間序列數(shù)據(jù)具有一定的計(jì)算效果;文獻(xiàn)[16]提出一種將特征提取和降維進(jìn)行融合的PLA-SDTW算法,可解決高維時(shí)間復(fù)雜度的問(wèn)題。

針對(duì)時(shí)間序列數(shù)據(jù)具有較大數(shù)據(jù)量的特點(diǎn)[17],近年來(lái)已有研究工作嘗試使用MapReduce計(jì)算框架[18]計(jì)算時(shí)間序列的相似性。文中基于傳統(tǒng)DTW算法,通過(guò)融入MR計(jì)算框架,提出一種不確定時(shí)間序列的相似性計(jì)算算法。該算法在不確定時(shí)間序列計(jì)算規(guī)模大時(shí),并行計(jì)算每個(gè)子矩陣的動(dòng)態(tài)時(shí)間規(guī)整距離,在獲得與原DTW同等的匹配效果的同時(shí),可使計(jì)算時(shí)間復(fù)雜度大為縮小。

1 基礎(chǔ)知識(shí)

1.1 時(shí)間序列相似性計(jì)算

給定一個(gè)收集好的時(shí)間序列C={S1,S2,…,SN},其中N表示時(shí)間序列的數(shù)量,查詢(xún)函數(shù)定義為:RQ(Q,C,ε)={S|S∈C|distance(Q,S)≤ε},其中ε是使用者提供的距離閾值。

(1)DTW距離。

給定兩個(gè)時(shí)間序列Q和C,它們的長(zhǎng)度分別為n和m,將這兩個(gè)時(shí)間序列記為:Q=,C=。它們之間的DTW距離的遞歸定義為:

其中,φ表示空時(shí)間序列;First(Q)表示時(shí)間序列Q的第一個(gè)元素;Rest(Q)表示時(shí)間序列Q除第一個(gè)元素外其他元素組成的子序列;dist2(x,y)為兩點(diǎn)x和y的距離,通常采用歐氏距離進(jìn)行計(jì)算。DTW的計(jì)算復(fù)雜度為O(nm),計(jì)算代價(jià)較高,所以有研究人員對(duì)距離進(jìn)行了變形處理。

(2)FastDTW距離。

先將兩個(gè)時(shí)間序列粗粒度化,在遞歸到最底層后尋找最短DTW路徑,然后每次細(xì)粒度擴(kuò)展r個(gè)單位(r為半徑),即將路徑及其周?chē)狞c(diǎn)逐步細(xì)粒度化,并再次尋找最短DTW路徑,最終求出原始序列間的DTW距離。

FastDTW的細(xì)粒度化計(jì)算過(guò)程如圖1所示。

圖1 FastDTW的細(xì)粒度化計(jì)算過(guò)程

第一幅圖表示在遞歸最底層階段執(zhí)行DTW算法。第二幅圖表示在遞歸返回階段,將第一幅圖求得的路徑經(jīng)過(guò)的方格進(jìn)行細(xì)分,并且向左右,上下,以及左上右下的斜對(duì)角方向擴(kuò)展r個(gè)單位,重新執(zhí)行DTW算法得到的新路徑。以此類(lèi)推,直到最后求得最終的路徑。

1.2 不確定時(shí)間序列及其期望距離

不確定時(shí)間序列的每個(gè)元素x都可以表示為x=r(x)+ε(x),其中r(x)表示該元素的真實(shí)值,ε(x)表示該元素的誤差,是服從某一連續(xù)型分布函數(shù)或某離散型分布的隨機(jī)變量。不確定時(shí)間序列T定義為一系列隨機(jī)值的集合T=,其中ti是在時(shí)間戳i對(duì)實(shí)數(shù)值的隨機(jī)變量建模。

期望距離[19]可以用來(lái)計(jì)算兩個(gè)不確定時(shí)間序列數(shù)據(jù)之間的距離,該算法是用所有可能出現(xiàn)的計(jì)算結(jié)果的均值加上誤差值來(lái)代表這兩個(gè)不確定時(shí)間序列之間的距離。期望距離的具體定義如下:兩個(gè)時(shí)間序列X,Y(其中至少有一個(gè)是不確定時(shí)間序列)的概率分布為f(x)、f(y),則它們的期望距離為:

其中,pointsdis(x,y)可以用‖x-y‖2表示,即x2+y2-2|xy|,可以推導(dǎo)出:

上述公式即表明了期望距離可以用時(shí)間序列中各個(gè)時(shí)間點(diǎn)之間的距離的期望和方差來(lái)表示,由此可以大大減少不確定時(shí)間序列之間點(diǎn)與點(diǎn)之間距離的計(jì)算量。

2 MR-FastDTW算法

FastDTW算法通過(guò)粗細(xì)粒度化的變化,在計(jì)算路徑時(shí),首先計(jì)算遞歸最底層的路徑,并在返回階段,圍繞著上一階段得出的路徑拓展相應(yīng)范圍的計(jì)算矩陣,減少DTW暴力求解所造成的無(wú)用計(jì)算帶來(lái)的損耗。

算法1描述了FastDTW的計(jì)算過(guò)程:

算法1:FastDTW算法

Input:長(zhǎng)度分別為|X|和|Y|的兩段時(shí)間序列X和Y;

閾值Radius//最粗分辨率的最小值

Output:時(shí)間序列X和Y之間的最小DTW距離;X與Y之間的規(guī)整路徑

1.Integer minTSsize=radius+2

2.IF(|X|≤minTSsize OR |Y|≤minTSsize)

3.RETURN DTW(X,Y)

4.ELSE

5.TimeSeries shrunkX=X.reduceByHalf()

6.TimeSeries shrunkY=Y.reduceByHalf()

7.WarpPath lowResPath=FastDTW(shrunkX, shrunkY,radius)

8.SearchWindow window=Exp[andeResWindow(lowResPath,X,Y,radius)]

9.RETURN DTW(X,Y,window)

針對(duì)FastDTW計(jì)算方法在遞歸返回階段執(zhí)行到一定程度后,文中采用MR計(jì)算框架簡(jiǎn)化相似性計(jì)算,提出了MR-FastDTW算法,以提升運(yùn)行速度。

對(duì)于一個(gè)給定的不確定時(shí)間序列,在FastDTW算法執(zhí)到第1步和第12步時(shí),MR-FastDTW算法采用了期望距離來(lái)執(zhí)行不確定性數(shù)據(jù)的相似性計(jì)算。在執(zhí)行MR計(jì)算框架時(shí),對(duì)于遞歸到一定程度后即第12步,對(duì)矩陣進(jìn)行分塊處理,分塊好的矩陣進(jìn)行Map處理,產(chǎn)生相應(yīng)的值對(duì),然后用Reduce對(duì)這些生成的鍵值對(duì)進(jìn)行處理,執(zhí)行遞歸細(xì)粒度化,并在新的搜索矩陣上面執(zhí)行上述步驟,以此重復(fù),得到最后的結(jié)果。該算法的詳細(xì)步驟如下:

1.輸入采集到的序列A、待檢測(cè)的確定時(shí)間序列B。

2:執(zhí)行FastDTW算法,DTW計(jì)算過(guò)程使用期望距離來(lái)計(jì)算。當(dāng)粗粒度進(jìn)行到第n(n>3)次細(xì)粒度化時(shí),把細(xì)粒度化好的矩陣放入MR計(jì)算框架中執(zhí)行計(jì)算。

3:執(zhí)行MR計(jì)算。

(1)由于DTW的計(jì)算矩陣是n*m矩陣,將序列X劃分為長(zhǎng)度分別為[m/p]的p個(gè)子序列X0,X1,…,Xp-1,將序列Y劃分為長(zhǎng)度分別為[n/q]的q個(gè)子序列Y0,Y1,…,Yq-1。于是就構(gòu)造了p*q個(gè)子矩陣Mf*g,f[1,p],g[1,q]。每個(gè)子矩陣的規(guī)模為[m*n]/[p*q]。

(2)每個(gè)子矩陣求的路徑作為key值,編號(hào)作為value值進(jìn)行排序。

(3)排序過(guò)后的值傳入Reduce部分,進(jìn)行路徑匯總篩選,并規(guī)約在一起得出總的動(dòng)態(tài)規(guī)約路徑。

算法2描述了MR-DTW的計(jì)算過(guò)程:

算法2:MR-DTW算法

Input:時(shí)間序列X,Y,規(guī)約窗口window,p,q

Output:MR-DTW(X,Y,window)//需要加上window參數(shù)

1.INTEGERn/q,m/p

2.DTW(n2,m2)

3.MAP://MAP階段

4.E((1,2,…,n/q),m/p)→HDFS //D1*1最后一行的值

5.E(n/q,(1,2,…,m/p))→HDFS→HDFS//D1*1最后一列

6.HDFS[E((1,2,…,n/q),m/p)]→Matrix((n/q,n/q+1,…,n/q*2),m/p)

7.D(n/q*2,m/p)

8.//讀取HDFS中的D1*1最后一行,存入D2*1的第0行

9.HDFS[E(n/q,(1,2,…,m/p))]→Matrix(n/q,(m/p,m/p+1,…,m/p*2))

10.D(n/q*2,m/p*2)

11.//讀取HDFS中的D1*1最后一列 ,存入D1*2的第0列

12.E(n/q,(m/p,m/p+1,…,m/p*2))→HDFS

13.E((n/q,n/q+1,…,n/q*2),m/p)→HDFS

14.//將第D1*2的最后一列和D1*2的最后一行存到HDFS

15.//…并行計(jì)算子矩陣,中間重復(fù)步驟

16.HDFS[E((n*(q-2)/q,n*(q-2)/q+1,n(q-1)/q),m)]→Matrix((n(q-1)/q,n(q-1)/q+1,…,n),m)

17.HDFS[E(n,(m*(p-2)/p,m*(p-2)/p+1,…,m(p-1)/p))]→Matrix(n,(m*(p-1)/p,m*(p-1)/p+1,…,m))

18.D(n,m)

19.//獲取子矩陣D(f-1)*g的最后一行以及矩陣Df*(g-1)的最后一列,存入到Df*g的第0行第0列,計(jì)算Df*g

20. SORT: //SORT階段

21.Sort(D(n/q,m/p),…,D(n,m))//對(duì)p*q個(gè)矩陣的值排序

22.REDUCE://REDUCE階段

23.Combime(key) according to the sort result

24.//根據(jù)sort結(jié)果,篩選鏈接每個(gè)小矩陣的值

25.Return DTW(n,m)

把MP-DTW算法與FastDTW算法相結(jié)合,得到了基于MR計(jì)算框架的MR-FastDTW算法。算法3描述了MR-FastDTW的計(jì)算過(guò)程:

算法3:MR-FastDTW算法

Input:長(zhǎng)度分別為|X|和|Y|的兩段不確定時(shí)間序列X和Y,F(xiàn)astDTW擴(kuò)展半徑r,起始執(zhí)行并行算法閾值num

Output:MR-FastDTW動(dòng)態(tài)彎曲矩陣距離

1.Integer minTSsize=radius+2

2.IF(|X|≤minTSsize OR |Y|≤minTSsize)

3.RETURN DTW(X,Y)

4.ELSE

5.TimeSeries shrunkX=X.reduceByHalf()

6.TimeSeries shrunkY=Y.reduceByHalf()

7.WarpPath lowResPath=FastDTW(shrunkX,shrunkY,radius)

8.SearchWindow window=Exp[andeResWindow(lowResPath,X,Y,radius)]

9.IF NUM

10.RETURN DTW(X,Y,window)

11.ELSE

12.RETURN MR-DTW(X,Y,window)

3 實(shí)驗(yàn)驗(yàn)證

3.1 測(cè)試數(shù)據(jù)集的選擇

從UCR數(shù)據(jù)集中隨機(jī)抽取8組數(shù)據(jù)作為實(shí)驗(yàn)測(cè)試數(shù)據(jù)集。8組數(shù)據(jù)的具體構(gòu)成見(jiàn)表1。

表1 由UCR數(shù)據(jù)集構(gòu)建的不確定時(shí)間序列

3.2 算法精確度和復(fù)雜度的比較

實(shí)驗(yàn)采用4臺(tái)計(jì)算機(jī)通過(guò)路由器組建Hadoop集群,每臺(tái)計(jì)算機(jī)的內(nèi)存為4 GB,處理器為Intel i5-6500,操作系統(tǒng)為Win7。一臺(tái)作為主節(jié)點(diǎn),三臺(tái)作為數(shù)據(jù)節(jié)點(diǎn)。使用表1中的數(shù)據(jù)集人工合成不確定時(shí)間序列,對(duì)MR-FastDTW算法與傳統(tǒng)的DTW算法和FastDTW算法進(jìn)行比較。

(1)精確度對(duì)比。

精確度是對(duì)比不同算法之間準(zhǔn)確性的標(biāo)準(zhǔn),即不同算法檢測(cè)的結(jié)果與實(shí)際不確定時(shí)間序列的結(jié)果相比較的準(zhǔn)確程度。由于不確定數(shù)據(jù)存在誤差,所以對(duì)每組實(shí)驗(yàn)數(shù)據(jù)測(cè)十次,并取均值。再用不同的算法單次讀取該數(shù)據(jù),并與均值進(jìn)行比較。DTW算法未對(duì)數(shù)據(jù)進(jìn)行任何限制處理,所以得到的結(jié)果精確度最高;FastDTW算法采用了粒度化的方法對(duì)數(shù)據(jù)集進(jìn)行了限制處理,精確度略有下降,但仍有較高的準(zhǔn)確度;MR-FastDTW算法的精確度與FastDTW算法的精確度基本一致,也表現(xiàn)出較高的準(zhǔn)確度。精確度比較如圖2所示。

圖2 相似性算法的精確度比較

(2)時(shí)間復(fù)雜度對(duì)比。

時(shí)間復(fù)雜度主要是不同算法執(zhí)行同組數(shù)據(jù)所消耗的時(shí)間。時(shí)間復(fù)雜度的比較如圖3所示。

圖3 相似性算法的時(shí)間復(fù)雜度比較

從圖3可以看出,當(dāng)數(shù)據(jù)量很小時(shí),三種算法沒(méi)有太大的差異。當(dāng)參與計(jì)算的數(shù)據(jù)量逐步增加時(shí),DTW算法其時(shí)間消耗隨數(shù)據(jù)規(guī)模的增大開(kāi)始非線性增長(zhǎng),F(xiàn)astDTW算法和MR-FastDTW算法的時(shí)間消耗表現(xiàn)平穩(wěn)。當(dāng)數(shù)據(jù)量規(guī)模超過(guò)900時(shí),DTW算法時(shí)間消耗會(huì)急劇增長(zhǎng),F(xiàn)astDTW算法由于是串行計(jì)算,時(shí)間消耗有所增大,而MR-FastDTW算法由于是并行處理,時(shí)間消耗最小。

4 結(jié)束語(yǔ)

提出了基于MR計(jì)算框架的MR-FastDTW算法,解決了FastDTW在遞歸返回段執(zhí)行到一定程度后計(jì)算量大的問(wèn)題,在提高計(jì)算速度的同時(shí),提高了計(jì)算準(zhǔn)確性。

需要指出的是,目前MR-FastDTW算法在執(zhí)行過(guò)程中需要使用閾值,它控制著遞歸返回段進(jìn)行到何種程度時(shí)再進(jìn)行MapReduce計(jì)算,因此閾值是MR-FastDTW算法實(shí)現(xiàn)的一個(gè)關(guān)鍵點(diǎn)。但是,閾值的取值目前還沒(méi)有一個(gè)嚴(yán)格的范圍標(biāo)準(zhǔn),當(dāng)前只是大概取程序在遞歸返回階段執(zhí)行到三分之一時(shí)刻的值,這只是經(jīng)驗(yàn)值,缺乏嚴(yán)格的論證和理論依據(jù)。此外,該算法在執(zhí)行矩陣拆分以及合并計(jì)算值時(shí),操作還稍顯繁瑣。所有這些都將是未來(lái)工作中需要改進(jìn)的地方。

猜你喜歡
細(xì)粒度相似性復(fù)雜度
一類(lèi)長(zhǎng)度為2p2 的二元序列的2-Adic 復(fù)雜度研究*
毫米波MIMO系統(tǒng)中一種低復(fù)雜度的混合波束成形算法
淺析當(dāng)代中西方繪畫(huà)的相似性
基于SVM多分類(lèi)的超分辨圖像細(xì)粒度分類(lèi)方法
Kerr-AdS黑洞的復(fù)雜度
非線性電動(dòng)力學(xué)黑洞的復(fù)雜度
基于型號(hào)裝備?角色的IETM訪問(wèn)控制研究
基于web粒度可配的編輯鎖設(shè)計(jì)
12個(gè)毫無(wú)違和感的奇妙動(dòng)物組合
基于文本挖掘的微博文本情緒分析技術(shù)研究
高州市| 林周县| 盖州市| 辽源市| 建瓯市| 沙河市| 仁布县| 芜湖市| 农安县| 炎陵县| 镇巴县| 乳源| 开封县| 沂源县| 肥东县| 泰州市| 渝北区| 甘孜县| 阳春市| 扶绥县| 仁寿县| 寻乌县| 泌阳县| 繁峙县| 阿拉尔市| 抚宁县| 苗栗县| 张家界市| 赣榆县| 绥化市| 邛崃市| 桓仁| 哈尔滨市| 清镇市| 宝清县| 兴业县| 承德县| 新疆| 普兰店市| 秦安县| 涿州市|