{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Link Prediction: an introduction\n", "\n", "Made for the network science course @ DCC/FCUP\n", "\n", "See also: - [NetworkX - Link Prediction](https://networkx.org/documentation/stable/reference/algorithms/link_prediction.html) " ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [], "source": [ "import networkx as nx\n", "import operator as op" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "G = nx.Graph()\n", "edge_list = [('A', 'B'), ('B', 'C'), ('B', 'D'), ('D', 'E'), ('D', 'H'),\n", "('H', 'G'), ('E', 'F'), ('G','F'), ('F', 'I'), ('H', 'I'), ('G', 'I')]\n", "G.add_edges_from(edge_list)\n", "nx.draw(G, with_labels=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Number of Common Neighbors" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[('H', 'F', 2), ('B', 'H', 1), ('B', 'E', 1), ('A', 'D', 1), ('A', 'C', 1), ('D', 'G', 1), ('D', 'F', 1), ('D', 'C', 1), ('D', 'I', 1), ('H', 'E', 1), ('I', 'E', 1), ('G', 'E', 1), ('B', 'F', 0), ('B', 'I', 0), ('B', 'G', 0), ('A', 'H', 0), ('A', 'E', 0), ('A', 'F', 0), ('A', 'G', 0), ('A', 'I', 0), ('H', 'C', 0), ('C', 'G', 0), ('C', 'E', 0), ('C', 'F', 0), ('C', 'I', 0)]\n" ] } ], "source": [ "common_neigh = [(e[0], e[1], len(list(nx.common_neighbors(G, e[0], e[1]))))\n", " for e in nx.non_edges(G)]\n", "common_neigh = sorted(common_neigh, key=op.itemgetter(2), reverse=True)\n", "\n", "print(common_neigh)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Jaccard Coefficient" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[('A', 'C', 1.0), ('H', 'F', 0.5), ('A', 'D', 0.3333333333333333), ('D', 'C', 0.3333333333333333), ('B', 'E', 0.25), ('H', 'E', 0.25), ('I', 'E', 0.25), ('G', 'E', 0.25), ('B', 'H', 0.2), ('D', 'G', 0.2), ('D', 'F', 0.2), ('D', 'I', 0.2), ('B', 'F', 0.0), ('B', 'I', 0.0), ('B', 'G', 0.0), ('A', 'H', 0.0), ('A', 'E', 0.0), ('A', 'F', 0.0), ('A', 'G', 0.0), ('A', 'I', 0.0), ('H', 'C', 0.0), ('C', 'G', 0.0), ('C', 'E', 0.0), ('C', 'F', 0.0), ('C', 'I', 0.0)]\n" ] } ], "source": [ "jacc_coeff = list(nx.jaccard_coefficient(G))\n", "jacc_coeff.sort(key=op.itemgetter(2), reverse=True)\n", "\n", "print(jacc_coeff)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Resource Allocation Index" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[('H', 'F', 0.6666666666666666), ('D', 'F', 0.5), ('B', 'H', 0.3333333333333333), ('B', 'E', 0.3333333333333333), ('A', 'D', 0.3333333333333333), ('A', 'C', 0.3333333333333333), ('D', 'G', 0.3333333333333333), ('D', 'C', 0.3333333333333333), ('D', 'I', 0.3333333333333333), ('H', 'E', 0.3333333333333333), ('I', 'E', 0.3333333333333333), ('G', 'E', 0.3333333333333333), ('B', 'F', 0), ('B', 'I', 0), ('B', 'G', 0), ('A', 'H', 0), ('A', 'E', 0), ('A', 'F', 0), ('A', 'G', 0), ('A', 'I', 0), ('H', 'C', 0), ('C', 'G', 0), ('C', 'E', 0), ('C', 'F', 0), ('C', 'I', 0)]\n" ] } ], "source": [ "res_alloc = list(nx.resource_allocation_index(G))\n", "res_alloc.sort(key=op.itemgetter(2), reverse=True)\n", "\n", "print(res_alloc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Adamic-Adar Index" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[('H', 'F', 1.8204784532536746), ('D', 'F', 1.4426950408889634), ('B', 'H', 0.9102392266268373), ('B', 'E', 0.9102392266268373), ('A', 'D', 0.9102392266268373), ('A', 'C', 0.9102392266268373), ('D', 'G', 0.9102392266268373), ('D', 'C', 0.9102392266268373), ('D', 'I', 0.9102392266268373), ('H', 'E', 0.9102392266268373), ('I', 'E', 0.9102392266268373), ('G', 'E', 0.9102392266268373), ('B', 'F', 0), ('B', 'I', 0), ('B', 'G', 0), ('A', 'H', 0), ('A', 'E', 0), ('A', 'F', 0), ('A', 'G', 0), ('A', 'I', 0), ('H', 'C', 0), ('C', 'G', 0), ('C', 'E', 0), ('C', 'F', 0), ('C', 'I', 0)]\n" ] } ], "source": [ "adamic_adar = list(nx.adamic_adar_index(G))\n", "adamic_adar.sort(key=op.itemgetter(2), reverse=True)\n", "\n", "print(adamic_adar)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Preferential Attachment Score" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[('B', 'H', 9), ('B', 'F', 9), ('B', 'I', 9), ('B', 'G', 9), ('D', 'G', 9), ('D', 'F', 9), ('D', 'I', 9), ('H', 'F', 9), ('B', 'E', 6), ('H', 'E', 6), ('I', 'E', 6), ('G', 'E', 6), ('A', 'D', 3), ('A', 'H', 3), ('A', 'F', 3), ('A', 'G', 3), ('A', 'I', 3), ('D', 'C', 3), ('H', 'C', 3), ('C', 'G', 3), ('C', 'F', 3), ('C', 'I', 3), ('A', 'E', 2), ('C', 'E', 2), ('A', 'C', 1)]\n" ] } ], "source": [ "pref_attach = list(nx.preferential_attachment(G))\n", "pref_attach.sort(key=op.itemgetter(2), reverse=True)\n", "\n", "print(pref_attach)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Community-based measures" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "data": { "image/png": "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Kj4RERfwww8/MG7cOPbv34+HhwdER8OBA3D9Ovj4QOXK0LAhmExGR7U5FZ+IiAswm820b9eOV+vWpfuxY7BpE3h7Q3o6uLlBWhqULQtvvAHPPAPFixsd2WZUfCIiruDyZRJCQkg7fBg/IMdxnZ+fZdT3/ffw2GNFGLDoqPhERJzdxYvQqBHExEByct4+U6wYzJ8PPXvaNpsBVHwiIs4sNRUefBCioiC/z+krVgy2bIEmTWyTzSC6nUFExJktWwbHj+dYeq2B0kBSdm8mJFjW/JyMik9ExJn95z9w82a2b50AIrCs9y3L6fO7dsGJE7ZIZhgVn4iIszpyBA4ezPHt+UBz4HlgXk4HpafDhx9aPZqRPIwOICIiNrJtm+VWhRzMB4YBzbAUYAxQPvNBycmwbp2tEhpCIz4REWd17VqOV3FuA04CvYFGQE3g65zOc/26DcIZR8UnIuKsPD1zHPHNAx4Dyv35+ye5y3Snp6fVoxlJU50iIs4qKAi8vCDpzms2E4DFQBoQ9OdrScA14BegQXbncSIa8YmIOKuOHS338WWyFHAHDgH7//w6DIRgWfe7g78/vPyyDUMWPRWfiIizKl4cnnwSPO6c3JsH9APuwTLiu/U1EFgIZKnK3r1tHrUoaecWERFnFhlp2XklISH/n/X2hn/8A95/3/q5DKQRn4iIM7v/fhg5Enx98/c5Dw+45x546y3b5DKQRnwiIs7ObIZhw+DTTyE+Pvfjvb0tz+eLiIAKFWyfr4hpxCci4uxMJpgxw7IDS/nylgtWsuPra3koba9esG+fU5YeaMQnIuJa0tMtO7FMnw7790NcnOWWh8BAGDAA+vWD0qWNTmlTKj4REXEpmuoUERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGXouITERGX8v/BnKpMxljMUwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "G.nodes['A']['community'] = 0\n", "G.nodes['B']['community'] = 0\n", "G.nodes['C']['community'] = 0\n", "G.nodes['D']['community'] = 0\n", "G.nodes['E']['community'] = 0\n", "\n", "G.nodes['F']['community'] = 1\n", "G.nodes['G']['community'] = 1\n", "G.nodes['H']['community'] = 1\n", "G.nodes['I']['community'] = 1\n", "\n", "colors = { 0 : 'red', 1 : 'green'}\n", "communities = [colors[G.nodes[node]['community']] for node in G.nodes()]\n", "\n", "nx.draw(G, with_labels=True, node_color=communities)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Common Neighbors - Soundarajan-Hopcroft" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[('H', 'F', 4), ('B', 'E', 2), ('A', 'D', 2), ('A', 'C', 2), ('D', 'C', 2), ('B', 'H', 1), ('D', 'G', 1), ('D', 'F', 1), ('D', 'I', 1), ('H', 'E', 1), ('I', 'E', 1), ('G', 'E', 1), ('B', 'F', 0), ('B', 'I', 0), ('B', 'G', 0), ('A', 'H', 0), ('A', 'E', 0), ('A', 'F', 0), ('A', 'G', 0), ('A', 'I', 0), ('H', 'C', 0), ('C', 'G', 0), ('C', 'E', 0), ('C', 'F', 0), ('C', 'I', 0)]\n" ] } ], "source": [ "cn_soundarajan_hopcroft = list(nx.cn_soundarajan_hopcroft(G))\n", "cn_soundarajan_hopcroft.sort(key=op.itemgetter(2), reverse=True)\n", "\n", "print(cn_soundarajan_hopcroft)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Resource Allocation - Soundarajan-Hopcroft Index" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[('H', 'F', 0.6666666666666666), ('B', 'E', 0.3333333333333333), ('A', 'D', 0.3333333333333333), ('A', 'C', 0.3333333333333333), ('D', 'C', 0.3333333333333333), ('B', 'H', 0), ('B', 'F', 0), ('B', 'I', 0), ('B', 'G', 0), ('A', 'H', 0), ('A', 'E', 0), ('A', 'F', 0), ('A', 'G', 0), ('A', 'I', 0), ('D', 'G', 0), ('D', 'F', 0), ('D', 'I', 0), ('H', 'C', 0), ('H', 'E', 0), ('C', 'G', 0), ('C', 'E', 0), ('C', 'F', 0), ('C', 'I', 0), ('I', 'E', 0), ('G', 'E', 0)]\n" ] } ], "source": [ "ra_soundarajan_hopcroft = list(nx.ra_index_soundarajan_hopcroft(G))\n", "ra_soundarajan_hopcroft.sort(key=op.itemgetter(2), reverse=True)\n", "\n", "print(ra_soundarajan_hopcroft)" ] } ], "metadata": { "interpreter": { "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1" }, "kernelspec": { "display_name": "Python 3.8.10 64-bit", "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.8.10" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }