2017-08-01 128 views
0

我有一個具有開/關數據的二進制時間序列數據集。這通常是短暫的,因此看起來像一個高峯。這是它的外觀。用於檢測時間序列信號數據中峯值簇的算法

enter image description here

我已檢測到的峯和所述峯之間提取的時間間隔和有數據爲它太(在底部小紅色2WAY箭頭)。問題是,正如我們可以看到的那樣,峯值是聚類的,而且我想要對脈衝羣大小(羣集中的峯值數量),交織間隔(第一個羣集的最後一個峯值與第一個峯值之間的距離)進行量化最後一個集羣),沒有。爆炸等。

一旦識別出集羣,這一切都很容易。這可以通過將interpeak間隔設置爲大於某個值來輕鬆完成。但是,我的所有數據都沒有這樣明確定義的羣集,而且這些羣體的間隔時間差異很大。一些數據集甚至沒有集羣。所以我的主要問題是基於一些自動和相對(不固定)閾值來識別羣集。

有人可以幫助我一個相同的算法。

+0

做你的功課,並閱讀例如核密度估計,甚至檢測等。嘗試形式化你的羣集概念。 –

回答

0

你的問題的答案是:不。沒有人可以(但)用你想要的算法來幫助你。

問題是你沒有很好的量化。當您無法確定羣集是什麼時,您需要一種可以識別羣集的可靠算法。

我寫了一個以前的答案,建議你看看從一個峯值到下一個值的比率。如果這個比率高於某個閾值,那麼它是一個集羣間的差距,否則它是一個集羣內的差距。這可以工作,但它仍然有一個門檻。

問題是 - 你需要一個。你不能只注視每個圖表,並說「哦,有一個羣集。」如果您未定義羣集,則無法識別羣集。有辦法讓你的門檻更通用。該比率是讓您避免縮放問題的更簡單方法之一,並且通常是有效的。你可以看看滾動平均值。有各種各樣的方式來處理你的數據,但是在那裏的某個地方,你必須定義你想要的。即使你訓練了一些人工智能,你最好應該用一個固定的標準去做什麼是羣集,哪些不是。一旦你有了固定的標準,你就不需要人工智能。

因此,定義一個集羣。一旦你可以量化羣集對你意味着什麼,你可以爲它做一個算法。

開始通過回答這些問題:

  • 多少峯至少需要定義一個集羣?
  • 峯值之間有最小或最大時間使其不是一個羣集?相對於整個數據集時間的最短時間或最長時間如何?
  • 羣集之間是否有最小距離,使其成爲兩個而不是一個?

如果有幫助,看看這些簡化的情節,以幫助你拿出你的答案。你能爲每一個定義一個羣集嗎?

..||.|.|.|.|| 

|.|.|.|.|.|.| 

||..||..||..| 

||....||....| 

|...||||..... 
+0

嘿!我的意思是我不想要一個門檻。我只是希望閾值由算法本身設置(也是相對和動態的),而不是手動設置的,因爲數據集中存在很多變化。無論如何,你以前的答案引導我思考..如果我可以繪製interpeak時間差的直方圖。會有一個缺口,可以通過某些算法來識別,如thos圖像閾值...可用於自動化閾值也許.. – Polisetty