В машинном обучении мы можем реализовать кластеризацию. Кластеризация - это способ группировать похожие элементы.

Для этого нам нужно сравнить предметы между собой.

Различные типы данных для сравнения

Например, чтобы сравнить 2 цены (100 и 200), мы можем провести вычитание. 200 - 100 = 100.

Расстояние между двумя ценами - 100.

Вычисление расстояния может быть менее тривиальным.

Предположим, у нас есть данные о бриллиантах. У нас есть их цены, день для каждой цены и бренд, который продает бриллиант. Мы хотели бы знать, какая марка дешевая, средняя или дорогая.

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

Например, diamondsForEver, воображаемый бренд продает бриллиант в течение недели. Цена следующая:

  • Понедельник: 102
  • Вторник: 150
  • Среда: 120
  • Четверг: 108
  • Пятница: 110
  • Суббота: 109
  • Воскресенье: 135

Другой бренд под названием coolDiamonds продает тот же бриллиант следующим образом:

  • Понедельник: 116
  • Вторник: 143
  • Среда: 110
  • Четверг: 118
  • Пятница: 101
  • Суббота: 122
  • Воскресенье: 138

Здесь сложнее сравнивать цены на две марки.

Мы сталкиваемся с двумя временными рядами.

Хорошая новость заключается в том, что есть способ определить расстояние между временными рядами: динамическое искажение времени.

С помощью Dynamic Time Warping мы можем получить меру подобия с учетом ускорений и замедлений. Затем мы могли бы сравнить множество веб-сайтов между ними, чтобы узнать, какие из них ближе других.

Динамическое искажение времени (DTW)

Я собираюсь вычислить это за три дня, чтобы получить более простой пример.

Для его расчета построим матрицу.

Мы инициализировали матрицу с помощью «Infinite», чтобы сигнализировать об отсутствии значения.

Для каждой ячейки формула представляет собой расстояние между (x -y) + наименьшей из соседних ячеек.

Например, мы хотим вычислить B3. A3, A4 и B4 - соседние клетки.

Чтобы вычислить B3, мы собираемся сделать разницу между 102 и 116, что составляет 14.

Соседние ячейки для B3 - это A3, A4 и B4:

Таким образом, результат для B3: 14 + ничего = 14.

Чтобы вычислить B2, мы делаем разницу между 150 и 116, что составляет 34. Соседние ячейки для B2 - это A2, A3 и B3:

Самая маленькая из этих ячеек - 14. Таким образом, результат 34 + 14 = 48.

Мы продолжаем.

Теперь, чтобы вычислить C2, мы делаем разницу между 143 и 150, то есть 7. Берем наименьшую из соседних ячеек:

Наименьшее значение 14. Итак, результат 7 + 14 = 21.

Продолжаем и возвращаем последнее значение 31 (D1).

У нас есть способ вычислить расстояние между нашими ценностями.

Обратите внимание, что расстояние между x и y может быть разницей между ними. Это может быть что-то еще, например вычитание в квадрате | x -y | ².

Вывод

DTW впервые был использован для распознавания сходства в речевом голосе. Но в машинном обучении может быть полезно вычислить расстояние между двумя временными рядами. Таким образом, мы можем, например, правильно сгруппировать их в кластеры.

Мы можем вычислить сходство в машинном обучении, используя несколько других способов, например расстояние танимото или манхэттенское расстояние.