ML Vault
All notes

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).