Матрица кластеризации расстояние между 3 временными рядами - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть вопрос о применении методов кластеризации, более конкретно, K-средних. У меня есть фрейм данных с 3 датчиками (A, B, C):

  time      A  |   B   |  C   |
 8:00:00    6     10      11
 8:30:00    11    17      20
 9:00:00    22    22      15
 9:30:00    20    22      21
10:00:00    17    26      26
10:30:00    16    45      29
11:00:00    19    43      22
11:30:00    20    32      22
   ...      ...  ...     ...   

И я хочу сгруппировать датчики с таким же поведением.

Мой вопрос: глядя на вышеупомянутый кадр данных, я должен вычислить корреляцию каждого объекта кадра данных, а затем применить евклидово расстояние к этой матрице корреляции, получив таким образом матрицу 3 * 3 со значением расстояний?

Или я транспонирую свой фрейм данных, а затем вычисляю матрицу dist () только с евклидовой метрикой, и тогда у меня будет матрица 3 * 3 со значением расстояний.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Q1: Нет. Почему: здесь корреляция не нужна.

Q2: Нет. Почему: я бы рассчитывал расстояния по-разному

Для первой строки, R 'встроенная функция s dist() (которая по умолчанию использует евклидово расстояние)

dist(c(6, 10, 11))

дает вам интервалы между каждым значением

   1 2
------
2| 4  
3| 5 1

Пункты 2 и 3 находятся ближе всего друг к другу. Это просто.

Но нет единого способа вычислить расстояние между точкой и группой точек. Там вам нужна функция связи (мин / макс / средняя /...)

Что бы я сделал, используя встроенную функцию R kmeans():

  • Игнорировать столбец даты,
  • (при условии, что в столбцах A, B, C нет значений NA)
  • масштабируйте данные при необходимости (здесь все они имеют одинаковый порядок величины)
  • выполнить анализ KMeans для столбцов A, B, C, с k = 1 ... n; оценить результаты
  • выполнить окончательный KMeans с подходящим выбором k
  • получить назначения кластера для каждой строки
  • поместите их в новый столбец справа от C
0 голосов
/ 24 сентября 2018

У вас всего три датчика.Это означает, что вам понадобятся три значения, d (AB), d (B, C) и d (AB).Любая «кластеризация» здесь, кажется, не имеет смысла для меня?Конечно, не к-значит.K-означает для очков (!) В R ^ d для малых d.

Выберите любую форму сходства временных рядов, что вам нравится.Может быть просто корреляция, но также DTW и тому подобное.

...