{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Networks" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "\n", "This exercise will go over the basics on how to work with the `networkx` package to do network analysis. Note that we do not cover how to obtain network data in this notebook. Here, we start with an **edgelist**, or a dataset with two columns and each row indicating which nodes are connected. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setup\n", "\n", "First, we'll import python packages needed for the code in this notebook. If you stop in the middle of this notebook, close it, then come back later to continue, make sure to run these imports each time you start up the notebook again." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "import networkx as nx\n", "import numpy as np\n", "import pandas as pd\n", "import operator\n", "\n", "from sqlite3 import connect\n", "\n", "# Allows plots to be showed inline \n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Importing data\n", "\n", "First, we create a query to pull in all of the relations in the system. We have stored all of these in the `awards` table in the awards database. The `awards` table contains grant awards, as well as information about who received which the award. The information about the individuals can be found in the `employees` and `students` tables. We'll bring in both now. The `awards` table is what is going to form the basis of the network, while the other two will contain information about the nodes.\n", "\n", "After running the below code, you should have two DataFrames: `awards`, which represents the edgelist of all connections between nodes, and `employees`, which contains information about all employees, including both faculty and students." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# to create a connection to the database, \n", "conn = connect('awards.db')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "awards = pd.read_sql('SELECT * from awards;', conn)\n", "employees = pd.read_sql('SELECT * from employees UNION SELECT * from students;', conn).astype('str')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We take the data that was returned by our query into a `pandas` DataFrame and import the data into `networkx` from that DataFrame. We use a `networkx` function called `from_pandas_edgelist` to do this." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "all_relations_nx = nx.from_pandas_edgelist(awards, 'employee', 'award')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Adding Node attributes\n", "\n", "We want to make sure to include information about the nodes in the network object as well. Specifically, we want to include whether the node is an award or an individual, and whether that individual is faculty or a student. \n", "\n", "To do this, we'll first extract node id values (which we store as a DataFrame inside `all_nodes`). Then, we'll merge it with the `employees` DataFrame, which will give us information about what kind of node it is. Merging will give us information about faculty or student -- everything else is, by process of elimination, an award. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "all_nodes = pd.DataFrame({'node':[i for i in all_relations_nx.nodes]})\n", "node_attributes = all_nodes.merge(employees, how = 'left', left_on = 'node',right_on = 'employee')\n", "node_attributes = node_attributes[['node', 'occupation']]\n", "node_attributes['occupation'] = ['AWARD' if id != id else id for id in node_attributes['occupation']]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll add in the node attributes into the network object to indicate whether the node is faculty, student, or an award." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "for i in range(len(node_attributes)):\n", " all_relations_nx.nodes[node_attributes['node'][i]]['Type'] = node_attributes['occupation'][i]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualizing a Graph in `networkx`\n", "\n", "Now we will use the `networkx.draw()` function to draw the graph of the network we've created. First, we will create a function that accepts a list of nodes and creates an associated list of color values for each node." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "color_map = []\n", "for node in node_attributes['occupation']:\n", " if node == 'FACULTY':\n", " color_map.append('blue')\n", " if node == 'AWARD':\n", " color_map.append('red')\n", " if node == 'STUDENT':\n", " color_map.append('green')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nx.draw(all_relations_nx, node_color=color_map, node_size = 10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analyzing Networks\n", "\n", "The networkx module also has built in tools to analyse graphs. The following measurements are used to assess how the nodes are related to each other in the graph database." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Network Measures \n", "\n", "The following are some examples of traits of individual nodes and the overall network in a network graph that can be used to characterize network data:\n", "\n", "- **Degree Centrality** - counts the number of edges that an individual node has \n", "\n", " - Nodes with a high degree of connections usually play an important role in a network\n", " - This can also be looked at in aggregate for all nodes in a graph to get an idea of the overall connectedness of the graph. For example, calculate the mean and median degree centrality across all nodes to look at how connected a graph is, in general.\n", "\n", "- **Betweenness** - indicator of a node's centality in a network. \n", "\n", " - Equal to the number of shortest paths from all vertices to all others that pass through that node\n", " - This also can be looked at in aggregate to characterize an entire network.\n", "\n", "- **Diameter** - The longest shortest path over all pairs of nodes \n", "\n", " - Often we want to find the shortest distance between two nodes; the diameter is the longest of these paths \n", " - Nodes that occur on many shortest paths between other nodes in the graph have a high betweenness centrality score\n", "\n", "- **Cliques** - A clique is a subset of vertices of an undirected graph such that every two distinct vertices in the clique are adjacent.\n", "\n", "The functions below are written for your conviencence by http://www.slideshare.net/arnicas/a-quick-and-dirty-intro-to-networkx-and-d3" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "nbgrader": { "grade": true, "grade_id": "correct_sum_of_squares", "locked": true, "points": 1, "solution": false } }, "outputs": [], "source": [ "def calculate_degree_centrality(graph):\n", " ''' \n", " Calculate degree centrality of a node, sets value on node as attribute; returns graph, and dict of the degree centrality values.\n", "\tAlso has code to print the top 10 nodes by degree centrality to console\n", " \n", " Parameters\n", " ----------\n", " graph - A Networkx object Graph \n", "\t'''\n", " g = graph\n", " dc = nx.degree_centrality(g)\n", " nx.set_node_attributes(g, dc, 'degree_centrality')\n", " degcent_sorted = sorted(dc.items(), key = operator.itemgetter(1), reverse = True)\n", " for key, value in degcent_sorted[0:10]:\n", " print( \"Highest degree Centrality:\" + str( key ) + \" - \" + str( value ) )\n", " return graph, dc \n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def calculate_betweenness(graph):\n", " ''' \n", " Calculate betweenness centrality of a node, sets value on node as attribute; returns graph, and dict of the betweenness centrality values\n", "\n", " Parameters\n", " ----------\n", " graph - A Networkx object Graph \n", " '''\n", " g = graph\n", " bc=nx.betweenness_centrality(g)\n", " nx.set_node_attributes(g,bc,'betweenness')\n", " degcent_sorted = sorted(bc.items(), key = operator.itemgetter(1), reverse = True)\n", " for key, value in degcent_sorted[0:10]:\n", " print( \"Highest Betweeness:\" + str( key ) + \" - \" + str( value ) )\n", " return g #, bc\n", "\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def find_cliques(graph):\n", "\t''' \n", " Calculate cliques and return as sorted list. Print sizes of cliques found.\n", " \n", " Parameters\n", " ----------\n", " graph - A Networkx object Graph \n", "\t'''\n", "\tg = graph\n", "\tcl = nx.find_cliques(g)\n", "\tcl = sorted(list( cl ), key=len, reverse=True)\n", "\tprint( \"Number of cliques: \" + str( len(cl) ) )\n", "\tcl_sizes = [len(c) for c in cl]\n", "\tprint( \"Size of cliques:\" + str( cl_sizes ) )\n", "\treturn cl\n", "\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def find_diameter(graph):\n", " \"\"\"\n", " Calculate the Diameter of a graph\n", " \n", " Parameters\n", " ----------\n", " graph - A Networkx object Graph \n", " \"\"\"\n", " diameter = nx.diameter(graph)\n", " print( \"Diameter: \" + str( diameter ) )\n", " return diameter\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can find the centrality measures and find cliques by calling the functions above." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "nbgrader": { "grade": true, "grade_id": "sum_of_squares_uses_squares", "locked": true, "points": 1, "solution": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_________________DEGREE CENTRALITY ________________\n", "Highest degree Centrality:aw1261 - 0.00505050505050505\n", "Highest degree Centrality:aw1007 - 0.003367003367003367\n", "Highest degree Centrality:aw1008 - 0.003367003367003367\n", "Highest degree Centrality:aw1009 - 0.003367003367003367\n", "Highest degree Centrality:aw1010 - 0.003367003367003367\n", "Highest degree Centrality:aw1011 - 0.003367003367003367\n", "Highest degree Centrality:aw1012 - 0.003367003367003367\n", "Highest degree Centrality:aw1022 - 0.003367003367003367\n", "Highest degree Centrality:aw1023 - 0.003367003367003367\n", "Highest degree Centrality:aw1027 - 0.003367003367003367\n", "_________________Betweenness ________________\n", "Highest Betweeness:aw1012 - 0.0094897302142458\n", "Highest Betweeness:aw1013 - 0.00943441718504903\n", "Highest Betweeness:aw1014 - 0.009376267590252426\n", "Highest Betweeness:aw1015 - 0.009228766179061041\n", "Highest Betweeness:1646 - 0.008959292447076777\n", "Highest Betweeness:90008389 - 0.008902561135080091\n", "Highest Betweeness:90024642 - 0.008806117904685723\n", "Highest Betweeness:90028845 - 0.008664289624694005\n", "Highest Betweeness:aw1016 - 0.008661453059094172\n", "Highest Betweeness:aw1011 - 0.008445874073506762\n", "_________________Cliques ________________\n", "Number of cliques: 903\n", "Size of cliques:[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]\n", "__________________________________________\n" ] } ], "source": [ "print( \"_________________DEGREE CENTRALITY ________________\" )\n", "calculate_degree_centrality( all_relations_nx )\n", "print( \"_________________Betweenness ________________\" )\n", "calculate_betweenness( all_relations_nx )\n", "print( \"_________________Cliques ________________\" )\n", "find_cliques( all_relations_nx )\n", "print( \"__________________________________________\" )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting Network Metrics\n", "\n", "Betweeness and Centrality are both measures on how connnected a node is to its surounding nodes. However, they measure connectiveness in slightly different ways. A Node with high Degree centrality does not nessasarily mean the node also has a high level a Betwennness Centrality.\n", "\n", " A node with high betweenness but low degree might indicated that a node's few connections are critical to the shape of the graph\n", "\n", " A node with high degree but low betweenness might indicate that a node's connections are redundent and connections can bypass that node\n", " \n", "We can investigate this further by plotting degree centrality with betweenness centrality to see the relationship." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dc_data = list( nx.degree_centrality( all_relations_nx ).values() )\n", "bw_data = list( nx.betweenness_centrality( all_relations_nx ).values() )\n", "\n", "x = dc_data\n", "y = bw_data\n", "\n", "plt.scatter(x, y)\n", "\n", "#title\n", "plt.title(\"Betweenness vs Centrality\")\n", "\n", "#labels\n", "plt.xlabel(\"Degree Centrality\")\n", "plt.ylabel(\"Betweenness Centrality\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analysing Graphs\n", "\n", "\n", "We can also create histograms of the degree centrality and betweenness centrality to look at the distributions." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Your soultion should Look somthing Like this \n", "\n", "def graph_data(graph):\n", " \"\"\"\n", " Creates histograms of the the Degree of Centrality and the Betweenness Centrality \n", " \n", " Parameters\n", " ----------\n", " graph - A Networkx object Graph. Graph nodes must have degree_centrality and betweenness attributes\n", " \n", " \"\"\"\n", " # Create an empty list to hold all of our degree_centrality items \n", " cen_list = []\n", " # Use the built in function get_node_attributes to collect the degree_centrality for each node\n", " for item in nx.get_node_attributes(graph, 'degree_centrality'):\n", " cen_list.append(nx.get_node_attributes(graph, 'degree_centrality')[item])\n", " \n", " # Pass the cen_list to a plt object and plot as a histogram \n", " plt.figure(1)\n", " #title\n", " plt.title(\"Degree Centrality\")\n", "\n", " #labels\n", " plt.xlabel(\"Degree Centrality\")\n", " \n", " plt.hist(cen_list)\n", " \n", " # Create an empty list to hold all of our eigen_cent items \n", " bw_list = []\n", " # Use the built in function get_node_attributes to collect the eigen_cent for each node\n", " for item in nx.get_node_attributes(graph, 'betweenness'):\n", " bw_list.append(nx.get_node_attributes(graph, 'betweenness')[item])\n", " \n", " # Pass the eig_list to a plt object and plot as a histogram \n", " plt.figure(2)\n", " #title\n", " plt.title(\"Betweeness Centrality\")\n", "\n", " #labels\n", " plt.xlabel(\"Betweeness Centrality\")\n", " plt.hist(bw_list)\n", "\n", " \n", "# Call the function graph_data() on our Networkx graph \n", "graph_data( all_relations_nx )\n", "\n" ] } ], "metadata": { "anaconda-cloud": {}, "celltoolbar": "Create Assignment", "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.3" } }, "nbformat": 4, "nbformat_minor": 4 }