Алгоритм ОПТИКА (упорядочение) указывает, что в наборе данных есть только один кластер - каковы возможные причины? - PullRequest
0 голосов
/ 18 февраля 2020

Фон:

Я хотел бы объединить некоторые шаблоны. Один упрощенный шаблон определяется следующим образом:

public class Pattern {

    private String id;
    private double[] values;
   private LocalDate localDate;
}

Каждое значение в массиве значений представляет количество попаданий, которые были обнаружены датчиком в течение 5-минутного интервала. Например, values[0]=7 означает, что за 5-минутный интервал времени между 0: 00-0: 05 утра конкретный датчик c обнаружил 7 попаданий; values[1]=2 означает, что датчик заметил 2 попадания между 0:05 и 0:10 и так далее. Полный паттерн (Pattern) состоит из 288 значений (288 * 5 минут = 1 день).

У меня есть много таких паттернов, и, как уже упоминалось выше, я хотел бы сгруппировать их. Я не знаю точное количество кластеров, поэтому я решил использовать алгоритм OPTICS, чтобы найти, сколько кластеров там.

Я использую следующие параметры:

  1. Расстояние мера - евклидово расстояние,
  2. MinPts - 10,
  3. Эпсилон - Бесконечность.

Задача:

Заказ Я получаю из OPTICS указание, что в наборе данных есть только один кластер, тогда как, когда я запускаю k-средних с k = 5, я получаю некоторые результаты, которые заставляют меня думать, что действительно есть некоторые кластеры (минимум 2) в набор данных.

Вот график достижимости, который я получил: reachability plot

А вот несколько кластеров из k-средних: one of the clusters from k-means

enter image description here

Вопросы :

В чем причина такого поведения ОПТИКИ? Является ли OPTICS хорошим выбором для этого варианта использования? Количество очков слишком велико? Евклидово расстояние не лучший вариант здесь? Параметры неверны?

Дополнительные замечания:

Моя реализация, кажется, в порядке. Я запустил OPTICS для гораздо меньших наборов данных, и это дало разумные результаты. Я запустил его для 15 2d точек с 2 естественными кластерами, и я смог извлечь два кластера из порядка. Я также запускаю его в течение 15 Pattern с, но с размером массива значений = 5, а не 288, и это тоже было нормально.

...