Кластеризация дорожных сетей и автобусных остановок
Возможности:
- Кластеризация дорожных сетей произвольных российских городов
- Кластеризация автобусных остановок Санкт-Петербурга
Необходимо:
- Установить БД neo4j
- Плагин graph-data-science для neo4j
- Создать бд и ввсети имя, пароль, порт синхронизировать с переменными в программе
Кластеризация дорожных сетей:
- create-db-graph.create_graph_db(name) - запустить(name - имя города), создастся отношения в бд neo4j
- louvain.louvain_clustering(graph_name) - запустить(graph_name - имя создоваемого графа), запустится кластеризация методом louvain, выведется модулярность кластеризации, в отношение запишется id группы в кластеризации
- leiden.leiden_cluster(graph_name) - запустить(graph_name - имя создоваемого графа), запустится кластеризация методом leiden, выведется модулярность кластеризации, в отношение запишется id группы в кластеризации
- Можно визуализировать результаты например использовав neo4j Bloom, расположить точки в географическом положении и раскрасив в соответсвии с группами кластеризации
Кластеризация сетей автобусных остановок:
- create_bus_graph_db(name) - запустить, спарсятся данные с сайта https://kudikina.ru данные о автобусных остановках, в виде: Вершины - остановки(географическое положение остановки(могут быть не точными если информацию получить не удалось isApproximateCoordinate = True, в таком случае данные будут приближенными), название остановки, список автобусных маршрутов в которых включена остановка); Связи - маршруты между соседними остановками внутри одного автобусного маршрута(название маршрута, длительность перемещения между соединяемыми остановками)
- louvain.louvain_clustering(graph_name) - запустить(graph_name - имя создоваемого графа), запустится кластеризация методом louvain, выведется модулярность кластеризации, в отношение запишется id группы в кластеризации
- leiden.leiden_cluster(graph_name) - запустить(graph_name - имя создоваемого графа), запустится кластеризация методом leiden, выведется модулярность кластеризации, в отношение запишется id группы в кластеризации
- Можно визуализировать результаты например использовав neo4j Bloom, расположить точки в географическом положении и раскрасив в соответсвии с группами кластеризации
С ссайта https://kudikina.ru есть возможность получать данные о дорожных сетях более чем 200 городов.
Источники информации используемые при разработке:
- https://neo4j.com/docs/python-manual/current/
- https://neo4j.com/docs
- https://neo4j.com/docs/graph-data-science/current/algorithms/louvain/
- https://neo4j.com/docs/graph-data-science/current/algorithms/leiden/
- https://en.wikipedia.org/wiki/Louvain_method
- https://proproprogs.ru/ml/ml-aglomerativnaya-ierarhicheskaya-klasterizaciya-dendogramma