10,2 тыс подписчиков
🔍 Выявление неявных связей при анализе графов или как увидеть незримое
Неявные связи в графах. Что это и как с ними работать, разберу на примерах.
Граф — множество узлов, объединенных множеством ребер.
С узлами все понятно, взяли города России, клиентов банка или компьютеры в сети, и получили множество объектов, которые и будут узлами для графа.
Что же с ребрами? На первый взгляд все просто: города соединены дорогами, клиенты совершают переводы денежных средств, а компьютеры постоянно обмениваются информацией. Все, что было перечислено, относится к явным типам связей.
Существует факт взаимосвязи между объектами: если дороги нет, то ребро между узлами отсутствует.
Что же относится к неявным связям? Неявные связи сложнее, они могут зависеть от явных связей или же быть самостоятельными.
Например, возьмем двух людей, которые работают на абсолютно разных работах, живут в разных концах города. На первый взгляд, они не имеют ничего общего, но при этом они оба по выходным приходят на матч любимой команды – это и есть неявная связь.
Теперь перейдем к практическому примеру.
Есть 2 файла:
◾️Данные о мошенниках, их номерах телефонов, а также периоды их активности;
◾️Данные о клиентах и номерах телефонов с периодами активности.
◾️Данные с номерами телефонов сложно найти в открытом доступе, придется сгенерировать их самостоятельно. Код для генерации необходимых данных расположен по ссылке.
Следующим этапом будет создание графа. Для этой задачи понадобятся следующие python-библиотеки:
▪️Pandas – для работы с файлами;
▪️NetworkX – для создания графа связей, его визуализации;
▪️Matplotlib и Numpy – нужны для настройки визуализации графа;
▪️Datetime – для операций над временными данными.
Перед созданием графа взглянем на данные, с которыми нам предстоит работать.
Описание данных:
📍index – id клиента / мошенника;
📍numbers – номер телефона;
📍Date_start – начало периода активности;
📍Date_end – окончание периода активности.
➡️ Продолжение
1 минута
4 сентября 2023