Как стать автором
Обновить

Комментарии 9

>Евклидово расстояние — наиболее распространенное расстояние. Оно является геометрическим расстоянием в многомерном пространстве и вычисляется следующим образом:
>
> Квадрат евклидова расстояния.

Так каким образом вычисляется евклидово расстояние?
Как корень квадратный из суммы разностей координат объекта, возведенных в квадрат.

Расстояние Евклида
Я к тому что подправьте пост, а то как-то странно выглядит.
Подправил, спасибо.
Как-то не сложилось у меня с K-Means ибо:
* Зачастую долго сходится
* При каждом запуске выдаёт разные результаты. Спасает только испоьзование K-Means++
* Но самой большой проблемой всё равно остаётся то, что далеко не всегда знаешь нужное колво кластеров на которое нужно разделить объекты, по хорошему она на то и кластеризация, что на входе ты поучаешь просто набор векторов в N-мерном пространстве, не зная на сколько групп их делить.

Именно поэтому, в основном использую Minimal Spaning Tree, Single-/Averenge-/Complete- Link или Генетические алгоритмы. Последние люблю за то, что они прекрасно паралелятся, хоть и тоже долго сходятся. У "-Link" семейства алгоритмов бонус в простоте расчётов (особенно у Single-Link) и возможности следить за RMSE на каждом шаге алгоритма, выбирая оптимальное количество кластеров.
А как вычисляются расстояния при кластеризации по не числовым признакам? Например при кластеризации физ. лиц. клиентов банка может возникнуть задача кластеризации по признакам пол, образование, семейное положение, занимаемая на работе должность, сфера деятельности компании-работодателя ну и так далее? Понятно, что можно заменить показатели целочисленными величинами, интересен вопрос о том, какими по величине и как упорядоченными :)
В таких случаях, действительно, необходимо использовать целочисленные величины. А вот ответственность за выбор размерности лежит на исследователе. Главное требование — чтобы все характеристики имели одинаковый масштаб. Т.е. координаты в пространстве (x,y,z) имеют одинаковый масштаб, а вот мужчина (1) и $100 (2) — разные. Таким образом, необходимо иметь дополнительные данные о характере объектов и уже по этим данным переводить пол, возраст и т.д. в числовые эквиваленты.
ну для примера в моей задаче я решил, что доход до 500$=1; от 500 до 1000 — 2; от 1000 и выше = 3, мальчики =1; девочки =2. Все показатели целочисленные и имеют одинаковый масштаб. Если я буду рассчитывать расстояние между двумя «фактами» как геометрическое расстояние, то ведь результат будет зависеть от того, как я выбрал целочисленные показатели. Возможно для решения каких-то моих практических задач будет правильнее выбрать для величин, характеризующих доход не числа 1,2,3, а к примеру 1,2,4. Так?
>я решил, что доход до 500$=1; от 500 до 1000 — 2; от 1000 и выше = 3
это уже классификация

>Возможно для решения каких-то моих практических задач будет правильнее
>выбрать величин, характеризующих доход не числа 1,2,3, а к примеру 1,2,4.

Вообще, я например все значения нормализую. Например, представим рельсы у них длина много больше ширины, поэтому рельсы отличающиеся на 5% по длине и на 1200% по ширине окажутся в одном кластере. Поэтому я значения всех измерений нормализую (если это возможно, то есть данные не потоковые) и самой короткой длине выдаю значение 0, самой длинной, например, 100, все остальные длины будут в промежутке от 0 до 100, так же поступаю с остальными измерениями. Все значения после этого становятся нормализованными.

>А как вычисляются расстояния при кластеризации по не числовым признакам?
Когда измерение дискретно и возможно заранее получить все возможные значения измерения (как например пол), то конечно можно заменять значения заранее просчитанными нормализованными значениями, дабы прибавить производительности алгоритму. Но стандартной практикой является использование Расстояния Левенштейна
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории