Networks, also known as graphs are one of the most crucial data structures in our increasingly intertwined world. Social friendship networks, the world-wide-web, financial systems, infrastructure (power grid, streets), etc. are all network structures. Knowing how to analyze the underlying network topology of interconnected systems can provide an invaluable skill in anyone's toolbox. This tutorial will provide a hands-on guide on how to approach a network analysis project from scratch and end-to-end: how to generate, manipulate, analyze and visualize graph structures that will help you gain insight about relationships between elements in your data. You will learn how to detect communities in network to identify more densely interconnected subgroups used on social media platforms to detect social groups, and how to most effectively highlight them in a graph visualization. Analyzing a network from real data is crucial in understanding the patterns and behaviors of a real system. But often times you will need to build synthetic networks, which can serve as baseline models for your studies, or sometimes it becomes even more cost efficient to rely on synthetic networks instead of collecting large-scale data. In the last part of this course you will learn when, why and how to build synthetic networks.
Module 1: Network/Graph Science Overview (30 min)
- Training Overview
- A Brief History from Graph Theory to Network Science
- Real-World Applications of Networks/Graphs Overview
- Basic Network Structural Properties
- Graphs in Python with NetworkX
Module 2: Generate & manipulate graph structures (30 min)
- Create, modify and delete graphs
- Node, edge properties and structure
- Create graph structure from datafile
- Weighted graphs
- Directed graphs
- Multigraphs
- Bipartite graphs
Module 3: Analyze networks (45 min)
- Structural properties analysis
- Node degree, average degree, degree distribution
- Clustering, coefficient, triangles
- Paths, diameter
- Centrality measures
- Components
- Assortativity
Module 4: Visualize networks (15 min)
- Network visualization with NetworkX
- Network visualization with nxviz
- Visualize subgraphs
- Network visualization with node attributes
Module 5: Community detection (60 min)
- Community detection algorithms overview
- Community detection best practices
- Identify communities in a real social network
- Visualize communities in a network
Module 6: Network models (60 min)
- Network models overview
- Build synthetic networks from various network models
- Compare synthetic network and real network topological properties
- Understand the basics of graphs/networks properties and analysis, including what can you use it for and how
- Learn how to generate basic network types, and the most often encountered network models in real data. Next, discover the most informative network measures to understand network structures and behaviors
- Extract and interpret information about real public social network data by building, analyzing and visualizing it to gain understanding about its structure and behaviors.