Euclidean distance
Евклидово расстояние ($d_{Euc}$) — это классическая мера схожести, которая вычисляет геометрическое расстояние между двумя векторами в многомерном пространстве.
Для двух векторов $A = (a_1, a_2, …, a_n)$ и $B = (b_1, b_2, …, b_n)$:
$$d_{Euc}(A, B) = \sqrt{\sum_{i=1}^{n} (a_i - b_i)^2}$$
⚠️ Проблемы и ограничения
1️⃣ Чувствительность к масштабу данных
• Если один признак (например, цена) доминирует, то расстояние искажено.
• Решение: нормализация данных (например, MinMax или Z-score).
2️⃣ Проклятие размерности
• В высоких размерностях евклидово расстояние теряет смысл: все точки становятся почти одинаково далеки.
• Решение: использовать косинусное сходство или поиск ближайших соседей (ANN).
3️⃣ Плохо работает с разреженными данными
• Например, вектор предпочтений пользователя (матрица User-Item) содержит много нулей.
• Решение: лучше использовать косинусное сходство или факторизационные модели (SVD, ALS).
🔍 Когда использовать?
✅ Если данные небольшие и имеют хорошую плотность (мало пропущенных значений).
✅ Если вектора уже нормализованы.
✅ Когда важна интуитивная интерпретация (близость в геометрическом смысле).
❌ Когда НЕ использовать?
❌ В высоких размерностях (>50 признаков) → лучше косинусное сходство.
❌ Если данные разреженные (матрица User-Item) → факторизационные модели (SVD, ALS).