pastvu icon indicating copy to clipboard operation
pastvu copied to clipboard

K-means в алгоритме кластеризации

Open klimashkin opened this issue 12 years ago • 5 comments

Сейчас кластеризация строится классическим способом - карта разбивается на сетку кластеров, с заведением соответствующей таблицы. У этого способа хорошо прогнозируемая скорость работы, но не идеальное качество результата.

В идеале надо на лету строить кластеры с помощью математических алгоритмов, например, K-means. Такие способы дают лучший результат, но надо будет проверить скорость их работы, так как считают они на лету для каждого запроса.

Ссылки: https://groups.google.com/forum/?fromgroups=#!topic/mongodb-user/ZU4fTlWjJfE http://horicky.blogspot.ru/2011/04/k-means-clustering-in-map-reduce.html http://stackoverflow.com/questions/14305402/geospatial-clustering-mongodb

klimashkin avatar Jan 15 '13 09:01 klimashkin

я правильно понимаю, что прогнозировать какую нагрузку на сервер сгенерирует более умный алгоритм кластеризации спрогнозировать невозможно? если бы у нас не было шкалы времени можно было бы кластеры заранее заготовить для всех уровне зума и обновлять их не очень часто (хоть раз в час), но со шкалой времени это становится невозможно. думаю что нужно оставить старый алгоритм, а эксперемнтировать с более продвинутыми уже после запуска под реальной нагрузкой

Jan 15, 2013, в 1:56 PM, klimashkin [email protected] написал(а):

Сейчас кластеризация строится классическим способом - карта разбивается на сетку кластеров, с заведением соответствующей таблицы. У этого способа хорошо прогнозируемая скорость работы, но не идеальное качество результата.

В идеале надо на лету строить кластеры с помощью математических алгоритмов, например, K-means. Такие способы дают лучший результат, но надо будет проверить скорость их работы, так как считают они на лету для каждого запроса.

Ссылки: https://groups.google.com/forum/?fromgroups=#!topic/mongodb-user/ZU4fTlWjJfE http://horicky.blogspot.ru/2011/04/k-means-clustering-in-map-reduce.html http://stackoverflow.com/questions/14305402/geospatial-clustering-mongodb

— Reply to this email directly or view it on GitHub.

Duche3d avatar Jan 15 '13 10:01 Duche3d

Конечно, это надо пробовать после запуска с полными данными. Для таких кейсов я завел Milestone: v.Future

Что касается фильтрации на карте по любым полям (год, тег и т.д.), то конечно это на порядок увеличивает сложность (время) запроса при схеме когда есть готовые кластеры по сетке (как сейчас). Интересно то, что такая фильтрация наоборот - уменьшает сложность при динамической выборке на каждом запросе (например, k-means), потому-что запрос начинается с другой стороны - сначала выбор фотографий, который становится меньше после фильтрации (перед тем как их сагрегировать)

klimashkin avatar Jan 15 '13 11:01 klimashkin

надо конечно как-то статистику собрать, но у меня сейчас ощущение, что фильтрация исползуется довольно нечасто, хотя именно в ней вся сила Jan 15, 2013, в 3:46 PM, klimashkin [email protected] написал(а):

Конечно, это надо пробовать после запуска с полными данными. Для таких кейсов я завел Milestone: v.Future

Что касается фильтрации на карте по любым полям (год, тег и т.д.), то конечно это на порядок увеличивает сложность (время) запроса при схеме когда есть готовые кластеры по сетке (как сейчас). Интересно то, что такая фильтрация наоборот - уменьшает сложность при динамической выборке на каждом запросе (например, k-means), потому-что запрос начинается с другой стороны - сначала выбор фотографий, который становится меньше после фильтрации (перед тем как их сагрегировать)

— Reply to this email directly or view it on GitHub.

Duche3d avatar Jan 15 '13 12:01 Duche3d

Сейчас еще фильтрация по годам ошибается, из-за ошибок валидации того что вводит пользователь Например, на карте поставить интервал 1835 - 1850.

klimashkin avatar Jan 15 '13 12:01 klimashkin

Ну там всего несколько фоток таких - я уже поправил там даты теперь все ок

Jan 15, 2013, в 4:40 PM, klimashkin [email protected] написал(а):

Сейчас еще фильтрация по годам ошибается, из-за ошибок валидации того что вводит пользователь Например, на карте поставить интервал 1835 - 1850.

— Reply to this email directly or view it on GitHub.

Duche3d avatar Jan 15 '13 12:01 Duche3d