Course: NET 4103 - Network Science & Graph Learning
Institution: TΓ©lΓ©com SudParis
Language: Python 3.8+
This project provides a comprehensive structural analysis of social networks within US universities using the Facebook100 dataset (a snapshot of the Facebook network from September 2005).
The goal is to understand how students formed social ties during the early days of social media by applying various Graph Learning and Network Science techniques.
- Topological Analysis: Analyzing degree distributions (Power Law), clustering coefficients, and small-world properties.
- Assortativity: Investigating homophily to see if students bond based on shared attributes (Dorm, Major, Gender, Status).
- Link Prediction: Implementing algorithms (Common Neighbors, Jaccard, Adamic/Adar) to predict missing friendships with high precision.
- Community Detection: Testing sociologically grounded hypotheses (e.g., "Dorms vs. Class Year" as primary drivers of community formation) using the Louvain algorithm.
NET4103-Facebook100-Analysis/
β
βββ data/ # Contains the .gml files (e.g., Caltech36.gml)
βββ plots/ # Generated visualizations used in the report
β βββ question1/ # Visualizations of node attributes
β βββ ...
β
βββ scripts/ # Standalone Python scripts for each question
β βββ question1.py # Attribute Visualization
β βββ question2.py # Topology Analysis
β βββ question3.py # Assortativity (Parallel processing)
β βββ question4.py # Link Prediction (Manual implementation)
β βββ question5.py # Label Propagation (PyTorch)
β βββ question6.py # Community Detection (Louvain)
β
βββ notebook/ # Full analysis in a single Jupyter Notebook
β βββ Facebook100_Analysis_Full.ipynb
β
βββ requirements.txt # List of python dependencies
βββ README.md # Project documentation