## Network Analysis with Python

### Overview

Social networks are not new, even though websites like Facebook and Twitter might make you want to believe they are. Social networks are extremely interesting models for human behavior, whose study dates back to the early twentieth century. However, because of those websites, data scientists have access to much more data than the anthropologists who studied the networks of tribes!

Because networks take a relationship-centered view of the world, the data structures that we will analyze model real world behaviors and community. Through a suite of algorithms derived from mathematical graph theory we are able to compute and predict behavior of individuals and communities through these types of analyses. This has a number of practical applications from recommendation to law enforcement to election prediction, and more.

### What You Will Learn

In this course we will ingest data and construct a social network using Python. We will learn analyses that compute cardinality, as well as traversal and querying techniques on the graph, and even compute clusters to detect community. Besides learning the basics of graph theory, we will also make predictions and create visualizations from our graphs so that we can easily harness social networks in larger data products.

### Course Outline

The course will cover the following topics:

- Transforming data into graph format.
- Creating graphs using NetworkX.
- Serializing and deserializing NetworkX graphs.
- An introduction to Graph theory.
- Finding strong ties through link weighting.
- Computing centrality and key players (celebrities).
- Finding communities through clustering techniques.
- Visualizing graphs with matplotlib.

Upon completion of the course, you will understand how to conduct graph analyses on networks, as well as have built a library for analyses on a social network!

### Prerequisites

You should be familiar with Python before participating in this course, and have familiarity with the command line. You should also have all software installed and ready for your particular operating system. Ensure that you perform the following tasks and are familiar with the concepts at the following links.