0
假設我有24行數據,每行代表一天中的一小時。我想實現的是實現一種能夠檢測數據趨勢的算法,並可將其分爲2個塊 - 「好」塊和「壞」塊。例如,在附圖中,你可以看到在第6行有一個好的塊開始並在第19行結束。第0行也有很好的分數,但它不是塊的一部分,所以算法應該知道如何處理這種情況。 我認爲這是關於聚類,但找不到足夠簡單的東西來滿足我們的需求。 期待任何建議。算法查找趨勢塊
假設我有24行數據,每行代表一天中的一小時。我想實現的是實現一種能夠檢測數據趨勢的算法,並可將其分爲2個塊 - 「好」塊和「壞」塊。例如,在附圖中,你可以看到在第6行有一個好的塊開始並在第19行結束。第0行也有很好的分數,但它不是塊的一部分,所以算法應該知道如何處理這種情況。 我認爲這是關於聚類,但找不到足夠簡單的東西來滿足我們的需求。 期待任何建議。算法查找趨勢塊
start = -1
Append a below-threshold value to the end of the data array x[]
For i from 1 to n:
If x[i] >= thresholdValue:
if start == -1:
start = i
Else:
If start != -1 and i - start >= thresholdLength:
ReportGoodBlock(start, i-1)
start = -1
一個 「好」 塊的定義似乎是主觀的。如果你能以某種方式指定它,那將是一件好事。你會說這樣的話:「在90%的樣本中絕大多數(不包括開始/結束)的X的持續值? – purpletentacle
是不是很簡單的閾值和分析連接組件? –
@NicoSchertler:是的,但是」while值> =閾值)「線性掃描足以找到這些」組件「,並且您可以簡單地檢查每個實時的長度並在必要時報告它。 –