2
大多數聚類算法需要距離矩陣。如果數據維度較低,則創建距離矩陣很容易。但是,考慮大約8000點的時間系列呢?聚類時間序列龐大數據集的方法
for i in range(total_series):
for j in range(total_series):
dis[i][j] = distance(series[i],series[j])
很明顯,創建此矩陣所需的最短時間爲O(n^2)。現在,如果我們比較兩個時間序列的所有8000個點,時間複雜度將會非常高。我只是在談論對齊距離(歐幾里得)而不是一些編輯距離。
由於我們有大約50,000個時間序列進行聚類,O(n^2)對於那些for循環來說將會非常高。我需要通過一些索引或預處理技術在最短時間內計算距離函數。請注意,距離函數將逐點比較。
有人可以提出一些技巧,以便我們可以通過一些預處理找到兩個時間序列之間的距離小於O(時間序列的長度)?或者建議一些方法進行聚類而不創建時間複雜度爲O(n^2)的距離矩陣?