Network analysis is the process of investigating social structures through the use of networks and graph theory. It characterizes networked structures in terms of nodes (individual actors, people, or things within the network) and the ties, edges, or links (relationships or interactions) that connect them. Examples of social structures commonly visualized through social network analysis include social media networks, memes spread, and information transfer.
This course is part of Master degree in Computer Science (Software & Security Engineering) at University of Genoa.
Course Instructor: Prof. Marina Ribaudo
In this course, we have learned the fundamental concepts of network analysis, including:
- Graph theory and its applications in network analysis
- Different types of networks (e.g., social networks, information networks)
- Methods for analyzing network structures and properties
- Tools (such as Gephi for visualization) and software used for network analysis
- Case studies and practical applications of network analysis
Throughout the course, we have completed three different practical assignments to apply the concepts learned in class. These assignments have included:
Perform data analysis using Python libraries such as Pandas, Numpy, and Matplotlib.
- Data Cleaning
- Load the dataset.
- Calculating the giant component.
- Data normalization.
- Exploratory Data Analysis (EDA)
- Generate summary statistics.
- Create visualizations (e.g., histograms, scatter plots) to understand data distributions and relationships.
- Data Transformation
- Apply necessary transformations (e.g., log transformation, scaling).
- Create new features if needed.
- Reporting
- Summarize findings and insights.
- Include visualizations and model performance metrics in the report.
- measure_computation.ipynb: Main python notebook file which consists of the whole logic.
- report.pdf: This file includes the insights and understandings of the network.
In this assignment, we have explored how the network behavior when there is a data that is needed to be shared.
We have developed several nodes designed to transmit data, some of which will modify the data. Ultimately, the data will be disseminated within the network of Twitter's Circles.
- sending_info.ipynb: Main python notebook file which consists of the whole logic.
- report.pdf: This file includes the insights and understandings of the network.
Investigate the robustness of a network by analyzing its structural properties and simulating failures.
In this assignment, we had three different parts:
- Step 1: Apply some simulated attacks on two random networks (Erdos-Renyi & Barabasi-Albert) to see how they affect the network robustness. The attacks are listed below:
- Highest Degree Node Removal Attack
- Highest Betweenness Node Removal Attack
- Highest PageRank Node Removal Attack
- Random Node Removal Attack
- Step 2: Apply the mentioned attacks (except Highest Betweenness Node Removal Attack) on the network of Twitter's Circles.
- Step 3: After finding the most effective attack on the Twitter's Circles network, we have worked on making an improvement of network's robustness.
- helper.py: This python file includes the simulated attacks' functions.
- network_robustness.ipynb: Main python notebook file which consists of the whole logic.
- report.pdf: This file includes the insights and understandings of the network.
The data which is Twitter's Circles is downloaded from Stanford website. The dataset has 81,306 nodes and 1,768,149 edges.