{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Sparse Matrices" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import pandas as pd\n", "from scipy import sparse\n", "import scipy.sparse.linalg as spla\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "sns.set_context('notebook', font_scale=1.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating a sparse matrix\n", "\n", "There are many applications in which we deal with matrices that are mostly zeros. For example, a matrix representing social networks is very sparse - there are 7 billion people, but most people are only connected to a few hundred or thousand others directly. Storing such a social network as a sparse rather than dense matrix will offer orders of magnitude reductions in memory requirements and corresponding speed-ups in computation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Coordinate format\n", "\n", "The simplest sparse matrix format is built from the coordinates and values of the non-zero entries." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### From dense matrix" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 4, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0],\n", " [ 0, 0, 0, 9, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0],\n", " [ 0, 0, 0, 4, 0, 0, 0, 0, 0, 10, 0, 0, 3, 1, 0],\n", " [ 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6]])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = np.random.poisson(0.2, (5,15)) * np.random.randint(0, 10, (5, 15))\n", "A" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "rows, cols = np.nonzero(A)\n", "vals = A[rows, cols]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 5, 4, 5, 9, 1, 4, 4, 10, 3, 1, 3, 6])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vals" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rows" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 7, 13, 8, 3, 8, 12, 3, 9, 12, 13, 5, 14])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cols" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<5x15 sparse matrix of type ''\n", "\twith 12 stored elements in COOrdinate format>" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X1 = sparse.coo_matrix(A)\n", "X1" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " (0, 7)\t5\n", " (0, 13)\t4\n", " (1, 8)\t5\n", " (2, 3)\t9\n", " (2, 8)\t1\n", " (2, 12)\t4\n", " (3, 3)\t4\n", " (3, 9)\t10\n", " (3, 12)\t3\n", " (3, 13)\t1\n", " (4, 5)\t3\n", " (4, 14)\t6\n" ] } ], "source": [ "print(X1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### From coordinates\n", "\n", "Note that the (values, (rows, cols)) argument is a single tuple." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<5x15 sparse matrix of type ''\n", "\twith 12 stored elements in COOrdinate format>" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X2 = sparse.coo_matrix((vals, (rows, cols)))\n", "X2" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " (0, 7)\t5\n", " (0, 13)\t4\n", " (1, 8)\t5\n", " (2, 3)\t9\n", " (2, 8)\t1\n", " (2, 12)\t4\n", " (3, 3)\t4\n", " (3, 9)\t10\n", " (3, 12)\t3\n", " (3, 13)\t1\n", " (4, 5)\t3\n", " (4, 14)\t6\n" ] } ], "source": [ "print(X2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Convert back to dense matrix" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "matrix([[ 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 4, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0],\n", " [ 0, 0, 0, 9, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0],\n", " [ 0, 0, 0, 4, 0, 0, 0, 0, 0, 10, 0, 0, 3, 1, 0],\n", " [ 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6]])" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X2.todense()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compressed Sparse Row and Column formats\n", "\n", "When we have repeated entries in the rows or cols, we can remove the redundancy by indicating the location of the first occurrence of a value and its increment instead of the full coordinates. Note that the final index location must be the number of rows or cols since there is no other way to know the shape. These are known as CSR or CSC formats." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4],\n", " [ 7, 13, 8, 3, 8, 12, 3, 9, 12, 13, 5, 14]])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.vstack([rows, cols])" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0, 2, 3, 6, 10, 12])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "indptr = np.r_[np.searchsorted(rows, np.unique(rows)), len(rows)]\n", "indptr" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<5x15 sparse matrix of type ''\n", "\twith 12 stored elements in Compressed Sparse Row format>" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X3 = sparse.csr_matrix((vals, cols, indptr))\n", "X3" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " (0, 7)\t5\n", " (0, 13)\t4\n", " (1, 8)\t5\n", " (2, 3)\t9\n", " (2, 8)\t1\n", " (2, 12)\t4\n", " (3, 3)\t4\n", " (3, 9)\t10\n", " (3, 12)\t3\n", " (3, 13)\t1\n", " (4, 5)\t3\n", " (4, 14)\t6\n" ] } ], "source": [ "print(X3)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "matrix([[ 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 4, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0],\n", " [ 0, 0, 0, 9, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0],\n", " [ 0, 0, 0, 4, 0, 0, 0, 0, 0, 10, 0, 0, 3, 1, 0],\n", " [ 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6]])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X3.todense()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Casting from COO format\n", "\n", "Because the coordinate format is more intuitive, it is often more convenient to first create a COO matrix then cast to CSR or CSC form." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "X4 = X2.tocsr()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<5x15 sparse matrix of type ''\n", "\twith 12 stored elements in Compressed Sparse Row format>" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## COO summation convention\n", "\n", "When entries are repeated in a sparse matrix, they are **summed**. This provides a quick way to construct confusion matrices for evaluation of multi-class classification algorithms." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "rows = np.repeat([0,1], 4)\n", "cols = np.repeat([0,1], 4)\n", "vals = np.arange(8)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 0, 0, 0, 1, 1, 1, 1])" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rows" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 0, 0, 0, 1, 1, 1, 1])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cols" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 2, 3, 4, 5, 6, 7])" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vals" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "X5 = sparse.coo_matrix((vals, (rows, cols)))" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "matrix([[ 6, 0],\n", " [ 0, 22]])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X5.todense()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Creating a 2 by 2 confusion matrix" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "obs = np.random.randint(0, 2, 100)\n", "pred = np.random.randint(0, 2, 100)\n", "vals = np.ones(100).astype('int')" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,\n", " 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0,\n", " 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1,\n", " 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,\n", " 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0])" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pred" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((100,), (100,), (100,))" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vals.shape, obs.shape , pred.shape" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "X6 = sparse.coo_matrix((vals, (pred, obs)))" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "matrix([[31, 22],\n", " [29, 18]])" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X6.todense()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Creating an $n$ by $n$ confusion matrix\n", "\n", "For classifications with a large number of classes (e.g. image segmentation), the savings are even more dramatic." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "from sklearn import datasets\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.neighbors import KNeighborsClassifier" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "iris = datasets.load_iris()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "knn = KNeighborsClassifier()\n", "X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, \n", " test_size=0.5, random_state=42)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "pred = knn.fit(X_train, y_train).predict(X_test)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 0, 2, 1, 1, 0, 1, 2, 1, 1, 2, 0, 0, 0, 0, 1, 2, 1, 1, 2, 0, 1,\n", " 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 1, 0, 0, 2, 1, 0, 0, 0, 2, 1, 1, 0,\n", " 0, 1, 1, 2, 1, 2, 1, 2, 1, 0, 2, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0,\n", " 1, 2, 0, 1, 2, 0, 1, 2, 1])" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pred" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 0, 2, 1, 1, 0, 1, 2, 1, 1, 2, 0, 0, 0, 0, 1, 2, 1, 1, 2, 0, 2,\n", " 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 1, 0, 0, 2, 1, 0, 0, 0, 2, 1, 1, 0,\n", " 0, 1, 2, 2, 1, 2, 1, 2, 1, 0, 2, 1, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0,\n", " 1, 2, 0, 1, 2, 0, 2, 2, 1])" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_test" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
setosaversicolorvirginica
setosa2900
versicolor0234
virginica0019
\n", "
" ], "text/plain": [ " setosa versicolor virginica\n", "setosa 29 0 0\n", "versicolor 0 23 4\n", "virginica 0 0 19" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X7 = sparse.coo_matrix((np.ones(len(pred)).astype('int'), (pred, y_test)))\n", "pd.DataFrame(X7.todense(), index=iris.target_names, columns=iris.target_names)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "matrix([[29, 0, 0],\n", " [ 0, 23, 4],\n", " [ 0, 0, 19]])" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X7.todense()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solving large sparse linear systems\n", "\n", "SciPy provides efficient routines for solving large sparse systems as for dense matrices. We will illustrate by calculating the page rank for airports using data from the [Bureau of Transportation Statisitcs](http://www.transtats.bts.gov/DL_SelectFields.asp?Table_ID=236). The [PageRank](https://en.wikipedia.org/wiki/PageRank) algorithm is used to rank web pages for search results, but it can be used to rank any node in a directed graph (here we have airports instead of web pages). PageRank is fundamentally about finding the steady state in a Markov chain and can be solved as a linear system.\n", "\n", "The update at each time step for the page rank $PR$ of a page $p_i$ is \n", "\n", "![i0](https://wikimedia.org/api/rest_v1/media/math/render/svg/8a8c0a807f62331cc1740dd6c0f28ac1809926c7)\n", "\n", "In the above equation, $B_u$ is the set of all nodes $v$ that link to $u$, where each $v$ node contributes its page rank divided by its number of outgoing links $L(v)$. So a node $v$ with a high page rank contributes a large value to a linked node $u$ if $v$ has relatively few other links. \n", "\n", "![i0](figs/pagerank.png)\n", "\n", "The figure shows a network with four nodes, all of which start with a page rank of $1/4$. The values on the edges shows how much of its page rank one nodes contributes to its linked nodes in the first step.\n", "\n", "By letting the sum of all page ranks to be equal to one, we essentially have a probability distribution over the nodes of the graph. Since the state of the graph only depends on its previous state, we have a Markov chain. If we assume that every node can be reached from every other node, the system will have a steady state - which is what the PageRank algorithm seeks to find. To guard against case where a node has out-degree 0, we allow every node a small random chance of transitioning to any other node using a damping factor $d$. Then we solve the linear system to find the pagerank score $R$.\n", "\n", "\n", "![i1](https://wikimedia.org/api/rest_v1/media/math/render/svg/6bb0f1469218a064274fd4691143e9ce64639dc2)\n", "\n", "In matrix notation, this is\n", "\n", "![i2](https://wikimedia.org/api/rest_v1/media/math/render/svg/96265e6c41318e793194287f36b5f929075bb876)\n", "\n", "where\n", "\n", "![i2.5](https://wikimedia.org/api/rest_v1/media/math/render/svg/3e82b446a376633a386b10668703a4547f167d1c)\n", "\n", "At steady state,\n", "\n", "![i3](https://wikimedia.org/api/rest_v1/media/math/render/svg/65d2fed50688deaca4640b117c88a9e7a3c2ef0d)\n", "\n", "and we can rearrange terms to solve for $R$\n", "\n", "![i4](https://wikimedia.org/api/rest_v1/media/math/render/svg/985f19f0c6b69d3a8afb5acc38339ebe4915baa7)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "data = pd.read_csv('data/airports.csv', usecols=[0,1])" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(445827, 2)" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.shape" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ORIGIN_AIRPORT_IDDEST_AIRPORT_ID
01013510397
11013510397
21013510397
31013510397
41013510397
\n", "
" ], "text/plain": [ " ORIGIN_AIRPORT_ID DEST_AIRPORT_ID\n", "0 10135 10397\n", "1 10135 10397\n", "2 10135 10397\n", "3 10135 10397\n", "4 10135 10397" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "lookup = pd.read_csv('data/names.csv', index_col=0)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(6404, 1)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lookup.shape" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Description
Code
10001Afognak Lake, AK: Afognak Lake Airport
10003Granite Mountain, AK: Bear Creek Mining Strip
10004Lik, AK: Lik Mining Camp
10005Little Squaw, AK: Little Squaw Airport
10006Kizhuyak, AK: Kizhuyak Bay
\n", "
" ], "text/plain": [ " Description\n", "Code \n", "10001 Afognak Lake, AK: Afognak Lake Airport\n", "10003 Granite Mountain, AK: Bear Creek Mining Strip\n", "10004 Lik, AK: Lik Mining Camp\n", "10005 Little Squaw, AK: Little Squaw Airport\n", "10006 Kizhuyak, AK: Kizhuyak Bay" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lookup.head()" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "import networkx as nx" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Construct the sparse adjacency matrix" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "g = nx.from_pandas_edgelist(data, source='ORIGIN_AIRPORT_ID', target='DEST_AIRPORT_ID')" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "airports = np.array(g.nodes())\n", "adj_matrix = nx.to_scipy_sparse_matrix(g)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Construct the transition matrix" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "out_degrees = np.ravel(adj_matrix.sum(axis=1))\n", "diag_matrix = sparse.diags(1 / out_degrees).tocsr()\n", "M = (diag_matrix @ adj_matrix).T" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "n = len(airports) \n", "d = 0.85 \n", "I = sparse.eye(n, format='csc')\n", "A = I - d * M\n", "b = (1-d) / n * np.ones(n) # so the sum of all page ranks is 1" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "matrix([[ 1. , -0.00537975, -0.0085 , ..., 0. ,\n", " 0. , 0. ],\n", " [-0.28333333, 1. , -0.0085 , ..., 0. ,\n", " 0. , 0. ],\n", " [-0.28333333, -0.00537975, 1. , ..., 0. ,\n", " 0. , 0. ],\n", " ...,\n", " [ 0. , 0. , 0. , ..., 1. ,\n", " 0. , 0. ],\n", " [ 0. , 0. , 0. , ..., 0. ,\n", " 1. , 0. ],\n", " [ 0. , 0. , 0. , ..., 0. ,\n", " 0. , 1. ]])" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.todense()" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "from scipy.sparse.linalg import spsolve" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9999999999999998" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r = spsolve(A, b)\n", "r.sum()" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "idx = np.argsort(r)" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "top10 = idx[-10:][::-1]\n", "bot10 = idx[:10]" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Descriptiondegreepagerank
Code
10397Atlanta, GA: Hartsfield-Jackson Atlanta Intern...1580.043286
13930Chicago, IL: Chicago O'Hare International1390.033956
11292Denver, CO: Denver International1290.031434
11298Dallas/Fort Worth, TX: Dallas/Fort Worth Inter...1080.027596
13487Minneapolis, MN: Minneapolis-St Paul Internati...1080.027511
12266Houston, TX: George Bush Intercontinental/Houston1100.025967
11433Detroit, MI: Detroit Metro Wayne County1000.024738
14869Salt Lake City, UT: Salt Lake City International780.019298
14771San Francisco, CA: San Francisco International760.017820
14107Phoenix, AZ: Phoenix Sky Harbor International790.017000
\n", "
" ], "text/plain": [ " Description degree pagerank\n", "Code \n", "10397 Atlanta, GA: Hartsfield-Jackson Atlanta Intern... 158 0.043286\n", "13930 Chicago, IL: Chicago O'Hare International 139 0.033956\n", "11292 Denver, CO: Denver International 129 0.031434\n", "11298 Dallas/Fort Worth, TX: Dallas/Fort Worth Inter... 108 0.027596\n", "13487 Minneapolis, MN: Minneapolis-St Paul Internati... 108 0.027511\n", "12266 Houston, TX: George Bush Intercontinental/Houston 110 0.025967\n", "11433 Detroit, MI: Detroit Metro Wayne County 100 0.024738\n", "14869 Salt Lake City, UT: Salt Lake City International 78 0.019298\n", "14771 San Francisco, CA: San Francisco International 76 0.017820\n", "14107 Phoenix, AZ: Phoenix Sky Harbor International 79 0.017000" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = lookup.loc[airports[top10]]\n", "df['degree'] = out_degrees[top10]\n", "df['pagerank']= r[top10]\n", "df" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Descriptiondegreepagerank
Code
12265Niagara Falls, NY: Niagara Falls International10.000693
14025Plattsburgh, NY: Plattsburgh International10.000693
16218Yuma, AZ: Yuma MCAS/Yuma International10.000693
11695Flagstaff, AZ: Flagstaff Pulliam10.000693
10157Arcata/Eureka, CA: Arcata10.000710
14905Santa Maria, CA: Santa Maria Public/Capt. G. A...10.000710
14487Redding, CA: Redding Municipal10.000710
13964North Bend/Coos Bay, OR: Southwest Oregon Regi...10.000710
11049College Station/Bryan, TX: Easterwood Field10.000711
12177Hobbs, NM: Lea County Regional10.000711
\n", "
" ], "text/plain": [ " Description degree pagerank\n", "Code \n", "12265 Niagara Falls, NY: Niagara Falls International 1 0.000693\n", "14025 Plattsburgh, NY: Plattsburgh International 1 0.000693\n", "16218 Yuma, AZ: Yuma MCAS/Yuma International 1 0.000693\n", "11695 Flagstaff, AZ: Flagstaff Pulliam 1 0.000693\n", "10157 Arcata/Eureka, CA: Arcata 1 0.000710\n", "14905 Santa Maria, CA: Santa Maria Public/Capt. G. A... 1 0.000710\n", "14487 Redding, CA: Redding Municipal 1 0.000710\n", "13964 North Bend/Coos Bay, OR: Southwest Oregon Regi... 1 0.000710\n", "11049 College Station/Bryan, TX: Easterwood Field 1 0.000711\n", "12177 Hobbs, NM: Lea County Regional 1 0.000711" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = lookup.loc[airports[bot10]]\n", "df['degree'] = out_degrees[bot10]\n", "df['pagerank']= r[bot10]\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Visualize the airport connections graph and label the top and bottom 5 airports by pagerank" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "labels = {airports[i]: lookup.loc[airports[i]].str.split(':').str[0].values[0] \n", " for i in np.r_[top10[:5], bot10[:5]]}\n", "nx.draw(g, pos=nx.spring_layout(g), labels=labels, \n", " node_color='blue', font_color='red', alpha=0.5,\n", " node_size=np.clip(5000*r, 1, 5000*r), width=0.1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" }, "latex_envs": { "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 0 } }, "nbformat": 4, "nbformat_minor": 2 }