657 lines
241 KiB
Text
657 lines
241 KiB
Text
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 163,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"%matplotlib inline\n",
|
|
"plt.style.use(\"fivethirtyeight\")\n",
|
|
"plt.rcParams[\"figure.figsize\"] = 10, 6"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 164,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import dill"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 165,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from sklearn.cluster import AgglomerativeClustering\n",
|
|
"from sklearn.svm import OneClassSVM"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 175,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import dionysus as d"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Generative model"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 348,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"zz_dgms = dill.load(open(\"generative/zz_dgms.dill\", \"rb\"))\n",
|
|
"wrcf_dgms = dill.load(open(\"generative/wrcf_dgms.dill\", \"rb\"))\n",
|
|
"zz_gram1 = dill.load(open(\"generative/zz_gram1.dill\", \"rb\"))\n",
|
|
"wrcf_gram1 = dill.load(open(\"generative/wrcf_gram1.dill\", \"rb\"))\n",
|
|
"zz_distmat = dill.load(open(\"generative/zz_distmat.dill\", \"rb\"))\n",
|
|
"wrcf_distmat = dill.load(open(\"generative/wrcf_distmat.dill\", \"rb\"))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 282,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"d.plot.plot_diagram(zz_dgms[0][1], labels=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 301,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"births, deaths = [], []\n",
|
|
"for p in zz_dgms[0][1]:\n",
|
|
" births.append(p.birth)\n",
|
|
" deaths.append(p.death)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 317,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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GzaoQYMGpscJOmVlZbrlllsqDifffPPNysvLU2ZmJuGowZo1a/Thhx8qMzNTnTp10p49ezRjxgwlJydrzJgxPltPyIYjPj5ekZGRKigo8FheUFCgFi1aGJoq+Dz33HNas2aN1q1bpzZt2pgeJyjs2LFDJ0+eVFpaWsUyl8ulrVu3atmyZfruu+/UsGFDgxPaW2Jiojp27OixrEOHDvr2228NTRQ8XnzxRT311FMaMWKEJKlr1646cuSIXnvtNcJRG1FRUerRo4eysrI0bNiwiuVZWVl64IEHDE4WPKZPn661a9dq3bp16tChg+lxgsaQIUN0yy23eCybNGmS2rVrpylTpigqKsrQZMEhLS1Nubm5Hstyc3OVlJRkaKLgce7cuUpHBSIjI1VWVubT9YRsOKTyv6xPPPGEevbsqV69emnZsmU6duyYxo0bZ3o028vIyNCqVav0/vvvKy4uTvn5+ZKkxo0bKyYmxvB09hYXF1fpIoJGjRqpadOm6tKli6GpgseTTz6pAQMG6JVXXtHw4cO1e/duLV26VDNnzjQ9mu0NGjRIixYtUuvWrdWpUyft3r1bixcv1kMPPeTT9YT05bhS+S8Avv7668rPz1fnzp318ssv66677jI9lu1VdfXU9OnT9dxzzwV4muA3ZMgQLse1YOPGjZo1a5Zyc3N1ww036PHHH9cTTzyhiIgI06PZWmFhoebMmaP169frxIkTSkxM1IgRIzRt2jRdc801PltPyIcDAOBbIft7HAAA/yAcAABLCAcAwBLCAQCwhHAAACwhHAAASwgHYFFcXJzmzp1b59cZMmSIbrvtNh9MBAQW4QAkrVixouI3vi/+adeunQYPHqz169d7/br79+/X3LlzdfjwYR9OC5gV0m85Alg1Y8YM3XjjjXK73SooKNDq1av1r//6r1q2bJmGDx8uqfxjTevXr91fnX/84x+aP3++evfurdatW/tzdCBgCAdwmf79+3scPho3bpw6d+6sjz76qCIctXnrhuLiYjVu3NhvcwImcagKqEZMTIwaN27ssYdx5TmOi4e5vvjiC02bNk0pKSlq1aqVVqxYobFjx0qS7r///opDYCtWrPBYx/79+3X//ferZcuW6ty5s15//fVKc2RmZurOO+/U9ddfr+TkZPXu3Vvvvvuun75qoHrscQCXOXv2rE6ePClJOnHihN59913l5+fX6t1Fp0+frri4OE2dOlVnz57VXXfdpSeeeEJLlizR1KlTK96avlevXh7r+5d/+Rf95Cc/0bBhw/Tpp5/qpZdeUpcuXSo+7vM3v/mNMjIyNHToUD3++OMqLS3V/v37tX37dt7pGUYQDuAyFz8A56KoqCgtWrRIQ4YMqfG5jRs31vr16z32Tu68804tWbJEffv21d13313pOfn5+XrzzTf18MMPS5L+7d/+Td26ddN7771XEY6NGzeqc+fOWr58eV2+NMBnCAdwmfnz51d8+tzx48f18ccfa8qUKWrSpIkefPDBap87duzYWp80vyg6OlqjR4+uuB0VFaXU1FQdOnSoYlmTJk109OhRffXVV0pNTbX0+oA/cI4DuExqaqr69u2rvn37atSoUfrwww/VpUsXTZ8+XSUlJdU+15uP1m3ZsqXq1fP8axgXFyen01lxe/LkyYqNjVW/fv3Uo0cPPfPMM9q0aZPldQG+QjiAatSrV0+9e/fW8ePHdeDAgWofGx0dbfn1r/yYz4vc7ksfk9OxY0ft3LlTy5cvV3p6ujZu3KgHHnhAGRkZltcH+ALhAGpw4cIFSeWX2JrSqFEjDR06VG+88YZ2796tUaNGKTMzU999952xmRC+CAdQjdLSUmVlZSkqKqriqigrLv4ux+WHnqw6deqUx+369etXfHb5mTNnvH5dwFucHAcu86c//Ul5eXmSpIKCAq1Zs0a5ubl65pln1KRJE8uv1717d0VGRuq1117TmTNnFB0drZ49e1o6H/Lggw8qISFBaWlpatGihQ4ePKilS5eqa9euFSfygUAiHMBl5s2bV/Hf11xzjVJSUrRw4UKvf1+iRYsWev3117Vw4UL9/Oc/l8vl0uLFiy2FY9y4cfroo4/05ptvqrCwUNddd51++tOf6tlnn610Yh0IhAin0+mu+WEAAJTjnysAAEsIBwDAEsIBALCEcAAALCEcAABLCAcAwBLCAQCwhHAAACwhHAAAS/4/CDcT82yG8SAAAAAASUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"fig, ax = plt.subplots()\n",
|
|
"ax.set_aspect('equal')\n",
|
|
"ax.scatter(births, deaths)\n",
|
|
"ax.plot([0, max(births)], [0, max(births)])\n",
|
|
"ax.set_xlabel(\"Births\")\n",
|
|
"ax.set_ylabel(\"Deaths\")\n",
|
|
"fig.savefig(\"fig/diagram.pdf\", transparent=True, pad_inches=0.3, bbox_inches=\"tight\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 354,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.matshow(zz_gram1)\n",
|
|
"plt.savefig(\"gen_zz_gram1.pdf\", transparent=True, pad_inches=0.3, bbox_inches=\"tight\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 350,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.image.AxesImage at 0x7f86755d7748>"
|
|
]
|
|
},
|
|
"execution_count": 350,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.matshow(wrcf_gram1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 352,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"clf = AgglomerativeClustering(n_clusters=10, affinity=\"precomputed\", linkage=\"average\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 353,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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13l0W//MmTOux0jl5fz588rOzr7mogDTdKzvr68fDLW6DBeHw6GI+v5WlwEAgNd5dOX0xhtv1M6dO/N9f/PmzWrWrNk1FwUAAADf5FE4HThwoBYvXqzly5crJydH0qWH7p87d05//etftXnzZiUkJJRIoQAAACj/PLqtP2zYMO3Zs0fDhg1TtWrVJEmDBg2S0+lUdna2hgwZoocffrhECgUAAED55/FzTl9//XU99NBDWr16tfbv36+cnBzdcMMN6tWrl+Li4kqiRgAAAPgIj8OpJMXExCgmJsbbtQAAAMDHeTTmtFatWlqxYkW+769atUq1atW65qIAAADgmzwKp//50P285OTk5Pn8UwAAAKAoPAqnkgoMn//85z9lt/NgcAAAABRPoWNOk5KS9Le//c31ety4cZo4ceJV7U6dOqXTp0/roYce8m6FAAAA8BmFhtPg4GBFRkZKkg4cOKC6deuqbt26bm1sNpuqVq2qli1basiQISVTKQAAAMq9QsNp37591bdvX0nS/fffr2effVYdOnQo8cIAAADgezx6lNSGDRtKqg4AAADAsx9Ebd26Ve+8847btA8++EC33HKLIiIilJiY6PqzpgAAAICnPAqnL730ktLS0lyv9+3bpyeffFIVKlRQy5YtNWfOHLcfTwEAAACe8Cic7tmzR23atHG9Xrp0qfz9/fXZZ59pxYoVio+P16JFi7xeJAAAAHyDR+H0zJkzbs8x3bRpkzp27Kjq1atLkmJjY3XgwAHvVggAAACf4VE4DQ0N1XfffSdJ+uWXX/TNN9+oU6dOrvdPnz6tihU9+o0VAAAA4OJRkuzevbveeecdnT9/Xjt27JC/v7+6du3qev9f//qXwsLCvF4kAAAAfINH4XTcuHE6evSoli9frurVq+vtt99WcHCwpEtXTdevX6/HH3+8RAoFAABA+edROK1atarmzJmT53uBgYHavXu3AgICvFIYAAAAfI/XBohWqFBBNWrU8NbiAAAA4IM8CqdTp04ttI3NZtPYsWOLXRAAAAB8l0fhdMqUKfm+Z7PZlJubSzgFAABAsXkUTk+ePHnVtJycHB04cEDJyclKS0vTypUrvVYcAAAAfItHzznNcwEVKig8PFyTJk1So0aNuGoKAACAYrvmcPqf4uLi9Pe//92biwQAAIAP8Wo43blzpypU8OoiAQAA4EM8GnO6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VHp6urp06VLgvLVq1VJISEhJllcmVaxYscj9smLFCv32229KSkpSlSpV1Lx5c+3du1dvv/22RowYIZvNVsLVmuvKE/TChQtVrVo19erVq8D5atSowX4p6d5779W9994rSXrqqafc3svNzVVSUpJGjx7tOgYmJSUpIiJCK1euVEJCQp7LTEpK0u233+664tK0aVNt2bJFSUlJmjt3bglujfUK6s8aNWpozZo1btNef/11tW/fXt99951atGhR4LKDg4MVFBTk3YINV1B/Xla5cmWPvsu+eq4vrC+v7MOPPvpIjRs31m233Vbosot7nve52/oXLlzQV199pU6dOrlN79Spk7788ss859m2bdtV7e+66y7t3LlTv//+e4nVWhZlZmYqJydHdru90LaPPvqoGjdurM6dO2vt2rWlUF3Z8OOPPyoyMlLR0dEaNGiQfvzxx3zbbtu2TbGxsapSpYpr2l133aVffvlFGRkZpVBt2ZCbm6uFCxcqPj7era/ykpiYqBtvvFEdO3bUvHnzlJOTU0pVlh0ZGRk6cuSI23GxSpUqiouLy/c4Kknbt2/P81ha0Dy+6syZM5JUpGPpnXfeqaZNm6pHjx76xz/+UdKllRlbt25V48aN1aZNG40aNUrHjh0rsD3n+sJlZmZq1apVrot7hSnued7nwunx48eVnZ2t4OBgt+nBwcE6evRonvMcPXo0z/YXL17U8ePHS6zWsigxMVFRUVFq165dvm0CAwM1ceJEzZ8/XytWrNAdd9yhhIQELVu2rBQrNdMtt9yit99+WytXrtSbb76pI0eO6N5779WJEyfybJ/fvnn5PVySkpKijIwMDRgwoMB2zz//vObNm6c1a9aod+/eGj9+vF577bVSqrLsOHLkiCR5dBy9PJ+n8/iiCxcuaPz48brvvvtUv379fNuFhoZq+vTpWrhwoRYuXKiIiAj17Nmz0N9Q+IK7775bf/vb37R27VpNmjRJO3bsUI8ePXT+/Pl85+FcX7iVK1fqwoUL6tevX4HtrvU875O39VEynn/+eaWnp2vjxo0FjpMMCgpyGw/ZqlUrnThxQm+88Ybi4+NLo1Rj3XPPPW6vb7nlFrVs2VKLFy/WiBEjLKqq7FuwYIFat26tqKioAtuNHTvW9d/R0dHKycnRa6+9pmeffbakSwQkSRcvXtTQoUN16tQpLVmypMC2ERERioiIcL1u166dDhw4oDfffFNxcXElXarR+vTp4/rvFi1aqGXLloqKitInn3yiHj16WFhZ2bZgwQJ17dq10HHN13qe97krp0FBQfLz87vq8v6xY8dUp06dPOepU6dOnu0rVqzoc+N88jNu3Dh98MEHWrduncLDwz2ev02bNtq/f7/3CyvjAgMDFRkZmW/f5LdvXn4Pl/rjo48+KvJtqP/Upk0bnT59mit7V7g8hsyT4+jl+Tydx5dcvHhRgwcP1rfffqu1a9eqVq1aHi+DY2ne6tatq3r16hXYN5zrC/bNN99o586dxTqWSp7tmz4XTiuaJqn3AAANPklEQVRVqqSWLVsqJSXFbXpKSopiYmLynKddu3Z5tm/VqpWuu+66Equ1rHjuuedcwbSwxx7lZ9euXfwIJQ9ZWVlyOBz59k27du20detWZWVluaalpKSobt26CgsLK60yjbZ48WJVrlzZ7UpKUe3atUv+/v6qUaNGCVRWdoWFhSkkJMTtuJiVlaWtW7fmexyVpLZt23p07PUlv//+uxISEvTtt99q/fr1xT4ecizN2/Hjx/XLL78U2Dec6wu2YMEChYWF6c477yzW/J7smz55W3/48OEaNmyY2rRpo5iYGM2bN0+HDx92/cJ02LBhkuR6BEVCQoLeeecdJSYmKiEhQV9++aUWL16s5ORky7bBFGPGjNGyZcu0aNEi2e1211i0qlWrKjAwUJL0wgsvaMeOHVq3bp2kS2HhuuuuU3R0tCpUqKCNGzcqOTlZf/3rX63aDGNcHmd2/fXX69dff9W0adN07tw51/ieK/uyb9++mjp1qp566imNGTNG+/bt04wZMzR27Fif/qX+Zbm5uXrvvffUu3dv1/542Zw5c/TOO+9o+/btkqSPP/5YR48eVdu2bVWlShVt2bJFkydP1sCBA1W5cmUryrdUZmam6ypHTk6OfvrpJ33zzTeqWbOmGjRooCeffFLTp09XRESEGjdurFdffVVVq1ZV3759Xcvo0aOH2rRp43oKyhNPPKGuXbvq9ddfV7du3bRhwwZt2bJFGzdutGQbS1NB/Vm3bl0NHDhQO3fu1JIlS2Sz2VzH0urVq7t+xHfluentt99Ww4YN1axZM124cEHLly/Xhx9+qPfee8+CLSxdBfVnzZo1NWXKFPXo0UMhISE6cOCAXnzxRQUHB+v+++93LYNz/SWFfdelS487W7FihUaNGpXnucXb53mfDKe9e/fWiRMnNG3aNB05ckTNmjXT8uXL1bBhQ0nSTz/95NY+PDxcy5cvd/1YIjQ0VFOnTi3Xj5Yoqstf2iv74rnnntO4ceMkXXq+5A8//OD2/quvvqqDBw/Kz89PjRo10syZM31+vKkk/fzzzxoyZIiOHz+u2rVr65ZbbtGnn37q2jev7MsaNWpo9erVGjNmjDp27Ci73a7hw4czPvX/bNmyRd9//73mzJlz1XvHjx+Xw+Fwvb7uuuuUnJys//qv/1JOTo7Cw8M1btw4Pf7446VZsjF27typ7t27u15PnjxZkydPVr9+/ZSUlKSnn35av/32m5599lk5nU61adNGq1atcnvG6Q8//OD2g57LFwMmTZqkl19+WTfccIPmzZtX7p9xKhXcn4mJifroo48k6aqrUrNmzdLDDz8s6epz0++//66//OUv+vnnn+Xv7+86l11+LFB5VlB/Tp8+Xbt379bSpUt16tQphYSE6Pbbb9f8+fPd9k/O9ZcU9l2XLj028uzZs6598UrePs/bnE4nf0oGAAAARvC5MacAAAAwF+EUAAAAxiCcAgAAwBiEUwAAABiDcAoAAABjEE4BAABgDMIpAFzh/fffl91udz2gH5eeffiff2gDAEoK4RRAubBnzx4NGjRI0dHRCgkJUWRkpLp27arJkydbXZrHXnvtNW3YsMHqMgDAEoRTAGXetm3b1KFDB+3YsUP9+/fXtGnTlJCQoBo1amjGjBlWl+ex6dOn68MPP7S6DACwhE/++VIA5curr76qgIAApaSkqFatWm7vHT161KKqyoezZ8+qatWqVpcBwIdw5RRAmffDDz8oMjLyqmAqSXXq1HH9t91uz/M2f1RUlJ588smrpl/+2/E33nijrr/+ej322GNXhd1u3bqpbdu22rNnj7p37666deuqWbNmeuONN65a3vnz5zVlyhS1bt1aderUUbNmzTRu3DidO3fOrcazZ89qyZIlstvtstvt6tatm06dOqVatWrprbfecrU9e/asateurXr16un33393TZ80aZJCQkKUlZXlmpaamqquXbuqXr16atiwoeLj47V79263+i6PK929e7eGDh2q8PBwxcbGXrUdl/3yyy+KiYlR69atdfDgwXzbAYAnuHIKoMxr2LCh0tPTtWvXLkVFRXltuYmJiapatarGjh2rgwcPas6cOXI4HEpJSVGlSpVc7U6fPq2+ffvq/vvv1wMPPKC1a9dqwoQJat68ue655x5JUm5urh555BF98cUXGjBggCIjI/Xdd99p7ty52rNnj1atWiWbzabZs2dr1KhRat26tR577DFJlwJ2jRo11Lx5c6WlpWnkyJGSLg1nyM7O1rlz57Rz5061a9dOkrR161a1bt1a/v7+kqR//OMf6t27t8LCwpSYmKisrCwlJyfrvvvu0+bNm9W4cWO37R40aJDCwsI0fvx4XbhwIc++OXDggHr27KlKlSrpo48+UmhoqNf6HYBvI5wCKPNGjRqllJQUdejQQa1atVJsbKxuv/12dejQwRXQimvDhg2qXLmyJCkyMlIjR47U0qVLNWDAAFebI0eOKCkpSf369ZMkPfroo4qKitLChQtd4XTlypX67LPPtH79et12222ueVu1aqWhQ4cqJSVFnTp1Unx8vP70pz8pPDxc8fHxbrXExsZq5cqVys3Nlc1mU1pamlq0aKGsrCylpaWpXbt2unDhgnbs2KHhw4e75hs/fryqV6+uTz/91HV1uU+fPmrfvr1efPFFvffee27riYiI0MKFC/Ptk/3796tHjx6y2+1as2aNateuXZyuBYA8cVsfQJnXoUMHffzxx+rcubP+/e9/a+bMmYqPj1eTJk20aNGiYi83ISHBFUwlqV+/fqpRo4Y2btzo1q5KlSpuQbJSpUpq3bq1fvzxR9e01atXq3HjxmrWrJmOHz/u+nfrrbfKZrNpy5YthdYTFxenkydPum7Hp6WlKS4uTrGxsUpLS5Mk7dy5U1lZWa7b8YcPH9Y333yjfv36uQ17aNSokbp06aJNmzYpOzvbbT2DBw/Ot4bvvvtOXbt2VZ06dbRhwwaCKQCvI5wCKBdiYmK0ZMkSZWRkaMuWLRo/frwkacSIEfr888+LtcxGjRq5va5YsaLCwsJ04MABt+l169ZVhQruh1O73S6n0+l6/f3338vhcKhRo0Zu/1q0aKHc3FwdO3as0HouB860tDTXFdJbb71VcXFxSk9PV05OjrZu3So/Pz/FxMRIkmssaERExFXLa9Kkic6ePavjx4+7TQ8PD8+3hv79+6ty5cpas2aN7HZ7oTUDgKe4rQ+gXLnuuusUFRWlqKgotW3bVj179tTy5cvVoUOHfOfJycm5pnX6+fnlOT03N9dtHZGRkZoyZUqebYsyZjM0NFQ33nij0tLSFBUVpaysLMXFxens2bM6ffq0du3apa1bt+qmm25StWrVircxunQlOD89evTQ4sWLtWTJEg0bNqzY6wCA/BBOAZRbbdq0kXTp1rZ06WrmqVOn3NpcuHDB9f6Vvv/+e3Xq1Mn1+uLFi8rIyNCtt97qcS033HCDvvrqK3Xo0EE2m63AtgW9Hxsbq02bNik6OloREREKDg5WcHCw6tevr9TUVKWnp6t///6u9g0aNJAkORyOq5blcDhUtWpVBQUFFXk7JkyYoCpVqrh+LPbII48UeV4AKApu6wMo8z7//PM8r35++umnkv7/lvYNN9zgGpt52bvvvnvVmMvL5s+fr/Pnz7teL1myRKdOnVLnzp09rrFXr146evSo5s6de9V758+f15kzZ1yvAwIC3IYE/KfY2FgdPnxYixcvVlxcnNv0d999V6dOnXKbHhoaqptvvllLly7VyZMnXdN/+OEHffzxx7r77rvzvfKbn1dffVXx8fF6+umntXr1ao/mBYDCcOUUQJmXmJiozMxM3X///WratKlycnL09ddfa9myZapVq5brGaYDBgzQH//4Rz366KPq2LGj/vWvf2nTpk0FXjns3r27+vTpowMHDmjOnDlq3ry561f5noiPj9fatWs1ZswYffHFF2rfvr1yc3O1b98+rV69Wu+++65uv/12SZd+wf/555/rrbfeUr169VS7dm3XsITLwdPhcGjMmDGu5cfFxWnlypWSdNWzSSdOnKjevXvrnnvu0cCBA12PkvL399ef//xnj7fFZrNp1qxZOnv2rIYOHaqAgIBiBXYAyAvhFECZN3HiRK1bt06bN2/WokWLdP78eYWGhurBBx/UM888o7CwMEnSwIEDlZGRoYULF2rTpk2KjY3VmjVr1KNHjzyXO2XKFK1bt05Tp07V+fPn1aVLF73yyituzzgtqgoVKmjRokVKSkrSkiVL9NFHH8nf31/h4eEaPHiwbrrpJlfbl19+WaNHj9aUKVN09uxZ3Xrrra5weuONNyo0NFSHDx++6sqpJDVt2vSqX9DfcccdWr16tV5++WW9/PLLqlixomJjYzVhwoSrnnFaVH5+fpo7d6769++vgQMHatmyZQWO6wWAorI5nc7cwpsBAAAAJY8xpwAAADAG4RQAAADGIJwCAADAGIRTAAAAGINwCgAAAGMQTgEAAGAMwikAAACMQTgFAACAMQinAAAAMMb/Arm/Xu9zlSsbAAAAAElFTkSuQmCC\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"clf.fit(zz_gram1)\n",
|
|
"fig, ax = plt.subplots()\n",
|
|
"ax.step(range(len(clf.labels_)), clf.labels_, where='post')\n",
|
|
"ax.set_xlabel(\"Subnetwork\")\n",
|
|
"ax.set_ylabel(\"Cluster\")\n",
|
|
"fig.savefig(\"gen_zz_k.pdf\", transparent=True, pad_inches=0.3, bbox_inches=\"tight\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 340,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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uAAAuIEqJdLBgwfr3Xff1blz57R9+3Y1bNhQgwYNsm//4Ycf1K5du2ov8hIfHx/l5+c7rLu07OPjI0ny9fUts82l7QAAADC/Kn3xbOrUqYqKilJ6erry8/M1Z84c+9SAkydPatWqVerbt2+NFCpJ4eHh2rJli86ePWtfl5GRodatW9vDdffu3ZWRkeGwX0ZGhqxWa43VBQAAgNqlSndymzRpUu4XuJo2bardu3ercWPnv4BTWFio/fv3S5KKi4t15MgR7dy5Uy1btlTbtm314osvavv27Vq5cqWkP36YYsaMGRo/frymTJmin376SW+88YaeeuopeXh4SJLGjRunQYMG6fXXX9edd96p1atXKzMzU+vWravKqQIAAMCNVelOboUd1amjFi1aqF69ek7vs2PHDt1666269dZbdebMGSUmJurWW2/VtGnTJEk5OTk6cOCAvX2LFi20fPlyHT16VH379tWTTz6pCRMmaOLEifY2VqtVqampSktLU69evfTRRx8pNTWVZ+QCAABcRap0J3fGjBmVtvHw8NBTTz3lVH+9e/dWQUFBudvLerbtjTfeqM8++6zCfqOjoxUdHe1UDQAAADCfKoXc6dOnl7vNw8NDJSUlVQq5AAAAQE2oUsj97bffSq0rLi7WoUOHlJKSoqysLC1ZsqTaigMAAAAuxxXPya1Tp44CAgL08ssvKzAwkLu4AAAAMFy1ffFMkiIiIvTFF19UZ5cAAABAlVVryN2xY4fq1KnWLgEAAIAqq9Kc3MWLF5e5/sSJE8rKytKqVav00EMPVUthAAAAwOWqUsgdP358udu8vLz0t7/9jTm5AAAAMFyVQu73339fap2Hh4csFouaNWtWbUUBAAAAV6JKIdff37+m6gAAAACqDd8SAwAAgOlUeCc3NDRUHh4eVerQw8ND33333RUVBQAAAFyJCkNur169qhxyAQAAAKNVGHKTk5NdVQcAAABQbZiTCwAAANOpNOTm5OSoe/fuevnllyts9/LLLys8PFz/+c9/qq04AAAA4HJUGnLnzp2r3377TZMnT66w3eTJk3X8+HHNnTu32ooDAAAALkelIfeLL77QkCFDKv2xh2bNmumee+7RZ599Vm3FAQAAAJej0pB74MABderUyanOOnbsqP37919xUQAAAMCVqDTkenh4qLi42KnOiouLeeQYAAAADFdpyPX3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LnFpvt9f/vIX/ec//1FSUpJ+//13+1ytP4/TvffeqxkzZmj8+PGaMmWKfvrpJ73xxht66qmnTP1khUtKSkq0YMECDR061P5eumTevHl699139c0330iSPvvsM+Xl5al79+5q1KiRMjMzlZiYqJEjR6pBgwZGlF9jCgsL7Xd3iouLdeTIEe3cuVMtW7ZU27Zt9eijj2rmzJkKCgpS+/bt9eqrr6pJkya699577X1ERUUpLCzM/qSYcePGadCgQXr99dd15513avXq1crMzNS6desMOcfqUtFYtW7dWiNHjtSOHTu0ePFieXh42K9fzZs3t3/J8c/X+jlz5sjf318hISEqKipSenq61qxZowULFhhwhtWnorFq2bKlpk+frqioKPn6+urQoUP6xz/+IW9vb9111132Pq6Wz8XK/g5Kfzyi7pNPPtFjjz1W5vWaz8WqI+RWo6FDh+r48eNKSkpSbm6uQkJClJ6eLn9/f0nSkSNHHNoHBAQoPT3d/uUXPz8/zZgxw60fk+KMSxerP5/n008/ralTp0r64xmnBw4ccNj+6quv6vDhw/L09FRgYKBmzZpl+nlHv/76q8aOHatjx47pmmuu0c0336wvv/zS/p768zi1aNFCy5cv15QpU9S3b19ZLBZNmDDhqpm/m5mZqX//+9+aN29eqW3Hjh2TzWazL9erV08pKSn6f//v/6m4uFgBAQGaOnWqHn74YVeW7BI7duzQ4MGD7cuJiYlKTExUbGyskpOTNXnyZJ05c0ZPPvmkCgoKFBYWpmXLljk8I/fAgQMOX6669D/yL7/8sqZNm6brrrtOqampbv2MXKnisUpISNDatWslqdSdttmzZ+v++++XVPpaf/78eT333HP69ddf1bBhQ/tnw6VHSrmrisZq5syZ2r17tz766COdOHFCvr6+6t27t+bPn+/wvrpaPhcr+zso/fF4zdOnT9vfR3/G52LVeRQUFJj/p5AAAABwVWFOLgAAAEyHkAsAAADTIeQCAADAdAi5AAAAMB1CLgAAAEyHkAsAAADTIeQCgIssWrRIFovF/oMU+ON5of/9ozAAUF0IuQBQgT179mj06NEKDQ2Vr6+vOnTooEGDBikxMdHo0qrstdde0+rVq40uAwBcgpALAOXYtm2bIiMjtX37do0YMUJJSUmKi4tTixYt9MYbbxhdXpXNnDlTa9asMboM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\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"clf.fit(wrcf_gram1)\n",
|
|
"fig, ax = plt.subplots()\n",
|
|
"ax.step(range(len(clf.labels_)), clf.labels_, where='post')\n",
|
|
"ax.set_xlabel(\"Subnetwork\")\n",
|
|
"ax.set_ylabel(\"Cluster\")\n",
|
|
"fig.savefig(\"gen_wrcf_k.pdf\", transparent=True, pad_inches=0.3, bbox_inches=\"tight\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 341,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"Text(0,0.5,'Cluster')"
|
|
]
|
|
},
|
|
"execution_count": 341,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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lV2hV5LefPNNDR8+XCtXrtTBgwdVVFSkG264QUOGDFF4eHh11AgAAABcFbtDrySZzWaZzWZH1wIAAABUC7vm9LZq1UqffPJJmdtXrFihVq1aXXVRAAAAgCPZFXr/+49RlKaoqKjU5/cCAAAAzmRX6JVUbqj99ttvZTKZrqogAAAAwNEqnNOblJSk9957z7o8depUvfLKKyXanTp1SqdPn9bw4cMdWyEAAABwlSoMvV5eXurQoYMk6ciRI2rdurVat25t08bNzU1NmjRRly5dNHbs2OqpFAAAAKiiCkPv/fffr/vvv1+SdM899+jpp59WREREtRcGAAAAOIpdc3rXrl3r0MC7detWDR8+XMHBwTKZTFq0aFGF+/z4448aNGiQfH19FRwcrBkzZpT4gt2qVatkNpvl7e0ts9msNWvWOKxmAAAA1D52Pad327Zt+uGHH/Too49a1y1fvlwJCQk6deqU7rvvPk2bNk316lUuS589e1YdO3ZUTEyMxo0bV2H706dPW/8IxqZNm2SxWDRhwgQ1btxYkyZNkiTt2LFDo0eP1tSpUzV48GCtWbNGo0aN0ueff65bb73VnsMFql36L+f1ZGa+DhdcdnYpkqQ213hoduPz6nudh7NLcRrHnpPG0pZfqrx3u6bueivcVKfPh6twpd9Vrgugauy60/vaa68pMzPTuvzTTz/p8ccfV7169dSlSxfNmzfP5ktvFRkwYIBeeOEFRUVFVSoof/LJJzp37pySkpLUsWNHRUVFafLkyZozZ471bm9SUpJ69+6tKVOmKCgoSFOmTNFtt92mpKQkew4VqBGu8iF6xa8X6unJzHxnl+FUrnRODhdcrvPnw1VwXQC1n113evft26c777zTurxkyRJ5eHjoq6++UvPmzfX444/r448/1vjx4x1eqPTHXdyePXuqUaNG1nX9+/fXa6+9psOHD8vf31/ffPONHnvsMZv9+vfvr3nz5pXbt8ViqZaanf1adUFtHs/DBY2dXUIJhwsu1+oxvVqudk7q+vn4b84cByNeF7X7urI9H847Flepw3gqM5aBgYF29WlX6D1z5ozNc3g3btyovn37qnnz5pKknj17Vuv82dzcXLVp08ZmnZeXl3Wbv7+/cnJyrOv+u01ubm65fds7cFVlsVhq7LXqglo/nlfxT9/VqVaP6dVywXNSp8/H/+f033WDXRdOH8+r9afz4bRjcZU6DKa6rk+7Qq+vr6/2798vSTp+/Lh2796tUaNGWbefPn1a9evb1SWA/5Ife51TXtc03/U+0F3F1ZyTqr5xcz5cnzN+V7kugKtjV0IdPHiw3n//fV24cEE7d+6Uh4eHBg0aZN3+ww8/qF27dg4v8gpvb2/l5eXZrLuy7O3tLUny8fEptc2V7QAAAKh77Poi29SpUxUZGam0tDTl5eVpzpw51qkEp0+f1po1a9S3b99qKVSSwsLCtG3bNp0/f966Lj09Xa1bt7aG7e7duys9Pd1mv/T0dJnN5mqrCwAAAK7Nrju9TZo0KfMLYU2bNtXevXvVuHHlJ/sXFBTo4MGDkqSioiIdO3ZMu3fvVsuWLdW2bVu9/PLL2rlzp1avXi3pjz+UMWPGDI0fP15TpkzRTz/9pLfeekvPPPOM3NzcJEnjxo3ToEGD9Oabb+ruu+/W2rVrlZGRoQ0bNthzqAAAADAQu+70lttRvXpq0aKFGjRoUOl9du3apdtvv1233367zp07p4SEBN1+++2aNm2aJCk7O1uHDh2ytm/RooVWrlyp48ePq2/fvnr66ac1YcIETZw40drGbDYrJSVFqamp6tWrl5YsWaKUlBSe0QsAAFCH2XWnd8aMGRW2cXNz0zPPPFOp/nr37q38/LKfNVjas3VvvvlmffbZZ+X2GxUVpaioqErVAAAAAOOzK/ROnz69zG1ubm4qLi62K/QCAAAANcGu0Pvbb7+VWFdUVKQjR44oOTlZmZmZWrZsmcOKAwAAABzhquf01qtXT/7+/nr11VcVEBDAXV4AAAC4HId9kU2SwsPD9cUXXziySwAAAOCqOTT07tq1S/XqObRLAAAA4KrZNad38eLFpa4/deqUMjMztWbNGj3yyCMOKQwAAABwFLtC7/jx48vc5unpqb/+9a/M6QUAAIDLsSv0fv/99yXWubm5yWQyqVmzZg4rCgAAAHAku0Kvn59fddUBAAAAVBu+dQYAAADDK/dOb0hIiNzc3Ozq0M3NTd99991VFQUAAAA4Urmht1evXnaHXgAAAMDVlBt6k5KSaqoOAAAAoNowpxcAAACGV2Hozc7OVvfu3fXqq6+W2+7VV19VWFiY/v3vfzusOAAAAMARKgy9c+fO1W+//abJkyeX227y5Mk6efKk5s6d67DiAAAAAEeoMPR+8cUXGjJkSIV/fKJZs2a677779NlnnzmsOAAAAMARKgy9hw4dUqdOnSrVWceOHXXw4MGrLgoAAABwpApDr5ubm4qKiirVWVFREY84AwAAgMupMPT6+flp586dlers//7v//hTxQAAAHA5FYbegQMHavny5Tpw4EC57Q4cOKBly5bpzjvvdFhxAAAAgCNUGHonTZqkpk2bavDgwVq2bJkuXbpks/3SpUtatmyZIiMj1axZM02cOLHaigUAAACqoty/yCZJnp6e+uSTT/TQQw/pscce0xNPPKH27duradOmKigo0E8//aTz58+rdevWWrJkiTw9PWuibgAAAKDSKgy9ktSlSxdlZmZq/vz52rBhg/bt26czZ86oWbNmCgkJ0V133aVRo0apRYsW1V0vAAAAYLdKhV5Jat68uSZPnlzhH6kAAAAAXE2Fc3oBAACA2o7QCwAAAMMj9AIAAMDwnB56k5OTFRISIh8fH0VERCgzM7PMto8//rhMJlOJnzZt2ljbZGRklNqmoucMAwAAwLgq/UW26rBixQrFx8frjTfeUI8ePZScnKxhw4YpKytLbdu2LdF++vTpeumll2zWDRw4UOHh4SXaZmVlqWXLltbla6+91uH1AwAAoHZw6p3e2bNna8SIERo5cqSCgoKUmJgoHx8fpaSklNq+RYsW8vHxsf4cOnRIP//8s0aOHFmirZeXl01bd3f36j4cAAAAuCinhd7CwkJ999136tevn836fv36afv27ZXq46OPPlJwcLDMZnOJbX369FFQUJAiIyO1efNmh9QMAACA2slp0xtOnDihy5cvy8vLy2a9l5eXcnNzK9z/1KlT+vTTT/XCCy/YrPf19dXMmTPVrVs3FRYWaunSpYqKitK6detKnQZxhcViqdqBVEFNvlZdULvHs7HNkvOOxVXqcAWOHYuq7c/5KI1zx8EVzokrXJuuwhXOhyvVYTyVGcvAwEC7+nTqnN6rkZaWpqKiIg0fPtxmfWBgoM0ghIWF6ciRI3rnnXfKDb32DlxVWSyWGnutuqDWj+eWX2wWnXYsrlKHK3DgWFT5+uR8lOD033VXOCeucG26Clc4H65Uh8FU1/XptOkNnp6ecnd3V15ens36vLw8eXt7V7j/Rx99pMjISJsvq5UlNDRUBw8erHKtAAAAqN2cFnobNmyoLl26KD093WZ9enp6qXN0/9vOnTv1ww8/6JFH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PDy8zPdSSfrmm29KfT8tb5+66MyZM5JUqffSPn36KCgoSJGRkdq8eXN1l1ZrbNu2Te3bt1doaKieeOIJ5eXllduez/rKKSgo0IoVK6w3DitSlc96Qq+DnDhxQpcvX5aXl5fNei8vL+Xm5pa6T25ubqntL126pBMnTlRbrbVRfHy8OnfurLCwsDLbNG3aVK+88ormz5+vTz75RLfffrtiY2O1dOnSGqzUNd16662aM2eOli1bpnfeeUc5OTkaMGCATp48WWr7sq7NK9vwH+np6Tp8+LAeeeSRcts999xzSklJ0aeffqqhQ4fq+eef1xtvvFFDVdYeOTk5kmTXe+mV/ezdp64pLCzU888/rzvvvFPXXXddme18fX01c+ZMLVy4UAsXLlRgYKCioqIq/I5KXfCXv/xF7733nlatWqVXX31VO3fuVGRkpC5cuFDmPnzWV86yZctUWFiomJiYcttdzWc90xvg8p577jllZWVpw4YN5c5D9fT0tJlv2rVrV508eVJvv/22oqOja6JUl3XHHXfYLN96663q0qWLUlNTNXHiRCdVZQwfffSRunXrps6dO5fb7plnnrH+d0hIiIqKivTGG2/o6aefru4SAV26dEmPPfaYTp06pcWLF5fbNjAwUIGBgdblsLAwHTlyRO+8847Cw8Oru1SXdt9991n/++abb1aXLl3UuXNnff7554qMjHRiZbXfRx99pEGDBlU4d/xqPuu50+sgnp6ecnd3L/HPHHl5efL29i51H29v71Lb169fv87NoyrL1KlTtXz5cq1evVr+/v527x8aGqqDBw86vrBarmnTpurQoUOZY1PWtXllG/6Ql5en9evXV/qf4/5baGioTp8+zZ3IP7kyR8+e99Ir+9m7T11x6dIljRkzRj/++KNWrVqlVq1a2d0H76Wla926tdq0aVPu2PBZX7Hdu3dr165dVXovlSp/fRJ6HaRhw4bq0qWL0tPTbdanp6fLbDaXuk9YWFip7bt27aoGDRpUW621xbPPPmsNvBU9Xqsse/bs4YtDpTh//rwsFkuZYxMWFqZt27bp/Pnz1nXp6elq3bq12rVrV1NlurzU1FRdc801Nnd/KmvPnj3y8PBQixYtqqGy2qtdu3by8fGxeW88f/68tm3bVuZ7qSR1797drvffuuLixYuKjY3Vjz/+qDVr1lT5/ZD30tKdOHFCx48f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\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"clf.fit(zz_distmat)\n",
|
|
"fig, ax = plt.subplots()\n",
|
|
"ax.step(range(len(clf.labels_)), clf.labels_, where='post')\n",
|
|
"ax.set_xlabel(\"Subnetwork\")\n",
|
|
"ax.set_ylabel(\"Cluster\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 342,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"Text(0,0.5,'Cluster')"
|
|
]
|
|
},
|
|
"execution_count": 342,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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LgAAAJzOppD73XfflVrn5uYmk8mkli1b2q1RAAAAQE3YFHL9/Pxqqx0AAACA3fAtMQAAABhOhU9yQ0JC5ObmZtMB3dzc9O2339aoUQAAAEBNVBhy+/XrZ3PIBQAAAJytwpCbnJzsqHYAAAAAdsOcXAAAABhOpSE3JydHvXv31ksvvVRhuZdeeklhYWH673//a7fGAQAAANVRachdsGCBfv31V02bNq3CctOmTdOpU6e0YMECuzUOAAAAqI5KQ+7nn3+uESNGVPrHHlq2bKm77rpLn376qd0aBwAAAFRHpSH38OHD6tatW5UO1rVrVx06dKjGjQIAAABqotKQ6+bmpuLi4iodrLi4mFeOAQAAwOkqDbl+fn7atWtXlQ72v//7v/zpXwAAADhdpSF36NChWrFihQ4ePFhhuYMHD2r58uW69dZb7dY4AAAAoDoqDblTp05VixYtNHz4cC1fvlyXLl2y2n7p0iUtX75cUVFRatmypR555JFaaywAAABQFRX+xTNJ8vT01Mcff6z77rtPDz30kB599FF17txZLVq0UGFhoX788UedP39e7du314cffihPT09HtBsAAAAoV6UhV5J69OihrKwsLVq0SBs3btT+/ft19uxZtWzZUiEhIbrttts0btw4tW7durbbCwAAAFSqSiFXklq1aqVp06ZV+kchAAAAAGerdE4uAAAA4GoIuQAAADAcQi4AAAAMx+khNyUlRSEhIfLx8VFkZKSysrLKLfvwww/LZDKV+unQoYOlTGZmZpllKnvPLwAAAIyjyl88qw0rV65UQkKCXn31VfXp00cpKSkaNWqUsrOz1bFjx1LlZ82apeeff95q3dChQxUREVGqbHZ2ttq0aWNZbteund3bDwAAgLrJqU9y582bpzFjxmjs2LEKCgpSUlKSfHx8lJqaWmb51q1by8fHx/Jz+PBh/fTTTxo7dmypsl5eXlZl3d3da7s7AAAAqCOcFnKLior07bffatCgQVbrBw0apB07dlTpGO+//76Cg4MVHh5eatuAAQMUFBSkqKgobdmyxS5tBgAAgGtw2nSFkydP6vLly/Ly8rJa7+Xlpby8vEr3P336tD755BM9++yzVut9fX01Z84c9erVS0VFRfroo48UHR2t9evXlzmt4Qqz2Vy9jlSDI+uSmjmpbvvU69ixcm2MVdXZPlaufR5Rr2O4Wnud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3X///erevbuWLFliCbnLly/Xl19+qbVr1+qmm26y7NuzZ0899NBDysjI0KBBgxQTE6P/+Z//kb+/v2JiYqza0rdvXy1fvlwlJSVyc3NTVlaWrr/+ep0/f15ZWVkKCwtTUVGRdu3apSlTplj2e+aZZ9SqVSt98cUXlqfdd911l/r06aN//vOfWrx4sVU9gYGBWrJkSbljcujQIUVFRclkMumTTz5Ru3btqjO0ACCJ6QoAUK7IyEh9+umnGjp0qP79739r7ty5iomJ0XXXXacPPvig2seNi4uzBFxJio2NVevWrbVx40arck2bNrUKpI0bN1avXr30008/WdatWrVKnTt3VnBwsE6ePGn56devn9zc3JSZmVlpeyIiIvTrr79aphlkZWUpIiJCffv2VVZWliRp9+7dOn/+vGWaQU5Ojvbs2aPY2Fir6RwBAQG67bbbtGnTJl2+fNmqngkTJpTbhgMHDmjYsGHy9vbWunXrCLgAaoyQCwAVCA8P17Jly3TkyBFlZmbqmWeekSQ98sgj+uqrr6p1zICAAKvlhg0bqlOnTjp69KjV+vbt26tBA+vLtMlkUkFBgWX5P//5j8xmswICAqx+rr/+epWUlCg/P7/S9lwJrllZWZYntv369VNERISys7NVXFys7du3y93dXeHh4ZJkmSsbGBhY6njXXXedzp07p5MnT1qt9/f3L7cNY8aMUZMmTfTJJ5/IZDJV2mYAqAzTFQCgCho1aqTu3bure/fu6t27t6Kjo5Wenq7IyMhy9ykuLq5Rne7u7mWuLykpsaqjS5cumjVrVpllqzKn1dfXV9dee62ysrLUvXt3nT9/XhERETp37pzOnDmjvXv3avv27erWrZtatmxZvc7ojyfT5YmKilJaWpqWLVum+Pj4atcBAFcQcgHARqGhoZL++Cd76Y+nq6dPn7YqU1RUZNn+V//5z380aNAgy/KlS5d05MgR9evXz+a2XHPNNfr2228VGRkpNze3CstWtL1v377atGmTQkJCFBgYKC8vL3l5eemqq67S1q1blZ2drTFjxljKd+zYUZJkNptLHctsNqt58+by9PSscj+ee+45NW3a1PKlvPvuu6/K+wJAWZiuAADl+Oqrr8p8GvvFF19I+r9/qr/mmmssc1eveO+990rNSb1i0aJFunDhgmV52bJlOn36tIYOHWpzG0eMGKG8vDy9++67pbZduHBBZ8+etSw3a9bMaqrDn/Xt21c5OTlKS0tTRESE1fr33ntPp0+ftlrv6+urG264QR9++KF+/fVXy/rDhw/r008/1d/+9rdyn0SX55VXXlFMTIymTZumVatW2bQvAPwVT3IBoBwJCQkqLCzUHXfcoaCgIBUXF+u7777TRx99pLZt21regfvAAw/o73//u+6//34NHDhQ33//vTZt2lThk8zhw4frrrvu0tGjR7Vw4UJ17drV8hYFW8TExGj16tWaPn26tm3bpj59+qikpEQ//vijVq1apffee0/9+/eX9McbF7766iu99dZb6tChg9q1a2eZbnElwJrNZk2fPt1y/IiICC1fvlySSr3b9sUXX9TIkSN1yy23aOzYsZZXiHl4eOgf//iHzX1xc3PTvHnzdO7cOT300ENq1qxZtYI/AEiEXAAo14svvqg1a9Zo8+bN+uCDD3ThwgX5+vpq1KhRevzxx9WpUydJ0tixY3XkyBEtWbJEmzZtUt++ffXJJ58oKiqqzOPOmjVLa9as0ezZs3XhwgXddttt+te//mX1jtyqatCggT744AMlJydr2bJl2rBhgzw8POTv768JEyaoW7dulrIzZ87UY489plmzZuncuXPq16+fJeRee+218vX1VU5OTqknuZIUFBRU6o0HN998s1atWqWZM2dq5syZatiwofr27avnnnuu1Dtyq8rd3V3vvvuuxowZo7Fjx+qjjz6qcN4zAJTHraCgoKTyYgAAAIDrYE4uAAAADIeQCwAAAMMh5AIAAMBwCLkAAAAwHEIuAAAADIeQCwAAAMMh5AIAAMBwCLkAAAAwHEIuAAAADOf/A3CD7hr1ANK6AAAAAElFTkSuQmCC\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"clf.fit(wrcf_distmat)\n",
|
|
"fig, ax = plt.subplots()\n",
|
|
"ax.step(range(len(clf.labels_)), clf.labels_, where='post')\n",
|
|
"ax.set_xlabel(\"Subnetwork\")\n",
|
|
"ax.set_ylabel(\"Cluster\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## SocioPatterns"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 355,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"zz_dgms = dill.load(open(\"sociopatterns/zz_dgms.dill\", \"rb\"))\n",
|
|
"wrcf_dgms = dill.load(open(\"sociopatterns/wrcf_dgms.dill\", \"rb\"))\n",
|
|
"zz_gram1 = dill.load(open(\"sociopatterns/zz_gram1.dill\", \"rb\"))\n",
|
|
"wrcf_gram1 = dill.load(open(\"sociopatterns/wrcf_gram1.dill\", \"rb\"))\n",
|
|
"zz_distmat = dill.load(open(\"sociopatterns/zz_distmat.dill\", \"rb\"))\n",
|
|
"wrcf_distmat = dill.load(open(\"sociopatterns/wrcf_distmat.dill\", \"rb\"))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 346,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.image.AxesImage at 0x7f867460c4e0>"
|
|
]
|
|
},
|
|
"execution_count": 346,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.matshow(wrcf_gram1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 356,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.matshow(zz_gram1)\n",
|
|
"plt.savefig(\"sp_zz_gram1.pdf\", transparent=True, pad_inches=0.3, bbox_inches=\"tight\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 202,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"25\n",
|
|
"4\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"0.5006790161132812"
|
|
]
|
|
},
|
|
"execution_count": 202,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"print(len(zz_dgms[0][1]))\n",
|
|
"print(len(zz_dgms[1][1]))\n",
|
|
"d.bottleneck_distance(zz_dgms[0][1], zz_dgms[1][1])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 157,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"clf = AgglomerativeClustering(n_clusters=5, affinity=\"precomputed\", linkage=\"average\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 158,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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oFxVmkLQqVMnHTp0yF21AAAAABWqUoB96qmn9MYbb+j99993Vz0AAABAuar0TVwLFy5Us2bNNHz4cAUGBiooKEje3t5ObTw8PLRq1SqXFgkAAABcUKUAe+DAAXl4eOjyyy+XJB05cqREGw8PD9dUBgAAAJSiSgF279697qoDAAAAqBSeAwsAAACjVDnAFhQU6M0339QDDzyg2267TV9//bUkKScnRytWrNCPP/7o8iIBAACAC6o0heDkyZMaNGiQ9u/fLz8/P2VnZysnJ0eS1KRJEz333HM6cOCA4uPj3VIsAAAAUKU7sNOnT9fRo0e1detWpaSkqLi4+P93VKeOYmJi9MEHH7i8SAAAAOCCKgXYrVu3auzYserRo0epTxsIDg7mm7oAAADgVlUKsL/88ovjEVqlOXfunAoLCy+6KAAAAKAsVQqw7dq1065du8rcvm3bNoWGhl50UQAAAEBZqhRgR44cqeXLl2vVqlUqKiqSdP6LC3799VfNmDFD27Zt06hRo9xSKAAAACBV8SkEY8eO1YEDBzR27Fg1btxYknTfffcpJydHhYWFGj16tEaMGOGWQgEAAACpigFWkl544QXdeeedWr9+vQ4dOqSioiJdccUVGjJkiKKiotxRIwAAAOBQ5QArST169FCPHj1cXQsAAABQoSrNgW3evLlWr15d5vZ169apefPmF10UAAAAUJYqBdg/fnFBaYqKikp9PiwAAADgKlUKsJLKDaj/+7//K5vNdlEFAQAAAOWpcA5sQkKC/ud//sexPG3aND3zzDMl2p0+fVpnzpzRnXfe6doKAQAAgD+oMMD6+vqqY8eOkqQjR46oZcuWatmypVMbDw8PNWzYUF27dtXo0aPdUykAAACgSgTYoUOHaujQoZKkW2+9VY8++qh69+7t9sIAAACA0lRpDuymTZtcFl7nz5+v6OhotW7dWsHBwYqNjdX+/fsr3G/fvn0aMGCAAgICFBoaqjlz5lT44TIAAABcOqr0HNjU1FR98803euCBBxzr1q5dq1mzZun06dO64447NHPmTNWpU3Eu3r59u+6//35169ZNxcXFmjlzpm677TZ98cUXatasWan7nDlzxvGFCdu2bZPdbtf48ePl4+OjiRMnVuWlGCH5x3w9nJKj9NxCt/TftpGnFkTZFN3KyyX9ubte9/GRtv9odRFVZnvdvJpdx8wx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k7/UZ3BwsNNy3bp11bZtWx05csRpfcuWLVWnjvMl2GazKScnx7H8/fffy263Kzg42OknPDxcxcXFys7OrrCeC6E0JSXFcae1V69eioqKUlpamoqKipSamipPT0/16NFDkhxzU0NCQkr0d+WVVyovL08nTpxwWh8UFFRmDXFxcWrQoIHeffdd2Wy2CmsGgIowhQBArVevXj117txZnTt31jXXXKPBgwdr1apV6t27d5n7FBUVXdQxPT09S11fXFzsdIyOHTtq9uzZpbatzBzSgIAAtWvXTikpKercubPy8/MVFRWlvLw8nTlzRnv37lVqaqo6deqkxo0b/7UXo/N3lMsSExOj5cuXa8WKFRo7duxfPgYAXECABYA/6N69u6Tzf0aXzt8VPX36tFObgoICx/Y/+/7779WnTx/H8u+//6709HT16tWryrVcccUV2r17t3r37i0PD49y25a3PTIyUh999JG6dOmikJAQ+fr6ytfXV61atdL27duVlpamuLg4R/vWrVtLkux2e4m+7Ha7GjZsqBYtWlT6dUyfPl3e3t6OD7jdddddld4XAErDFAIAtdInn3xS6l3UDz74QNL///P5FVdc4ZgresHSpUtLzAG94PXXX9e5c+ccyytWrNDp06fVv3//Ktc4ZMgQZWVl6dVXXy2x7dy5c/rll18cyz4+Pk7TD/4oMjJSGRkZWr58uaKiopzWL126VKdPn3ZaHxAQoL/97W965513dOrUKcf6w4cPa8uWLbrxxhvLvINclnnz5ik2NlaTJk3S+vXrq7QvAPwZd2AB1EpTp05Vbm6ubr31VnXo0EFFRUX6+uuvtXLlSjVv3tzxjNd77rlHf//733X33XcrOjpa33zzjT766KNy70AOGjRId9xxh44cOaIlS5YoLCzM8bSBqoiNjdWGDRs0efJkff755+rZs6eKi4v13Xffaf369Vq6dKmuu+46SeefTPDJJ5/opZdeUmBgoC677DLHFIgL4dRut2vy5MmO/qOiorRmzRpJKvHs1meeeUa33367brrpJo0cOdLxGC0vLy899dRTVX4tHh4eevnll5WXl6cxY8bIx8fnL4V6AJAIsABqqWeeeUZJSUnatm2bli1bpnPnzikgIEDDhg3TI488orZt20qSRo4cqfT0dL311lv66KOPFBkZqXfffVcxMTGl9jt79mwlJSVpzpw5OnfunG655Rb985//dHoGbGXVqVNHy5YtU0JCglasWKH33ntPXl5eCgoK0v33369OnTo52s6cOVMPP/ywZs+erby8PPXq1csRYNu1a6eAgABlZGSUuAMrSR06dCjxZIDrr79e69ev18yZMzVz5kzVrVtXkZGRmj59eolnwFaWp6enXn31VcXFxWnkyJFauXJlufOMAaAsHjk5OcUVNwMAAABqBubAAgAAwCgEWAAAABiFAAsAAACjEGABAABgFAIsAAAAjEKABQAAgFEIsAAAADAKARYAAABGIcACAADAKP8X6A4LYv6btREAAAAASUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"clf.fit(zz_gram1)\n",
|
|
"fig, ax = plt.subplots()\n",
|
|
"ax.step(range(len(clf.labels_)), clf.labels_, where='post')\n",
|
|
"ax.set_xlabel(\"Subnetwork\")\n",
|
|
"ax.set_ylabel(\"Cluster\")\n",
|
|
"fig.savefig(\"sp_zz_k.pdf\", transparent=True, pad_inches=0.3, bbox_inches=\"tight\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 159,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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AfbSpUuaN2+etm/fXpX1AAAAAGUqd4B1c3PTP/7xD50+fboq6wEAAADK5NQSgo4dO+r48eNVVQsAAADgkFMB9oUXXtC7776rbdu2VVU9AAAAQJmc+ktcixcvVvPmzTVy5Ej5+vrK399fbm5udmNcXFwUHx9fqUUCAAAAVzgVYI8ePSoXFxfdeOONkqSTJ08WG+Pi4lI5lQEAAAAlcCrAHjp0qKrqAAAAAMqF74EFAACAqTgdYPPz8/Xee+/piSee0P33369vvvlGkpSVlaXVq1frp59+qvQiAQAAgCucWkJw/vx5DRkyREeOHJGXl5cyMzOVlZUlSWratKleeeUVHT16VDExMVVSLAAAAODUE9iZM2fq1KlTSkpKUmpqqoqKiv7/herUUXh4uD755JNKLxIAAAC4wqkAm5SUpPHjx6tHjx4lfttAQEAAf6kLAAAAVcqpAPvrr7/avkKrJJcvX1ZBQUGFiwIAAABK41SAbdu2rfbv31/q8e3btysoKKjCRQEAAAClcSrAjh49WqtWrVJ8fLwKCwsl/fGHC3777TfNmjVL27dvV1RUVJUUCgAAAEhOfgvB+PHjdfToUY0fP15NmjSRJD322GPKyspSQUGBxo4dq1GjRlVJoQAAAIDkZICVpH/84x966KGHtGHDBh0/flyFhYW66aabNGzYMIWFhVVFjQAAAICN0wFWknr06KEePXpUdi0AAACAQ06tgW3RooXWrl1b6vH169erRYsWFS4KAAAAKI1TAfbPf7igJIWFhSV+PywAAABQWZwKsJLKDKj/8z//I4vFUqGCAAAAgLI4XAMbGxur//7v/7Ztz5gxQy+99FKxcRcvXlR2drYeeuihyq0QAAAA+BOHAdbT01MdOnSQJJ08eVItW7ZUy5Yt7ca4uLioUaNG6tKli8aOHVs1lQIAAAAqR4AdMWKERowYIUm677779Mwzz6h3795VXhgAAABQEqfWwG7evLnSwuvChQvVp08f+fn5KSAgQBERETpy5IjD8w4fPqxBgwbJx8dHQUFBmjdvnsMPlwEAAOD64dT3wO7atUvffvutnnjiCdu+devWac6cObp48aKGDx+u2bNnq04dx7k4JSVFjz/+uLp166aioiLNnj1b999/v7766is1b968xHOys7NtfzBh+/btslqtio6Olru7uyZPnuzMrVwXkn/K01OpWUrL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69ZNY8aMkfRHCG/WrJmCg4OVmpqqyZMnS/pj6URBQYF+++037d+/X6GhoZKkXbt2qVu3bmrYsKEk6csvv9QDDzygNm3aaPr06crLy1NcXJzuuecebd++Xe3atbO778cee0xt2rTR888/r/z8/BJ7c/LkSQ0dOlT169fXxx9/LB8fn0rrO4DahQALoFZ68sknlZycrN69e6tr167q1auX7rjjDvXu3dsW4q7V5s2b1aBBA0lShw4dNHnyZH344Yd69NFHbWPOnj2r2NhYjRw5UpL0yCOPqFOnTnr//fdtATYhIUGffvqpNm3apNtvv912bteuXTVu3DglJyerb9++ioiI0N/+9jf5+/srIiLCrpZevXopISFBRUVFcnFxUWpqqkJCQpSXl6fU1FSFhoYqPz9f+/btU3R0tO28559/Xk2bNtUnn3xie0o9fPhw9ezZUy+++KLee+89u+sEBgbq/fffL7Unx48fV3h4uCwWiz766CPdcMMN19JaAJDEEgIAtVTv3r21detWDRw4UP/617+0ePFiRURE6Oabb9bKlSuv+XWjoqJs4VWSRo4cqWbNmikpKclunJubm13YrF+/vrp166Yff/zRtm/Dhg1q166dgoKCdO7cOdvPbbfdJhcXF+3YscNhPWFhYbpw4YLtV/+pqakKCwtTr169lJqaKknav3+/8vLybL/6T09P18GDBzVy5Ei7JRYBAQG699579dlnn6mgoMDuOo8//nipNRw7dkyDBg2Sl5eXNm/eTHgFUGEEWAC1Vo8ePbR69WqlpaVpx44dev755yVJkyZN0hdffHFNrxkQEGC3XbduXbVp00YnT56029+yZUvVqWP/FmyxWJSVlWXb/uGHH2S1WhUQEGD3ExISoqKiImVmZjqs50ooTU1NtT1pve222xQWFqbdu3ersLBQu3btkqurq3r06CFJtrWpgYGBxV7v5ptvVm5urs6dO2e339/fv9QaIiMj1aBBA3300UeyWCwOawYAR1hCAKDWq1evnjp16qROnTrp1ltv1dChQxUfH6/evXuXek5hYWGFrunq6lri/qKiIrtrdOjQQXPnzi1xbHnWkPr4+Kht27ZKTU1Vp06dlJeXp7CwMOXm5io7O1uHDh3Srl271LFjRzVp0uTabkZ/PFEuTXh4uFatWqXVq1dr/Pjx13wNALiCAAsAf9K9e3dJf/waXfrjqejFixftxuTn59uOX+2HH35Q3759bdu///670tLSdNtttzldy0033aQDBw6od+/ecnFxKXNsWcd79eqlzz77TJ07d1ZgYKA8PT3l6empVq1aKSUlRbt371ZkZKRtvJ+fnyTJarUWey2r1apGjRrJw8Oj3Pcxc+ZMubm52T7g9vDDD5f7XAAoCUsIANRKX3zxRYlPUT/55BNJ///r85tuusm2VvSKd955p9ga0CtWrFihy5cv27ZXr16tixcvauDAgU7XOGzYMGVkZOjtt98uduzy5cv69ddfbdvu7u52yw/+rFevXkpPT9eqVasUFhZmt/+dd97RxYsX7fb7+PjoL3/5iz788ENduHDBtv/EiRPaunWr7r777lKfIJdmwYIFioiI0JQpU7RhwwanzgWAq/EEFkCtNH36dOXk5Oi+++5T+/btVVhYqG+++UZr1qxRixYtbN/x+uijj+qvf/2rHnnkEfXp00fffvutPvvsszKfQA4ZMkTDhw/XyZMntWzZMgUHB9u+bcAZERER2rhxo6ZOnaqdO3eqZ8+eKioq0vfff68NGzbonXfe0R133CHpj28m+OKLL/TGG2/I19dXN9xwg20JxJVwarVaNXXqVNvrh4WFKSEhQZKKfXfrSy+9pAceeED9+/fX6NGjbV+j1bBhQ73wwgtO34uLi4vefPNN5ebmaty4cXJ3d7+mUA8AEgEWQC310ksvKTExUdu3b9fKlSt1+fJl+fj46MEHH9TTTz+tNm3aSJJGjx6ttLQ0vf/++/rss8/Uq1cvffTRRwoPDy/xdefOnavExETNmzdPly9f1r333qu///3vdt8BW1516tTRypUrFRsbq9WrV+vjjz9Ww4YN5e/vr8cff1wdO3a0jZ09e7aeeuopzZ07V7m5ubrttttsAbZt27by8fFRenp6sSewktS+ffti3wxw5513asOGDZo9e7Zmz56tunXrqlevXpo5c2ax74AtL1dXV7399tuKjIzU6NGjtWbNmjLXGQNAaVyysrKKHA8DAAAAagbWwAIAAMBUCLAAAAAwFQIsAAAATIUACwAAAFMhwAIAAMBUCLAAAAAwFQIsAAAATIUACwAAAFMhwAIAAMBU/he4rm3IyGrHKgAAAABJRU5ErkJggg==\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"clf.fit(wrcf_gram1)\n",
|
|
"fig, ax = plt.subplots()\n",
|
|
"ax.step(range(len(clf.labels_)), clf.labels_, where='post')\n",
|
|
"ax.set_xlabel(\"Subnetwork\")\n",
|
|
"ax.set_ylabel(\"Cluster\")\n",
|
|
"fig.savefig(\"sp_wrcf_k.pdf\", transparent=True, pad_inches=0.3, bbox_inches=\"tight\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 160,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"svm = OneClassSVM(kernel='precomputed')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 161,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[<matplotlib.lines.Line2D at 0x7f8674810940>]"
|
|
]
|
|
},
|
|
"execution_count": 161,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"svm.fit(zz_gram1)\n",
|
|
"clusters = svm.predict(zz_gram1)\n",
|
|
"plt.step(range(len(clusters)), clusters, where='post')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 162,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[<matplotlib.lines.Line2D at 0x7f8675a894a8>]"
|
|
]
|
|
},
|
|
"execution_count": 162,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 720x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"svm.fit(wrcf_gram1)\n",
|
|
"clusters = svm.predict(wrcf_gram1)\n",
|
|
"plt.step(range(len(clusters)), clusters, where='post')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 218,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"Diagram with 3 points"
|
|
]
|
|
},
|
|
"execution_count": 218,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"dgm1 = d.Diagram([(1,4),(1,2),(3,np.inf)])\n",
|
|
"dgm1"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 219,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"Diagram with 1 points"
|
|
]
|
|
},
|
|
"execution_count": 219,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"dgm2 = d.Diagram([(1,3)])\n",
|
|
"dgm2"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 220,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"inf"
|
|
]
|
|
},
|
|
"execution_count": 220,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"d.bottleneck_distance(dgm1, dgm2)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 223,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"res = d.Diagram()\n",
|
|
"for p in dgm1:\n",
|
|
" if p.death != np.inf:\n",
|
|
" res.append(p)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 225,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"(1,4)\n",
|
|
"(1,2)\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"for p in res:\n",
|
|
" print(p)"
|
|
]
|
|
},
|
|
{
|
|
"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.5.2"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|