Теория

Расстояния и близость объектов

Metric_PointDistance
<h2>Как алгоритм понимает похожесть</h2> <p>Алгоритм не работает с человеческими описаниями напрямую. Для него объект обычно является вектором признаков: набором чисел. Например, клиента можно представить как <code>[средний чек, покупок в месяц]</code>, а документ — как набор численных характеристик текста.</p> <p>Чтобы решить, какие объекты похожи, нужно выбрать меру близости. Чаще всего используют расстояние: чем оно меньше, тем ближе объекты в пространстве признаков.</p> <h2>Объект как вектор признаков</h2> <p>Если у объекта есть \(m\) численных признаков, его можно записать как вектор:</p> <p>$$x = (f_1(x), f_2(x), \ldots, f_m(x)).$$</p> <p>Например, для клиента это может быть \((\text{средний чек}, \text{покупок в месяц}, \text{дней с последней покупки})\). После такого представления объект становится точкой в пространстве признаков.</p> <h2>Евклидово расстояние</h2> <p>Евклидово расстояние — это обычное расстояние по прямой. Для двух точек \(A(x_1, y_1)\) и \(B(x_2, y_2)\) оно вычисляется так:</p> <p>$$d(A,B)=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}$$</p> <p>В многомерном случае формула расширяется на все признаки:</p> <p>$$d(x,y)=\sqrt{\sum_{j=1}^{m}(x_j-y_j)^2}$$</p> <p>Здесь \(m\) — количество признаков, а \(x_j\) и \(y_j\) — значения j-го признака у двух объектов.</p> <h2>Матрица расстояний</h2> <p>Иногда удобно не смотреть на координаты напрямую, а построить таблицу попарных расстояний между объектами. Такая таблица показывает, какие пары объектов близки, а какие далеки. На этой идее строятся многие методы: от простых правил ближайшего соседа до иерархической кластеризации.</p> <p>Для маленькой выборки из трех объектов матрица расстояний может выглядеть так:</p> <table> <thead> <tr><th></th><th>\(x_1\)</th><th>\(x_2\)</th><th>\(x_3\)</th></tr> </thead> <tbody> <tr><th>\(x_1\)</th><td>0</td><td>2.1</td><td>8.4</td></tr> <tr><th>\(x_2\)</th><td>2.1</td><td>0</td><td>7.9</td></tr> <tr><th>\(x_3\)</th><td>8.4</td><td>7.9</td><td>0</td></tr> </tbody> </table> <p>По такой таблице видно, что \(x_1\) и \(x_2\) ближе друг к другу, чем к \(x_3\).</p> <h2>Что важно помнить</h2> <ul> <li>Расстояние отражает только те признаки, которые попали в данные.</li> <li>Близость зависит от выбранной метрики.</li> <li>Если признаки имеют разные масштабы, расстояние может стать искаженным.</li> <li>Малое расстояние не всегда означает полезную похожесть для конкретной бизнес-задачи.</li> </ul> <h2>Практический вывод</h2> <p>Перед кластеризацией нужно не просто выбрать алгоритм, а ответить на вопрос: "что значит быть похожими в этой задаче?" Если ответ не сформулирован, результат может быть математически корректным, но практически бесполезным.</p>