Are you ready to take your data analysis skills to the next level? Network data, also known as linked data, is the new frontier of data analysis. Networks are represented in a mathematical form called graphs, and can be used to model a wide variety of problems. In this tutorial, I will show you how to think through fundamental network analysis problems that have broad applicability.
Outline
Getting Setup:
Python 3 environment required! I will not provide the necessary Python pickles in a Py2-compatible format. Heed @jakevdp's call: it's time to move onto Python 3.
Github repository: https://github.com/ericmjl/Network-Analysis-Made-Simple
Part 1: Fundamentals (10 minutes, lecture style)
- Definition of a graph: Set of nodes, set of edges, with metadata.
- Places where graph problems show up: finding optimal travel paths, identifying social network influencers.
Part 2: NetworkX Basics (Hands-On 20 min.)
- Common coding patterns using list comprehensions and for loops.
- Common and new visualizations.
Break: 10 min.
Part 3: Node Importance Measures (Hands-On: 20 minutes.)
- Degree centrality: Finding information spreaders.
- Betweenness centrality: Finding critical links in a network.
Part 4: Finding Network Motifs (Hands-On: 30 minutes.)
- Finding open triangles: the basis of friend recommendation systems.
Part 5: Basic Network Statistics (Hands-On: 30 minutes.)
- Loading data from CSV files.
- Parametric inference: E-R graph as a model of social networks. Compare data to E-R graph, infer model parameter. Concept of criticality.
- Non-parametric inference: permutation tests to break connection between node metadata and edges, e.g. when source seems to be biased to one kind of node and sink seems to be biased to another kind.
Concluding Remarks
- The goal here is to provide strong fundamentals for thinking through network construction and statistical problems.
- Lots of coding challenges in the tutorial!
- Be prepared to think really hard, have a ton of fun programming in Python, and walk out of the tutorial ready to look at the world in a different way - in terms of relationships between entities.