У меня есть временные данные частот активности. Я хочу идентифицировать кластеры в данных, которые указывают различные периоды времени с подобными уровнями активности. В идеале я хочу идентифицировать кластеры без указания количества кластеров априори.
Каковы подходящие методы кластеризации? Если в моем вопросе недостаточно информации, чтобы ответить, какую информацию мне нужно предоставить для определения подходящих методов кластеризации?
Ниже приведена иллюстрация типа данных / кластеризации, которые я себе представляю:
machine-learning
clustering
histelheim
источник
источник
Ответы:
Из моего собственного исследования, кажется , что Gaussian Hidden марковские модели могут быть хорошо подходит: http://scikit-learn.org/stable/auto_examples/plot_hmm_stock_analysis.html#example-plot-hmm-stock-analysis-py
Это определенно, кажется, находит отличные эпизоды деятельности.
источник
Ваша проблема звучит похоже на ту, на которую я смотрю, и на этот вопрос, который похож, но менее объяснен.
Их ответ ссылается на хорошее резюме по обнаружению изменений. Для поиска возможных решений быстрый поиск в Google нашел пакет анализа точек изменения в коде Google. R также имеет несколько инструментов для этого.
bcp
Пакет довольно мощный и очень проста в использовании. Если вы хотите сделать это на лету, когда поступают данные, в документе «Обнаружение точек изменения в режиме онлайн и оценка параметров с применением к геномным данным» описан действительно сложный подход, хотя и следует помнить, что он немного сложен. Есть такжеstrucchange
пакет, но это сработало менее хорошо для меня.источник
Вейвлеты могут помочь вам определить периоды с различными свойствами. Однако я не уверен, существуют ли методы, которые делят ваши временные ряды на отдельные периоды для вас. И кажется, что есть много теории, чтобы пройтись, что я только в начале. Я с нетерпением жду чтения других предложений ..
Бесплатный вводный раздел книги о вейвлетах.
Пакет R для тестирования значимости с помощью вейвлетов.
источник
Вы видели эту страницу: Страница классификации временных рядов UCR ?
Там вы можете найти и наборы данных для практических занятий, и опубликованные результаты - для сравнения производительности вашей собственной реализации (есть ссылка на известную производительность хорошо известных методов машинного обучения). Кроме того, на этой странице приводится критическая масса статей, из которых вы можете продолжить исследования, чтобы найти наилучший подход, который соответствует вашей проблеме, данным или потребностям.
Кроме того, есть другой способ сделать это (потенциально) путем применения sequitur http: // sequitur.info. Если вы сможете хорошо нормализовать / аппроксимировать свои данные, это даст вашей грамматике те «разные периоды времени с одинаковыми уровнями активности», посмотрите эту статью и найдите другую, потому что я не могу добавить больше ссылок ...
источник
Я думаю, что вы можете использовать Dynamic Time Wrapping для поиска сходства между различными временными рядами. Для этого вам, возможно, потребуется дискретизировать ваш вейвлет в коллекции, например, в массив. Но детализация была бы проблемой, и если у вас есть большое количество временных рядов, стоимость вычислений будет довольно большой для расчета расстояния DTM для каждой их пары. Таким образом, вам может понадобиться предварительный выбор для работы в качестве меток.
Проверьте это . Я также работаю над некоторыми задачами, такими как ваша, и эта страница мне помогла.
источник