Finding Paul Revere

From
Jump to: navigation, search

YouTube search... ...Google search


London, 1772.

I have been asked by my superiors to give a brief demonstration of the surprising effectiveness of even the simplest techniques of the new-fangled Social Networke Analysis in the pursuit of those who would seek to undermine the liberty enjoyed by His Majesty’s subjects. This is in connection with the discussion of the role of “metadata” in certain recent events and the assurances of various respectable parties that the government was merely “sifting through this so-called metadata” and that the “information acquired does not include the content of any communications”. I will show how we can use this “metadata” to find key persons involved in terrorist groups operating within the Colonies at the present time. I shall also endeavour to show how these methods work in what might be called a relational manner...

revere-closeup.png

To play...

1. Download from Kieran Healy files | Github for reference

2. Download from Mark Bernico's files | GitHub]; Boston - 1776.ipynb Jupyter notebook and PaulRevereAppD.csv data file

3. Upload Mark Bernico's files to your Google Drive

Notebook Setup

4. Obtain a Colaboratory account if you don't already have one

5. Setup Colab app in your Google Drive account by watching 1:45 minutes into the following video. Optionally starting at 2:35 setting up a GPU; menu Edit | Notebook settings

6. How to upload from a local file on your computer to Colab by watching the following video, and from this Colab's Help Notebook 'copy and paste' into new cells per the video

7. Note: As you step though the notebook, you will need to put parenthesis around two print statements; print(people_x_groups.shape) & print(groups_x_people.shape)

8. Save your notebook; File | Save <or> CNTRL+S Note: To open your recent files in Colab click here

9. Extra credit: Edit the notebook to graph organizations as shown in Healy's blog by switching the order of the matrix multiplication; groups_adj = groups_x_people.dot(people_x_groups) and replicating the code for groups_adj.

Functional Explanations

  • NumPy for Matrices are collections of elements into rows and columns. Matrix multiplication relies on Dot Product to multiply various combinations of rows and columns. A thing about multiplying matrices is that the order matters - multiply one way to see group relationships and multiply opposite way to view people relationships.
  • NetworkX for creation, manipulation, and study of the structure, dynamics, and functions of complex networks
  • Matplotlib for generating plots, histograms, power spectra, bar charts, errorcharts, scatterplots, etc
  • In 1974's The Duality of Persons and Groups, Ronald Breiger laid out a technique for obtaining a persons x persons adjacency matrix and a groups x groups adjacency matrix from a persons x groups affiliation matrix.
  • Adjacency Matrix - is a 2D array of size V x V where V is the number of vertices in a graph. The matrix is often used in network analysis to represent the adjacency of each person to each other person in a network. An adjacency matrix is a square person-by-person matrix


  • Knowledge Graphs are very useful ways of presenting information about social networks.







Google Drive Option: How to upload from a local file on your computer to Colab by watching 6:30 minutes into the Notebook Setup video. From this Colab's Help Notebook 'copy and paste' per the video

Get Started: 3 Ways to Load CSV files into Colab | A Apte - Towards Data Science