當前位置:吉日网官网 - 傳統文化 - 論文閱讀_時序聚類K-Shape

論文閱讀_時序聚類K-Shape

這是壹篇發表於2015年SIGMODE數據管理國際頂會的論文,它主要針對時序數據的聚類問題,提出了K-Shape方法。與以往的方法相比,它優化了距離計算方法,質心計算方法,還引入了提取頻域特征方法,以提升效率。

作者認為它是壹種獨立於領域、高精度、高效率的時間序列聚類方法。

我覺得相對於傳統方法,它聚類效果更好;相對於DTW類方法,效果稍差,但速度快很多。畢竟從原理來看,K-Shape只考慮了縱向拉伸和橫向平移,而DTW還考慮了橫向拉伸。

K-Shape原理和K-means相似,不同在於它改進了距離計算方法,並優化了質心計算方法。壹方面支持振幅縮放和平移不變性,另壹方面計算效率也比較高,並且不用手動設置參數,便於擴展到更多領域。

距離算法用於計算兩組時序數據的差異,其中的核心問題是如何處理時序數據的形變,論文中的圖-1 展示的心電圖數據被分為A/B兩類:

其中A類的特點是:上升->下降->上升,而B類的特點是:下降->上升。圖-1 的右下圖展示了理想的建模效果,它識別到了相同的模式,而忽略了幅度和相位的差異。人們也更傾向使用這種方法計算距離,很多時候甚至認為距離計算方法比聚類方法更加重要。壹般來說,支持振幅縮放和平移不變性的方法,計算成本較高,難以對大數據量建模。

K-Shape之前的主流距離算法如下:

K-Shape用互相關方法計算兩個時間序列的距離。假設有X和Y兩個時間序列,序列長度均為m。為實現平移不變性,Y不變,壹步壹步劃動X,並計算每壹步X與Y的差異。

如上圖所示:假設綠色區域為Y,白色區域為劃動的X,每壹行s(step)向前劃動壹步,序列長度為m=4,s∈(-3,3)***7種取值,w是所有移動的可能性2m-1=7次,w-m=s=k,也就是下面公式中的對齊位置(對齊邏輯貫穿整個算法)。

定義互相關系數CC:

利用R來計算x和y在每壹步的相似度,在對的上(在X,Y中都存在)的位置計算點積,最終R是有效區域的點積之和(對每個對上的小塊加和)。可以說,R越大兩個序列越相似。

由於對比的每個子序列振幅不同,塊數也不同,所以在對比時需要進行歸壹化,歸壹化方法有三種, 第三種使用了互相關方法,效果最好。

歸壹化效果如下圖所示:

其中圖(a)使用z-normalization只做了對振幅的歸壹化,沒有平移,可見在上述情況下,不平移(正對上)時對齊效果最好。從(b)(c)(d)可以看到:(d)圖使用第三種方法,在最中間的點上相似度值最大(s=0時),即正對上的時候,其相似度最大,這與(a)呈現出的效果壹致。而(b)(c)都認為最相似的情況出現在右側,這明顯不太對。

文中定義了基於形態的距離SBD(Shape-based distance),塊重疊越多形狀越像CC越大,對比所有可能位置的相似度值,取最相似的max(CC),然後用1-max(CC)得到SBD,也就是說形狀越相似,距離SBD越小,歸壹化後的NCC值在[-1,1]之間,因此,SBD值在[0,2]之間。

可以看到,用以上方法時間在序列較長時復雜度比較高,當序列較長時,計算量也會很大,為解決這壹問題,作者提出使用傅裏葉變換將序列由時域轉到頻域再比較,以節約計算量。

定義了距離之後,還需要根據距離邏輯來調整質心算法。

從圖-4 可以看到:時序數據的質心也是壹條時序變化線,圖中的藍色線使用均值方法(計算每個點的均值)來計算質心;由於錯位,波峰和波谷被拉成了直線,因此不能正確地表達形狀趨勢。

K-Shape使用基於SBD的方式計算質心。

該公式的目標是尋找μk*,使質心μk與該簇Pk中各條序列xi的相似度NCC最大。

算法壹:先使用SBD() 函數計算dist和y',dist是時序x,y之間的距離,y'是y中與x最匹配的子段。使用這種方法解決了波峰波谷對不齊,以致相互抵消的問題。

然後用基於線性代數方法,將公式13展開成公式15:

最終可利用瑞利商公式加以簡化:

瑞利商R(M,x)的壹個重要的性質是:R的最大值等於矩陣M最大的特征值,最小值等於矩陣M最小的特征值。此時,就不用太考慮R(M,x)中的x(即本問題中的uk)。公式13被簡化成以下算法:

算法二:ShapeExtraction()根據簇的當前質心C和簇內的所有點X,計算更合理的質心C'。

line2: 遍歷簇內所有的點X(i)

line3: 計算各點與質心的距離dist以及其中與質心最為相似的片斷x'

line4: 將最為相似的片斷加入X'

line5: X'轉置與X相乘生成壹個方陣(X的平方)

line6: 創建用於正則化的矩陣Q

line7: 正則化後生成矩陣M

line8: 取矩陣M對應最大特征值時的特征向量,以實現對X'的特征抽取

(以上說明為個人理解,不壹定對,僅供參考)

最終的聚類方法通過叠代實現,每次叠代分為兩步:第壹步重新計算質心,第二步根據每個序列與新質心的距離將它們重新分配到不同的簇中;壹直循環叠代到標簽不再變化為止。

算法三:聚類的完整過程由 k-Shape() 實現:

其中X是所有序列,k是簇的個數,IDX是標簽。

line3: 在標簽穩定前&叠代次數不超過100次的條件下,不斷叠代

line4-10:根據簇中的元素重新計算每個簇的質心C

line11-line17:計算每個序列與各個質心的距離,並將它分配到新的簇中(重新打標簽)。

K-Shape算法每次叠代所需時間為:

O(max{n·k·m·log(m), n·m^2, k·m^3})

其中n是實例個數,k是簇個數,m是序列長度。可見,該算法大部分的計算代價依賴於時間序列的長度m。然而,這個長度通常比時間序列的數目小得多,因此,對m的依賴不是瓶頸。在m非常大的極少數情況下,可以使用分段或降維方法來有效地減小序列的長度。

圖-5對比了K-Shape、ED和DTW模型效果,可以看到絕大多數情況下,SBD好於ED,部分情況下SBD好於DTW。但SBD比DTW好在它速度更快。

  • 上一篇:西方文化中為什麽認為“西方女就是傻白甜”的代表?
  • 下一篇:客戶關系管理(CRM)與傳統市場營銷的區別?(CRM系統在企業的客戶關系管理中可以起到哪些作用)
  • copyright 2024吉日网官网