This project explores network science and graph learning techniques using the Facebook100 dataset. The dataset contains friendship networks from U.S. universities in 2005, enabling the study of social structures, link prediction, assortativity, and community detection.
We implement various graph-based algorithms, including:
- Social Network Analysis (SNA)
- Link Prediction Algorithms (Common Neighbors, Jaccard Index, Adamic/Adar)
- Label Propagation for Missing Attribute Recovery
- Community Detection (Louvain Method)
- Modularity and Stability Analysis
📦 Network-Analysis-FB100
┣ 📜 README.md
┣ 📜 Homework_Network_Analysis.pdf
┣ 📜 requirements.txt
┣ 📜 homework.ipynb
┗ 📜 fb100/data/*.gml # Facebook100 dataset (download from pdf)
1️⃣ Clone the repository:
git clone https://github.com/felipemcorlando/netGraphsAndLearning.git
cd Network-Analysis-FB1002️⃣ Install dependencies:
pip install -r requirements.txt3️⃣ Run the Jupyter Notebook:
jupyter notebook homework.ipynbWe tested Common Neighbors, Jaccard Index, and Adamic/Adar to predict missing edges. The results showed that Common Neighbors performed best in most cases.
We evaluated the ability to recover missing labels (dorm, major, and gender). The algorithm performed well for dorm affiliation, but struggled with major assignment.
Using Louvain Modularity, we identified student groups based on dorm and major. Results showed that dorm-based clustering was more structured than major-based clustering.
We performed multiple runs of the Louvain method and measured the variability in modularity scores and Adjusted Rand Index (ARI) across different universities.
- Facebook100 Dataset: Traud et al., 2011
- Community Detection: Blondel et al., 2008
- Label Propagation: Bhagat et al., 2011
- Link Prediction: Liben-Nowell & Kleinberg, 2003
Feel free to open issues and submit pull requests!
📌 Author: Felipe Orlando
📅 Date: January 2025
🔗 GitHub: felipemcorlando