{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Sparse Matrices" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "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": { "collapsed": true }, "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, 0, 0, 0, 0, 0, 0, 0, 3],\n", " [0, 7, 0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 9, 0, 0],\n", " [0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n", " [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0],\n", " [0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0]])" ] }, "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": { "collapsed": true }, "outputs": [], "source": [ "rows, cols = np.nonzero(A)\n", "vals = A[rows, cols]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([3, 7, 4, 5, 5, 9, 7, 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, 1, 1, 1, 1, 1, 2, 3, 4])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rows" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([14, 1, 4, 5, 6, 12, 3, 13, 5])" ] }, "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 9 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, 14)\t3\n", " (1, 1)\t7\n", " (1, 4)\t4\n", " (1, 5)\t5\n", " (1, 6)\t5\n", " (1, 12)\t9\n", " (2, 3)\t7\n", " (3, 13)\t3\n", " (4, 5)\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 9 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, 14)\t3\n", " (1, 1)\t7\n", " (1, 4)\t4\n", " (1, 5)\t5\n", " (1, 6)\t5\n", " (1, 12)\t9\n", " (2, 3)\t7\n", " (3, 13)\t3\n", " (4, 5)\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, 0, 0, 0, 0, 0, 0, 0, 3],\n", " [0, 7, 0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 9, 0, 0],\n", " [0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n", " [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0],\n", " [0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0]])" ] }, "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. These are known as CSR or CSC formats." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0, 1, 1, 1, 1, 1, 2, 3, 4],\n", " [14, 1, 4, 5, 6, 12, 3, 13, 5]])" ] }, "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, 1, 6, 7, 8, 9])" ] }, "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 9 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, 14)\t3\n", " (1, 1)\t7\n", " (1, 4)\t4\n", " (1, 5)\t5\n", " (1, 6)\t5\n", " (1, 12)\t9\n", " (2, 3)\t7\n", " (3, 13)\t3\n", " (4, 5)\t6\n" ] } ], "source": [ "print(X3)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "matrix([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3],\n", " [0, 7, 0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 9, 0, 0],\n", " [0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n", " [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0],\n", " [0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0]])" ] }, "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": { "collapsed": true }, "outputs": [], "source": [ "X4 = X2.tocsr()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<5x15 sparse matrix of type ''\n", "\twith 9 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": { "collapsed": true }, "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": { "collapsed": true }, "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": { "collapsed": true }, "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([1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0,\n", " 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1,\n", " 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0,\n", " 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0,\n", " 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1])" ] }, "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": { "collapsed": true }, "outputs": [], "source": [ "X6 = sparse.coo_matrix((vals, (pred, obs)))" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "matrix([[23, 23],\n", " [32, 22]])" ] }, "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": { "collapsed": true }, "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": { "collapsed": true }, "outputs": [], "source": [ "iris = datasets.load_iris()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": true }, "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": { "collapsed": true }, "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", "The PageRank algorithm assumes that every node can be reached from every other node. 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 $R$. Then we solve the linear system to find the pagerank score $R$.\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", "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": { "collapsed": true }, "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": { "collapsed": true }, "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": { "collapsed": true }, "outputs": [], "source": [ "import networkx as nx" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Construct the sparse adjacency matrix" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": true }, "outputs": [], "source": [ "g = nx.from_pandas_edgelist(data, source='ORIGIN_AIRPORT_ID', target='DEST_AIRPORT_ID')" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": true }, "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": { "collapsed": true }, "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": { "collapsed": true }, "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": { "collapsed": true }, "outputs": [], "source": [ "from scipy.sparse.linalg import spsolve" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9999999999999999" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r = spsolve(A, b)\n", "r.sum()" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": true }, "outputs": [], "source": [ "idx = np.argsort(r)" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": true }, "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": { "collapsed": true }, "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.6.5" }, "latex_envs": { "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 0 } }, "nbformat": 4, "nbformat_minor": 2 }