Алгоритм поиска блоков трендов

Допустим, у меня есть 24 строки данных, так что каждая строка представляет час в день. Чего я хочу добиться, так это реализовать алгоритм, который может обнаруживать тренды в данных и делить их на 2 блока - "хороший" блок и "плохой" блок. например, на прикрепленном изображении вы можете видеть, что в строке 6 хороший блок начинается и заканчивается в строке 19. строка 0 также имеет хороший счет, но она не является частью блока, поэтому алгоритм должен знать, как справиться с этой ситуацией. Я думаю, что это кластеризация, но я не смог найти что-то достаточно простое, соответствующее нашим потребностям. Ждем любых советов.

1 ответ

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
Другие вопросы по тегам