В машинном обучении мы можем реализовать кластеризацию. Кластеризация - это способ группировать похожие элементы.
Для этого нам нужно сравнить предметы между собой.
Различные типы данных для сравнения
Например, чтобы сравнить 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 впервые был использован для распознавания сходства в речевом голосе. Но в машинном обучении может быть полезно вычислить расстояние между двумя временными рядами. Таким образом, мы можем, например, правильно сгруппировать их в кластеры.
Мы можем вычислить сходство в машинном обучении, используя несколько других способов, например расстояние танимото или манхэттенское расстояние.