Socialnetwork graph anonymization by perturbation
Development Enviroment:
- VsCode
- Python 3.7.6
- Ubuntu
- mini-conda venv
- Xming(if you want to develop in WSL)
- Dependencies
- matplotlib
- networkx-2.2
- numpy
The repository contain a sample dataset.gml however you can set your own dataset while the app running
How Algorithm work:
- Anonymize graph by naive
- remove and add some connection randomly
- plot removed connection
- plot added connection
- plot final graph
- display graph info
Add and remove connection to the graph is done by probability:
- Generate a random number
- if the number below our expectation then add or remove a random conncetin
- we execute this step for all nodes in graph
We start from 10% and increase the probeblity to 100%, as you will see , by increasing the probeblity more data will be lose
In 100% probeblity our graph will be a random graph, however, the nodes never change