https://github.com/alireza-87/socialnetgraphanonymization
Socialnetwork graph anonymization by perturbation
https://github.com/alireza-87/socialnetgraphanonymization
conda-environment dataprivacy dataprotection matplotlib networkx python python2
Last synced: about 2 months ago
JSON representation
Socialnetwork graph anonymization by perturbation
- Host: GitHub
- URL: https://github.com/alireza-87/socialnetgraphanonymization
- Owner: alireza-87
- Created: 2020-03-18T10:27:56.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-03-18T11:28:47.000Z (over 6 years ago)
- Last Synced: 2025-07-03T18:58:20.232Z (12 months ago)
- Topics: conda-environment, dataprivacy, dataprotection, matplotlib, networkx, python, python2
- Language: Python
- Size: 444 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SocialNetGraphAnonymization
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:
1. Anonymize graph by naive
1. remove and add some connection randomly
1. plot removed connection
1. plot added connection
1. plot final graph
1. display graph info
Add and remove connection to the graph is done by probability:
1. Generate a random number
1. if the number below our expectation then add or remove a random conncetin
1. 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
Orginal Graph:

add 10%:

remove 10%:

final 10%:
