Skip to content

Latest commit

 

History

History
38 lines (32 loc) · 4.38 KB

README.md

File metadata and controls

38 lines (32 loc) · 4.38 KB

Кластеризация дорожных сетей и автобусных остановок

Возможности:

  1. Кластеризация дорожных сетей произвольных российских городов
  2. Кластеризация автобусных остановок Санкт-Петербурга

Необходимо:

  1. Установить БД neo4j
  2. Плагин graph-data-science для neo4j
  3. Создать бд и ввсети имя, пароль, порт синхронизировать с переменными в программе

Кластеризация дорожных сетей:

  1. create-db-graph.create_graph_db(name) - запустить(name - имя города), создастся отношения в бд neo4j
  2. louvain.louvain_clustering(graph_name) - запустить(graph_name - имя создоваемого графа), запустится кластеризация методом louvain, выведется модулярность кластеризации, в отношение запишется id группы в кластеризации
  3. leiden.leiden_cluster(graph_name) - запустить(graph_name - имя создоваемого графа), запустится кластеризация методом leiden, выведется модулярность кластеризации, в отношение запишется id группы в кластеризации
  4. Можно визуализировать результаты например использовав neo4j Bloom, расположить точки в географическом положении и раскрасив в соответсвии с группами кластеризации

Кластеризация сетей автобусных остановок:

  1. create_bus_graph_db(name) - запустить, спарсятся данные с сайта https://kudikina.ru данные о автобусных остановках, в виде: Вершины - остановки(географическое положение остановки(могут быть не точными если информацию получить не удалось isApproximateCoordinate = True, в таком случае данные будут приближенными), название остановки, список автобусных маршрутов в которых включена остановка); Связи - маршруты между соседними остановками внутри одного автобусного маршрута(название маршрута, длительность перемещения между соединяемыми остановками)
  2. louvain.louvain_clustering(graph_name) - запустить(graph_name - имя создоваемого графа), запустится кластеризация методом louvain, выведется модулярность кластеризации, в отношение запишется id группы в кластеризации
  3. leiden.leiden_cluster(graph_name) - запустить(graph_name - имя создоваемого графа), запустится кластеризация методом leiden, выведется модулярность кластеризации, в отношение запишется id группы в кластеризации
  4. Можно визуализировать результаты например использовав neo4j Bloom, расположить точки в географическом положении и раскрасив в соответсвии с группами кластеризации

С ссайта https://kudikina.ru есть возможность получать данные о дорожных сетях более чем 200 городов.

Источники информации используемые при разработке:

  1. https://neo4j.com/docs/python-manual/current/
  2. https://neo4j.com/docs
  3. https://neo4j.com/docs/graph-data-science/current/algorithms/louvain/
  4. https://neo4j.com/docs/graph-data-science/current/algorithms/leiden/
  5. https://en.wikipedia.org/wiki/Louvain_method
  6. https://proproprogs.ru/ml/ml-aglomerativnaya-ierarhicheskaya-klasterizaciya-dendogramma