main.ipynb (52279B)
1 { 2 "cells": [ 3 { 4 "cell_type": "code", 5 "execution_count": 125, 6 "id": "177caec0", 7 "metadata": {}, 8 "outputs": [], 9 "source": [ 10 "import networkx as nx\n", 11 "import numpy as np\n", 12 "import itertools as it\n", 13 "import random\n", 14 "from matplotlib import pyplot as plt\n", 15 "from scipy.optimize import curve_fit\n", 16 "path = './../../../network_course/data/'" 17 ] 18 }, 19 { 20 "cell_type": "code", 21 "execution_count": 126, 22 "id": "6e681c9b", 23 "metadata": {}, 24 "outputs": [], 25 "source": [ 26 "G_protein = nx.read_edgelist(path + 'protein.edgelist.txt')\n", 27 "G_collab = nx.read_edgelist(path + 'collaboration.edgelist.txt')\n", 28 "G_powergrid = nx.read_edgelist(path + 'powergrid.edgelist.txt')" 29 ] 30 }, 31 { 32 "cell_type": "code", 33 "execution_count": 127, 34 "id": "3c808615", 35 "metadata": {}, 36 "outputs": [ 37 { 38 "name": "stderr", 39 "output_type": "stream", 40 "text": [ 41 "/tmp/ipykernel_131746/874358227.py:4: RuntimeWarning: divide by zero encountered in power\n", 42 " return c*x**(gamma)\n" 43 ] 44 }, 45 { 46 "data": { 47 "image/png": "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fZinJu+915M2EekoIq+LyFwRucXbxyciIiIiIgolbiVtIjJDRPaIyHqH8qEislFENovIAwCgqhtUdTyAKwGc461As9dlI3VKKsIeCUPqlFRkr8v21qGJiAIG60IiCmWsAylUudvSNgvAUPsCEQkHMBXABQA6ARglIp0s24YDWAhgkTeCzF6XjYwFGcjLz4NCkZefh4wFGfyhElFIYV1IRKGMdSCFMreSNlX9BsABh+JeADar6hZVLQYwB8AIy/7zVfUCAOmujikiGSKyWkRW7927t8rnz8zJRGFJYYWywpJCZOZkuhM+UcgrKytD165dcfHFF1co37hxI7p06WK71a9fH1OmTLFtf+GFF3Daaaehc+fOGDVqVNAN6A8kBcUFmPjZRKd14fhPx+ON1W9g1fZVlbYTmWnbtm3o378/OnXqhNNOOw0vvviibZs79UtV+6SmpiItLQ1dunRBjx49fPJ6yLeOFh/F99u/x2s/voaMBRm4Yd4NPB8MMjk5Obj22msrlY8fPx4rV66s0+e+4YYb0KRJE3Tu3LlC+eeff45TTjkF7dq1w3/+8x+Xj3dVB9VV3VSbKf9bAthmd387gDNFpB+ASwFEo4qWNlWdBmAaAPTo0UOr2A95+XlOt23N3+ppzERel70uG5k5mdiavxXJicnIGpiF9DSX1ytM8eKLL6Jjx444fPhwhfJTTjkFa9euBWAkdi1btsQll1wCANixYwdeeukl/P7774iNjcWVV16JOXPmYOzYsT6OPnQdLT6KhZsW4n+//w8L/1yIY6XHnO5XUFyA8QvHAwDCJAwdkjqgS7Mu6NK0C85odga6NOuCZvHNAATG95U848+faUREBJ577jl069YNR44cQffu3TF48GAkJiZWW7+4UwctXboUjRo18v0LI6/bV7gPa3atwdp/1mLNP2uw5p81+HP/nyjXcgBAw5iGKC4rdvrYvPw8HCk6goToBF+GHFLqqp755Zdf0LVr10rl33//PaZOnVrr41dl7NixuP3223HdddfZysrKynDbbbfhyy+/RKtWrdCzZ08MHz4cnTp1cnoMV3VQXdRNXl+nTVWXAVjmjWMdOHYANy24yeX2hOgEqCpnvyHTWLtqWK/8WbtqAKhVZbZp0yYMHjwYS5YsQbt27VBSUoKePXtiwYIFaN26tUfH2r59OxYuXIjMzEw8//zzLvfL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\n", 48 "text/plain": [ 49 "<Figure size 1080x360 with 3 Axes>" 50 ] 51 }, 52 "metadata": { 53 "needs_background": "light" 54 }, 55 "output_type": "display_data" 56 } 57 ], 58 "source": [ 59 "def exponential(x, gamma, c):\n", 60 " return c*np.exp(gamma)\n", 61 "def power_law(x, gamma, c):\n", 62 " return c*x**(gamma)\n", 63 " \n", 64 "Graphs = {'Protein': G_protein, 'Collaboration': G_collab, 'Powergrid': G_powergrid}\n", 65 "fig, ax = plt.subplots(1, 3,figsize=(15, 5))\n", 66 "\n", 67 "c = 0 \n", 68 "for name, G in Graphs.items():\n", 69 " freq = nx.degree_histogram(G)\n", 70 " degrees = range(len(freq))\n", 71 " if c == 2:\n", 72 " popt, pcov = curve_fit(exponential, degrees, freq)\n", 73 " ax[c].loglog(degrees, freq, 'go-', label=fr'$k/m = {round(popt[1], 2)}$') \n", 74 " else:\n", 75 " popt, pcov = curve_fit(power_law, degrees, freq)\n", 76 " ax[c].loglog(degrees, freq, 'go-', label=fr'$\\gamma = {round(popt[1], 2)}$') \n", 77 " \n", 78 " ax[c].set_title(name+'-Network', fontsize=15)\n", 79 " ax[c].legend(loc='best')\n", 80 " c += 1\n", 81 "\n", 82 "ax[0].annotate(\"power-law\", [20, 400], fontsize=13)\n", 83 "ax[1].annotate(\"power-law\", [50, 900], fontsize=13)\n", 84 "ax[2].annotate(\"exponential\", [7, 500], fontsize=13)\n", 85 "plt.suptitle('Cummulative Degree Distribution', fontsize=20)\n", 86 "plt.show()" 87 ] 88 }, 89 { 90 "cell_type": "code", 91 "execution_count": 332, 92 "id": "b9e7a974", 93 "metadata": {}, 94 "outputs": [ 95 { 96 "name": "stdout", 97 "output_type": "stream", 98 "text": [ 99 "FRIENDSHIP PARADOX - Protein\n", 100 "In 74 out of 100 cases the average next neareset neighbor degree is bigger than the actual degree of the node\n", 101 "\n", 102 "FRIENDSHIP PARADOX - Collaboration\n", 103 "In 82 out of 100 cases the average next neareset neighbor degree is bigger than the actual degree of the node\n", 104 "\n", 105 "FRIENDSHIP PARADOX - Powergrid\n", 106 "In 67 out of 100 cases the average next neareset neighbor degree is bigger than the actual degree of the node\n", 107 "\n" 108 ] 109 } 110 ], 111 "source": [ 112 "def avg_nnd(G):\n", 113 " nn = {}\n", 114 " for n in G.nodes():\n", 115 " nnd = list(dict(G.degree(list(G.neighbors(n)))).items())\n", 116 " nnavgd = 1/len(nnd) * sum(d[1] for d in nnd)\n", 117 " nn[n] = nnavgd\n", 118 " return dict(sorted(list(nn.items()), key= lambda x: int(x[0])))\n", 119 "\n", 120 "# Friendship Paradox\n", 121 "for name, G in Graphs.items():\n", 122 " avgnn = list(avg_nnd(G).items())\n", 123 " avgd = sorted(list(dict(nx.degree(G)).items()), key = lambda x: int(x[0]))\n", 124 " paradox = []\n", 125 " for nnd, myd in zip(avgnn, avgd):\n", 126 " if nnd[1] > myd[1]:\n", 127 " paradox.append(True)\n", 128 " else:\n", 129 " paradox.append(False)\n", 130 " print(f\"FRIENDSHIP PARADOX - {name}\") \n", 131 " print(f\"In {int(np.average(paradox)*100)} out of 100 cases the average next neareset neighbor degree is bigger than the actual degree of the node\\n\")\n", 132 " " 133 ] 134 }, 135 { 136 "cell_type": "code", 137 "execution_count": 356, 138 "id": "697396df", 139 "metadata": {}, 140 "outputs": [ 141 { 142 "name": "stdout", 143 "output_type": "stream", 144 "text": [ 145 "Powergrid\n", 146 "k_nn numerical: k_nn = 10.74812990953724\n", 147 "k_nn analytical: k_nn = 11.111262798634812\n", 148 "\n", 149 "Powergrid\n", 150 "k_nn numerical: k_nn = 17.31863657392649\n", 151 "k_nn analytical: k_nn = 11.111262798634812\n", 152 "\n", 153 "Powergrid\n", 154 "k_nn numerical: k_nn = 3.966044118638146\n", 155 "k_nn analytical: k_nn = 11.111262798634812\n", 156 "\n" 157 ] 158 } 159 ], 160 "source": [ 161 "for n, G in Graphs.items():\n", 162 " nnd = list(nx.average_neighbor_degree(G).items())\n", 163 " f_nnavg = 1/len(nnd) * sum(s[1] for s in nnd)\n", 164 "\n", 165 " model_k2 = sum(s[1]**2 for s in list(G.degree()))\n", 166 " model_k1 = sum(s[1] for s in list(G.degree()))\n", 167 " model_knn = k2/k1\n", 168 "\n", 169 " print(f\"{name}\")\n", 170 " print(f\"k_nn numerical: k_nn = {f_nnavg}\")\n", 171 " print(f\"k_nn analytical: k_nn = {model_knn}\\n\")" 172 ] 173 }, 174 { 175 "cell_type": "code", 176 "execution_count": null, 177 "id": "874f5ac1", 178 "metadata": {}, 179 "outputs": [], 180 "source": [] 181 }, 182 { 183 "cell_type": "code", 184 "execution_count": null, 185 "id": "025b45ce", 186 "metadata": {}, 187 "outputs": [], 188 "source": [] 189 }, 190 { 191 "cell_type": "code", 192 "execution_count": null, 193 "id": "2213f26d", 194 "metadata": {}, 195 "outputs": [], 196 "source": [] 197 } 198 ], 199 "metadata": { 200 "kernelspec": { 201 "display_name": "Python 3 (ipykernel)", 202 "language": "python", 203 "name": "python3" 204 }, 205 "language_info": { 206 "codemirror_mode": { 207 "name": "ipython", 208 "version": 3 209 }, 210 "file_extension": ".py", 211 "mimetype": "text/x-python", 212 "name": "python", 213 "nbconvert_exporter": "python", 214 "pygments_lexer": "ipython3", 215 "version": "3.9.7" 216 } 217 }, 218 "nbformat": 4, 219 "nbformat_minor": 5 220 }