Вы слышали о TICC ?
Это кластеризация многомерных данных временных рядов на основе обратной ковариации.Этот алгоритм может помочь вам использовать измерения сердечного ритма (и многие другие данные) и использовать неконтролируемый метод для определения различных состояний.Этот алгоритм действительно хорош, потому что вы можете указать два критических параметра настройки:
number_of_clusters
: количество ожидаемых состояний в ваших данных.В этом случае у вас есть 8 наблюдаемых состояний.Это сделает настройку алгоритма намного более точной. beta
: штраф за переключение.Вы можете контролировать, насколько легко / сложно алгоритму переключаться из одного состояния в другое.Это может быть просто, если вы хорошо знаете свою проблему или, если нет, подвергаетесь попыткам и ошибкам.
Я рекомендую взглянуть на реализацию TICC в Python.
Вот краткий пример:
fname = "bar_shaul_data.txt"
ticc = TICC(window_size=1, number_of_clusters=8, lambda_parameter=11e-2, beta=600, maxIters=100, threshold=2e-5,
write_out_file=False, prefix_string="output_folder/", num_proc=1)
(cluster_assignment, cluster_MRFs) = ticc.fit(input_file=fname)
print(cluster_assignment)
np.savetxt('Results.txt', cluster_assignment, fmt='%d', delimiter=',')
Дополнительные документы доступны на README .
Отказ от ответственности: Я являюсь участникомбиблиотека.