時間翹曲編輯距離(TWED)是一種具有時間"彈性"的離散時間序列匹配的相似性(或不相似性)的測量。與其他距離測量方法相比,(如DTW(動態時間扭曲)或LCS(最長共同子序列問題)),TWED是一個度量。它的計算時間復雜度是,但在某些特定情況下,通過使用走廊來減少搜索空間,可以大幅減少。其內存空間復雜度可以降低到.它是由P.-F.Marteau在2009年首次提出的。Marteau首次提出。{displaystyledelta_{lambda,nu}}初始化為{displaystylea'_{0}=b'_{0}=0}實現TWED算法的C語言實現和Python包裝器可在以下網站找到TWED也在時間序列后續搜索Python包(簡稱TSSEARCH)中實現,見[1]。TWED的R實現已被整合到TraMineR中,TraMineR是一個用于挖掘、描述和可視化狀態或事件序列的R包,以及更普遍的離散序列數據。此外,cuTWED是一個CUDA加速實現的TWED,它使用了G.Wright(2020)的改進算法。cuTWED是用CUDAC/C++編寫的,帶有Python綁定,還包括Marteau的參考C實現的Python綁定。Python導入numpy作為npdefdlp(A,B,p=2):cost=np.sum(np.power(np.abs(A-B),p))returnnp.power(cost,1/p)deftwed(A,timeSA,B,timeSB,nu,_lambda):#
[distance,DP]=TWED(A,timeSA,B,timeSB,lambda,nu)#計算給定時間序列A和B的時間扭曲編輯距離(TWED)#A:=時間序列A(例如:[102304])#timeSA:=時間序列A的時間戳(例如:1:4)g.1:4)#B:=時間序列B#timeSB:=時間序列B的時間戳#lambda:=刪除操作的懲罰#nu:=彈性參數-距離測量需要nu>=0#參考文獻:#Marteau,P.;F.(2009)."時間序列匹配的剛度調整的時間扭曲編輯距離"。#IEEE模式分析和機器智能的交易。31(2):306-318.arXiv:cs/0703033#http://people.irisa.fr/Pierre-Francois.Marteau/
#檢查是否輸入參數
編輯如果len(A)!=len(timeSA):print("A的長度不等于timeSA的長度")returnNone,None如果len(B)!=len(timeSB):print("B的長度不等于timeSB的長度")返回None,None#初始化DP矩陣,將xxx行和xxx列設置為無窮大DP[0,:]=np.infDP[:,0]=np.infDP[0,0]=0#計算r中i的最小成本
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/163635/