{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "effe0c62", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import skimage.morphology\n", "import pandas as pd\n", "import numpy as np\n", "import skimage\n", "import torch\n", "import glob\n", "import re" ] }, { "cell_type": "code", "execution_count": 2, "id": "c224b227", "metadata": {}, "outputs": [], "source": [ "fs = 400641.025641026" ] }, { "cell_type": "code", "execution_count": 3, "id": "de95c693", "metadata": {}, "outputs": [], "source": [ "#%matplotlib notebook" ] }, { "cell_type": "code", "execution_count": 4, "id": "67c2c1f4", "metadata": {}, "outputs": [], "source": [ "plt.rcParams[\"figure.figsize\"] = 8, 8 " ] }, { "cell_type": "code", "execution_count": 5, "id": "db10a7d4", "metadata": {}, "outputs": [], "source": [ "path = './Data/316L/Gain_10_high_distance/Small_Cyl_316L/'" ] }, { "cell_type": "code", "execution_count": 6, "id": "370263fd", "metadata": {}, "outputs": [], "source": [ "def parseData(path, sorting=True):\n", " channels = glob.glob(path + \"/*/\")\n", " print(\"These are the channels I found: \")\n", " print(channels)\n", " \n", " starting_GT = pd.read_csv(path+'/starting_GT.csv', sep=',',header=None).values\n", " ending_GT = pd.read_csv(path+'/ending_GT.csv', sep=',',header=None).values\n", "\n", " dataAllChann = []\n", " for channel in channels:\n", " print(\"I'm working on this: \", channel)\n", " allFiles = glob.glob(channel + \"/*.csv\")\n", " if sorting:\n", " allFiles = sorted(allFiles, key=lambda x:float(re.findall(\"(\\d+)\",x)[-1]))\n", " dataSingleChan = []\n", " names = []\n", " for file in allFiles:\n", " signal = pd.read_csv(file, sep=',',header=None).values\n", " singleFile = torch.from_numpy(signal).view(1, 1, -1)\n", " dataSingleChan.append(singleFile)\n", " names.append(file)\n", " dataSingleChanTorch = torch.cat(dataSingleChan, 0)\n", " dataAllChann.append(dataSingleChanTorch)\n", " dataAllChannTorch = torch.cat(dataAllChann, 1)\n", " return dataAllChannTorch.numpy(), names, starting_GT, ending_GT" ] }, { "cell_type": "code", "execution_count": 7, "id": "1d92580d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "These are the channels I found: \n", "['./Data/316L/Gain_10_high_distance/Small_Cyl_316L\\\\channel_0\\\\', './Data/316L/Gain_10_high_distance/Small_Cyl_316L\\\\channel_1\\\\', './Data/316L/Gain_10_high_distance/Small_Cyl_316L\\\\channel_2\\\\', './Data/316L/Gain_10_high_distance/Small_Cyl_316L\\\\channel_3\\\\']\n", "I'm working on this: ./Data/316L/Gain_10_high_distance/Small_Cyl_316L\\channel_0\\\n", "I'm working on this: ./Data/316L/Gain_10_high_distance/Small_Cyl_316L\\channel_1\\\n", "I'm working on this: ./Data/316L/Gain_10_high_distance/Small_Cyl_316L\\channel_2\\\n", "I'm working on this: ./Data/316L/Gain_10_high_distance/Small_Cyl_316L\\channel_3\\\n" ] } ], "source": [ "data, name, starting_GT, ending_GT = parseData(path)" ] }, { "cell_type": "code", "execution_count": 8, "id": "6c8799fc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Signal duration [s]: [0.62805101]\n" ] } ], "source": [ "signal_duration = (ending_GT[-1]-starting_GT[0])*1/fs\n", "print('Signal duration [s]: ', signal_duration)" ] }, { "cell_type": "code", "execution_count": 9, "id": "d9315466", "metadata": {}, "outputs": [], "source": [ "def computeBoundaries(signal, th):\n", "\n", " locs = np.where(signal>th)[0]\n", "\n", " indexes = np.zeros((signal.shape[0],1));\n", " indexes[locs] = 1;\n", "\n", " closed = skimage.morphology.closing(indexes, selem=torch.ones(80,1).numpy())\n", " opened = skimage.morphology.opening(closed, selem=torch.ones(80,1).numpy())\n", "\n", "\n", " locsNew = np.where(opened==1)\n", " locsNew = locsNew[0]\n", "\n", "\n", " derNew = np.diff(locsNew)\n", "\n", " ind = np.where(derNew>1)[0]\n", "\n", " ending = locsNew[ind]\n", " ending = np.append(ending,locsNew[-1])\n", "\n", " starting = locsNew[ind+1]\n", " starting = np.append(locsNew[0],starting) \n", " return starting, ending" ] }, { "cell_type": "code", "execution_count": 10, "id": "3ee6be53", "metadata": {}, "outputs": [], "source": [ "signal = data[0,0,:]" ] }, { "cell_type": "code", "execution_count": 11, "id": "ae0d2462", "metadata": {}, "outputs": [], "source": [ "th = 0.0\n", "starting, ending = computeBoundaries(signal, th)" ] }, { "cell_type": "code", "execution_count": 12, "id": "7ba80ab0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.vlines(x=starting_GT, ymin=0, ymax=1, colors='green',zorder=10)\n", "plt.vlines(x=ending_GT, ymin=0, ymax=1, colors='red',zorder=10)\n", "plt.vlines(x=starting, ymin=0, ymax=1, colors='yellow',ls=':',zorder=1000)\n", "plt.vlines(x=ending, ymin=0, ymax=1, colors='black',ls=':',zorder=1000)\n", "plt.plot(signal)" ] }, { "cell_type": "code", "execution_count": 13, "id": "396b5a88", "metadata": {}, "outputs": [], "source": [ "def binarize_signals2(size, starting, ending):\n", " binary_sig = np.zeros((size,))\n", "\n", " for start, end in zip(starting, ending):\n", " binary_sig[np.arange(start=start, stop=end+1)] = 1\n", "\n", " \n", " return np.array(binary_sig, dtype=bool)" ] }, { "cell_type": "code", "execution_count": 14, "id": "d20e5c9a", "metadata": {}, "outputs": [], "source": [ "def calculateIoU(size, starting, ending, starting_GT, ending_GT):\n", " bool_sig = binarize_signals2(signal.shape[0], starting, ending)\n", " bool_sig_GT = binarize_signals2(signal.shape[0], starting_GT, ending_GT)\n", " \n", " intersection = np.logical_and(bool_sig, bool_sig_GT)\n", " union = np.logical_or(bool_sig, bool_sig_GT)\n", "\n", " intersection_area = np.sum(intersection)\n", " union_area = np.sum(union)\n", "\n", " IoU = intersection_area/union_area*100\n", " \n", " return IoU" ] }, { "cell_type": "code", "execution_count": 15, "id": "e4534b02", "metadata": {}, "outputs": [], "source": [ "def IoUforTh(size, thresholded, starting_GT, ending_GT):\n", " bool_sig_GT = binarize_signals2(signal.shape[0], starting_GT, ending_GT)\n", "\n", " intersection = np.logical_and(thresholded, bool_sig_GT)\n", " union = np.logical_or(thresholded, bool_sig_GT)\n", "\n", " intersection_area = np.sum(intersection)\n", " union_area = np.sum(union)\n", "\n", " IoU = intersection_area/union_area*100\n", " \n", " return IoU" ] }, { "cell_type": "code", "execution_count": 16, "id": "8e59ec17", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "99.96888808729372" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IoU = calculateIoU(signal.shape[0], starting, ending, starting_GT, ending_GT)\n", "IoU" ] }, { "cell_type": "code", "execution_count": 17, "id": "bca6e6f8", "metadata": {}, "outputs": [], "source": [ "def computeThreshold(signal, th):\n", "\n", " locs = np.where(signal>th)[0]\n", "\n", " indexes = np.zeros((signal.shape[0],));\n", " indexes[locs] = 1;\n", " \n", " return np.array(indexes, dtype=bool)" ] }, { "cell_type": "code", "execution_count": 18, "id": "29ae8cb2", "metadata": {}, "outputs": [], "source": [ "def computeprecrecallMM(size, starting, ending, starting_GT, ending_GT):\n", " bool_sig = binarize_signals2(size, starting, ending)\n", " bool_sig_GT = binarize_signals2(size, starting_GT, ending_GT)\n", "\n", " prec = np.sum(bool_sig_GT*bool_sig)/np.sum(bool_sig)\n", " recall = np.sum(bool_sig_GT*bool_sig)/(np.sum(bool_sig_GT*bool_sig)+np.sum(np.logical_not(bool_sig)*bool_sig_GT))\n", " return prec, recall\n", "def computeprecrecallTh(size, thresholded, starting_GT, ending_GT):\n", " bool_sig_GT = binarize_signals2(size, starting_GT, ending_GT)\n", "\n", " prec = np.sum(bool_sig_GT*thresholded)/np.sum(thresholded)\n", " recall = np.sum(bool_sig_GT*thresholded)/(np.sum(thresholded*bool_sig_GT)+\n", " np.sum(np.logical_not(thresholded)*bool_sig_GT))\n", " return prec, recall" ] }, { "cell_type": "code", "execution_count": 19, "id": "f387e118", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "93.24982979164695" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "thresholded = computeThreshold(signal, th=0)\n", "IoU = IoUforTh(signal.shape[0], thresholded, starting_GT, ending_GT)\n", "IoU" ] }, { "cell_type": "code", "execution_count": 20, "id": "f51c4527", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([0. , 0.0030303 , 0.00606061, 0.00909091, 0.01212121,\n", " 0.01515152, 0.01818182, 0.02121212, 0.02424242, 0.02727273,\n", " 0.03030303, 0.03333333, 0.03636364, 0.03939394, 0.04242424,\n", " 0.04545455, 0.04848485, 0.05151515, 0.05454545, 0.05757576,\n", " 0.06060606, 0.06363636, 0.06666667, 0.06969697, 0.07272727,\n", " 0.07575758, 0.07878788, 0.08181818, 0.08484848, 0.08787879,\n", " 0.09090909, 0.09393939, 0.0969697 , 0.1 , 0.1030303 ,\n", " 0.10606061, 0.10909091, 0.11212121, 0.11515152, 0.11818182,\n", " 0.12121212, 0.12424242, 0.12727273, 0.13030303, 0.13333333,\n", " 0.13636364, 0.13939394, 0.14242424, 0.14545455, 0.14848485,\n", " 0.15151515, 0.15454545, 0.15757576, 0.16060606, 0.16363636,\n", " 0.16666667, 0.16969697, 0.17272727, 0.17575758, 0.17878788,\n", " 0.18181818, 0.18484848, 0.18787879, 0.19090909, 0.19393939,\n", " 0.1969697 , 0.2 , 0.2030303 , 0.20606061, 0.20909091,\n", " 0.21212121, 0.21515152, 0.21818182, 0.22121212, 0.22424242,\n", " 0.22727273, 0.23030303, 0.23333333, 0.23636364, 0.23939394,\n", " 0.24242424, 0.24545455, 0.24848485, 0.25151515, 0.25454545,\n", " 0.25757576, 0.26060606, 0.26363636, 0.26666667, 0.26969697,\n", " 0.27272727, 0.27575758, 0.27878788, 0.28181818, 0.28484848,\n", " 0.28787879, 0.29090909, 0.29393939, 0.2969697 , 0.3 ])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ths = np.linspace(start=0.0, stop=0.3, num=100)\n", "ths" ] }, { "cell_type": "code", "execution_count": 21, "id": "2888a682", "metadata": {}, "outputs": [], "source": [ "IoUsMM = []\n", "IoUsTh = []\n", "precsMM = []\n", "recallsMM = []\n", "precsTh = []\n", "recallsTh = []\n", "for th in ths:\n", " thresholded = computeThreshold(signal, th)\n", " IoUTh = IoUforTh(signal.shape[0], thresholded, starting_GT, ending_GT)\n", " precTh, recallTh = computeprecrecallTh(signal.shape[0], thresholded, starting_GT, ending_GT)\n", " IoUsTh.append(IoUTh)\n", " precsTh.append(precTh)\n", " recallsTh.append(recallTh)\n", " starting, ending = computeBoundaries(signal, th)\n", " IoUMM = calculateIoU(signal.shape[0], starting, ending, starting_GT, ending_GT)\n", " precMM, recallMM = computeprecrecallMM(signal.shape[0], starting, ending, starting_GT, ending_GT)\n", " IoUsMM.append(IoUMM)\n", " precsMM.append(precMM)\n", " recallsMM.append(recallMM)" ] }, { "cell_type": "code", "execution_count": 22, "id": "274383a2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Percentage [%]')" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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AAMGDKBly5a0adOGAQMG0KRJE3r16lXn73fXXXfxz3/+87DWadSoUZXzL7/8cl5//XUArr76ahYuXFjrfIdLzcR6kJqcwAVD2vHuDSN59sohpDdI5OevzuG0B77kk4VbCNVYACIikaRZs2bMnj2b2bNn85Of/IRbbrll3+O4uEOXq5ou4FKfnnjiiZD8ADkUFfR6ZGaM7pbJuzeM5N8XDqSkzPHj56ZzyZNTWbYl3+94IiJhq6ysjB//+Mf07t2bk08+mb179wJw3HHH8Zvf/IbRo0fzwAMPMGPGDEaPHs2gQYM45ZRT2LRpEwAPPvjgvkuqnn/++fted+HChRx33HF06tSJBx98cN/8e++9lz59+tCnTx/uv//+7+VxznHDDTfQq1cvxo4dS05Ozr7njjvuuH1j0jdq1Ijbb7+d/v37M2zYMLZs2QLAihUrGDZsGEcffTR33nlntS3/w6GC7oO4OGNcv9Z8fMso7vpBL+au38mpD3zFH95dSF5hid/xRETCzrJly7j++utZsGABTZo04Y033tj33M6dO5k0aRI33XQTN954I6+//jozZszgyiuv5Pbbbwfg7rvvZtasWcydO5dHHnlk37qLFy/mo48+YurUqfz+97+npKSEGTNm8PTTTzNlyhQmT57M448/zqxZsw7I89Zbb7FkyRLmzZvH448/zrfffltl7j179jBs2DDmzJnDqFGjePzxxwH42c9+xs9+9jOmTZtG69at62Qbhct56DEpMT6Oy0d05Af9W/PPj5fy9LereGfOBp687Gj6ZzfxO56IxLIPboPN8+r2NVv2hdPuPqJVO3bsyIABAwAYNGgQq1ev3vfceeedB8CSJUuYP38+J510EuC16lu1agVAv379uOiiizjzzDM588wz9607duxYkpOTSU5OJisriy1btvD1119z1llnkZqaCsDZZ5/NV199xcCBA/et9+WXX3LBBRcQHx9P69atOeGEE6rMnZSUtO8SroMGDeKTTz4B4LvvvmPChAkAXHjhhdx6661HtF0qUws9DDRrlMxfz+7LuzeMpEFSPBc9MYVpqw8eNVdEJHYlJyfvux8fH3/A8fKKwuuco3fv3vuOu8+bN4+PP/4YgPfff5/rr7+eGTNmMGjQoH3rV/W6wfZrCuY05MTExH3LHZy7rqmFHkb6tEnn1WuHc9HjU7j0yak8edlg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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(ths, IoUsMM, label='Ours')\n", "plt.plot(ths, IoUsTh, label='Thresholding')\n", "plt.title('$IoU$ vs threshold value $th$ (worst case)')\n", "plt.legend()\n", "plt.xlabel('Threshold value $th$ [V]')\n", "plt.ylabel('Percentage [%]')" ] }, { "cell_type": "code", "execution_count": 23, "id": "8851220c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Precision')" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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Xe8nmF3fkiq2Zs0apkyZYkh3gYhgypQpm1zd6P2gtvQtqXKGdPdo579FJUHd+6cpSd1s2bJlLFiwgD333JMXv/jFnHrqqfzhD38Y62EVofcTzNK3JI2pzOSoo47ijW98I/fccw+/+MUvWLVqFWeeeeaI99HX17cZR9jdej+onVFL0pi6+uqrmThxIscffzwA48aN45xzzuHCCy/kC1/4AqeccsrAukcccQQ/+tGPAJg0aRJnnXUWBxxwANdffz1nnHEGM2bMYJ999uH0008fi1MZE3Z9S1Il/uY7S7njoSdGdZ8zdt6Oj75h5kbXWbp0Kfvtt996y7bbbjumTZvGunXrNrjdk08+yaxZs/j4xz/OY489xnve8x7uuusuIoLHH398NIZfhN5PMEvfkjSmMnPYJqoNLe83btw43vSmNwHNYJ84cSInnHAC3/72t9lmm20223i7TQUzaru+JQl41pnv5jJz5kwuueSS9ZY98cQTPPDAAzz/+c+n0WgMLB/81qWJEycyblzz7/f48eO56aabuOqqq7jooos4//zzufrqq7fMCYyx3p9RW/qWpDF1yCGHsHr1ar7+9a8DzcawD33oQxx33HHsscceLFmyhEajwQMPPMBNN9007D5WrVrFypUrOeywwzj33HNZsmTJFjyDsdX7M+pGw9K3JI2hiODSSy/lfe97H5/4xCdoNBocdthhfPrTn2arrbZi+vTp7L333syaNYs5c+YMu4/f/e53LFiwgDVr1pCZnHPOOVv4LMZO7wd1NsA3+0vSmNptt934zne+M+xj3/zmN4ddvmrVqoHfd9pppw3Otntd79eEs8/XqCVJxaogqC19S5LK1ftB3bCZTJJUrt5PMEvfkqSCVRDUaelbklSs3g/qHfeGF4z8C7olSeomvR/UxyyC+R8e61FIUpVWrFjB7NmzmT17NjvuuCO77LILs2fPZvLkycyYMWPUj/exj32Mz372s5u0zaRJk4Zdftxxx3HxxRcDcMIJJ3DHHXd0PL529P77qCVJY2bKlCkDnyL2sY99jEmTJnH66adz//33c8QRRzzr9uvWrWP8+LGPqi9/+ctjduzen1FLkrpSX18fJ554IjNnzuS1r30tTz31FAAHH3wwH/nIR5g/fz6f+9znuPnmm5k/fz777bcfr3vd63j44YcBOO+88wa+9vLoo48e2O8dd9zBwQcfzB577MF55503sPwf/uEfmDVrFrNmzeLcc899xngyk1NOOYUZM2Zw+OGH8+ijjw48dvDBB7N48WKgOQM/88wz2XfffZk3bx6PPPIIAL/85S+ZN28eL3/5yznrrLM2OFPfVGP/zxRJ0pbxvTPgv34+uvvccW849Oy2Nr3nnntYtGgRX/rSl3jrW9/KJZdcwrHHHgvA448/zo9//GPWrl3L/Pnzufzyy5k6dSr/+q//yplnnsmFF17I2WefzX333cfWW2+93tde3nXXXVxzzTX87ne/Y6+99uK9730vt912G1/5yle48cYbyUwOOOAA5s+fz8te9rKB7S699FLuvvtufv7zn/PII48wY8YM3v3udz9j3E8++STz5s3jU5/6FH/5l3/Jl770Jf76r/+aU089lVNPPZVjjjmGhQsXtnVNhuOMWpI0JqZPn87s2bMB2G+//bj//vsHHnvb294GwN13383tt9/Oa17zGmbPns0nP/lJli1bBsA+++zDO97xDr7xjW+sVx4//PDD2Xrrrdl+++3ZYYcdeOSRR/jJT37CkUceybbbbsukSZM46qijuO6669Ybz7XXXssxxxzDuHHj2HnnnXn1q1897Li32mqrgbL94HFff/31vOUtbwHg7W9/e8fXp58zakmqRZsz381l6623Hvh93LhxA6VvgG233RZolqNnzpzJ9ddf/4ztv/vd73LttddyxRVX8IlPfIKlS5cOu99169aRmSMa08a+H7vfhAkTBtbr3//m5IxaktS19tprL5YvXz4Q1GvXrmXp0qUDX4v5qle9is985jM8/vjj632Jx1AHHXQQl112GatXr+bJJ5/k0ksv5cADD3zGOhdddBF9fX08/PDDXHPNNZs01nnz5g187/ZFF120iWe6Yc6oJUlda6uttuLiiy/mAx/4ACtXrmTdunWcdtppvOQlL+HYY49l5cqVZCYf/OAHmTx58gb3M2fOHI477jj2339/oPl2q8GvTwMceeSRXH311ey999685CUvYf78+Zs01nPPPZdjjz2Wv//7v+fwww/n+c9//iaf73BipOWALWnu3LnZ310nSWrfnXfeyUtf+tKxHkYVVq9ezXOf+1wigosuuohFixZx+eWXP2O94f6bRMTNmTl3uP12NKOOiMnAl4FZQALvzszrBz1+MHA5cF9r0bcz8+OdHFOSpG508803c8opp5CZTJ48mQsvvHBU9ttp6ftzwPcz880RsRWwzTDrXJeZz/6udkmSCnbggQdy6623jvp+2w7qiNgOOAg4DiAz/wD8YXSGJUmSoLOu7z2A5cBXIuJnEfHliNh2mPVeERG3RsT3ImJmB8eTJLWhG3uRatXOf4tOgno8MAf4Yma+DHgSOGPIOrcAL8rMfYF/BC7b0M4i4qSIWBwRi5cvX97BsCRJ/SZOnMiKFSsM6y6QmaxYsYKJEydu0nZtd31HxI7ADZm5e+v+gcAZmXn4Rra5H5ibmf+9sX3b9S1Jo2Pt2rUsW7aMNWvWjPVQRPMfTrvuuisTJkxYb/lm6frOzP+KiAciYq/MvBs4BFjvO8BaYf5IZmZE7E9zBr+i3WNKkjbNhAkTmD59+lgPQx3otOv7L4Bvtjq+fwUcHxEnA2TmQuDNwHsjYh3wFHB0Wn+RJGnE/MATSZLG2MZK337WtyRJXawrZ9QRsRz49Sjucntgow1slfF6PM1rsT6vx9O8FuvzeqxvtK/HizJz6nAPdGVQj7aIWLyhkkKNvB5P81qsz+vxNK/F+rwe69uS18PStyRJXcygliSpi9US1BeM9QC6jNfjaV6L9Xk9nua1WJ/XY31b7HpU8Rq1JEmlqmVGLUlSkYoO6oh4fUTcHRH3RsTQLwQhms5rPX5bRMwZ6bYl6vB63B8RP4+IJRHRE582M4Lr8ccRcX1E/D4iTt+UbUvT4bWo8bnxjtb/I7dFxE8jYt+RbluaDq9Fjc+NBa1rsaT1RVL/c6Tbti0zi/wBxgG/pPl1m1sBtwIzhqxzGPA9IIB5wI0j3ba0n06uR+ux+4Htx/o8tvD12AF4OfAp4PRN2bakn06uRcXPjVcCL2j9fmiv/u3o5FpU/NyYxNMvG+8D3LW5nxslz6j3B+7NzF9l5h+Ai4AFQ9ZZAHw9m24AJkfETiPctjSdXI9e9KzXIzMfzcz/BNZu6raF6eRa9KKRXI+fZuZvW3dvAHYd6baF6eRa9KKRXI9V2UpmYFsgR7ptu0oO6l2ABwbdX9ZaNpJ1RrJtaTq5HtB8sv0gIm6OiJM22yi3nE7+G/fa86PT86n9ufEempWodrbtdp1cC6j0uRERR0bEXcB3gXdvyrbt6PTbs8ZSDLNsaAv7htYZybal6eR6APxJZj4UETsAP4yIuzLz2lEd4ZbVyX/jXnt+dHo+1T43IuJVNMOp/3XIap8bw1wLqPS5kZmXApdGxEHAJ4A/Hem27Sh5Rr0M2G3Q/V2Bh0a4zki2LU0n14PM7L99FLiUZhmnZJ38N+6150dH51PrcyMi9gG+DCzIzBWbsm1BOrkW1T43+rX+UfLiiNh+U7fdJGP94n27PzSrAb8CpvP0C/czh6xzOOs3T9000m1L++nwemwLPG/Q7z8FXj/W57S5r8egdT/G+s1kPfX86PBaVPncAKYB9wKvbPdalvDT4bWo9bnxRzzdTDYHeLD1N3WzPTeKLX1n5rqIOAX4D5rddhdm5tKIOLn1+ELgSpqdzvcCq4HjN7btGJzGqOnkegAvpFnGgeaT7V8y8/tb+BRG1UiuR0TsCCwGtgMaEXEazS7NJ3rp+dHJtaD5DUHVPTeAs4ApwBda574uM+f22t+OTq4Flf7dAN4EvDMi1gJPAW/LZmpvtueGn0wmSVIXK/k1akmSep5BLUlSFzOoJUnqYga1JEldzKCWJKmLGdSSJHUxg1qSpC5mUEuS1MX+Py1JQ5ApLUeAAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(ths, precsMM, label='Ours')\n", "plt.plot(ths, precsTh, label='Thresholding')\n", "plt.legend()\n", "plt.title('Precision')" ] }, { "cell_type": "code", "execution_count": 24, "id": "e848b43e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Recall')" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeMAAAHiCAYAAADbK6SdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABPqElEQVR4nO3dd3xV5eHH8c+TPUnIBDJIwkzYEIbIUkQFrahV6y5ubR3Vtj+12trWDrusWrW4d0XrrnuDyEbZeyfMEAhkz/P74wQIGCRkPXd836/Xfd3k3nNvvjle+eac85znGMdxEBEREXsCbAcQERHxdypjERERy1TGIiIilqmMRURELFMZi4iIWKYyFhERsUxlLCLfyxjzpTHm6vqvpxhjZtrOJOJrVMYiXsYYs8kYU26MKTHG7DDGPGuMibKdS0SaT2Us4p1+4DhOFDAQGATcaTeOiLSEyljEizmOswP4CLeUMcaMMMbMMsYUGWMWG2PGHVjWGBNnjHnGGLPNGLPXGPNW/eMdjTHvGmMK6h9/1xiT2v6/jYj/UhmLeLH60pwIrDPGpADvAX8A4oBfAK8bYxLrF38BiAD6AEnAP+sfDwCeAboC6UA58HB7/Q4iAkG2A4hIs7xljHGAKOBz4B7gOuB9x3Her1/mE2PMAmCSMeZj3NKOdxxnb/3z0wEcxykEXj/wxsaYPwJftM+vISKgLWMRb3W24zjRwDigN5CAu2V7fv0u6iJjTBEwCugMpAF7GhTxQcaYCGPMY8aYzcaY/cAMINYYE9hOv4uI31MZi3gxx3GmA88CfwfygBccx4ltcIt0HOe++ufijDGxjbzNz4FewHDHcToAY+ofN23+C4gIoDIW8QUPABOAmcAPjDGnGWMCjTFhxphxxphUx3G2Ax8Aj9YP2Ao2xhwo3Wjc48RFxpg43F3eItKOVMYiXs5xnALgeeBnwGTgV0AB7tbwLzn0//llQDWwCthVvzy4ZR4O7AbmAB+2S3AROcg4jmM7g4iIiF/TlrGIiIhlKmMRERHLVMYiIiKWqYxFREQsUxmLiIhYZm06zISEBCcjI8PWjxcREWl3Cxcu3O04TuKRj1sr44yMDBYsWGDrx4uIiLQ7Y8zmxh7XbmoRERHLVMYiIiKWqYxFREQs0/WMRUR8QHV1Nfn5+VRUVNiOIkBYWBipqakEBwc3aXmVsYiID8jPzyc6OpqMjAyM0dUvbXIch8LCQvLz88nMzGzSa7SbWkTEB1RUVBAfH68i9gDGGOLj449rL4XKWETER6iIPcfx/rdQGYuISKvIz89n8uTJ9OjRg27dunHLLbdQVVVlO5ZXUBmLiEiLOY7Dueeey9lnn83atWtZs2YNJSUl3HXXXU1+j9ra2jZM6NlUxiIi0mKff/45YWFhXHHFFQAEBgbyz3/+k6effppHH32UG2+88eCyZ555Jl9++SUAUVFR/OY3v2H48OHMnj2bO+64g5ycHPr3788vfvELG7+KFRpNLSLiY373v+Ws2La/Vd8zp0sH7vlBn6M+v3z5coYMGXLYYx06dCA9PZ2ampqjvq60tJS+ffvy+9//nj179nDVVVexatUqjDEUFRW1VnyPpy1jERFpMcdxGh20dLTHDwgMDOSHP/wh4JZ3WFgYV199NW+88QYRERFtltfTaMtYRMTHfN8WbFvp06cPr7/++mGP7d+/n7y8PGJiYqirqzv4eMNTfsLCwggMDAQgKCiIefPm8dlnnzFt2jQefvhhPv/88/b5BSzTlrGIiLTY+PHjKSsr4/nnnwfcwVg///nPmTJlCllZWSxatIi6ujry8vKYN29eo+9RUlLCvn37mDRpEg888ACLFi1qx9/ArmNuGRtjngbOBHY5jtO3kecN8CAwCSgDpjiO801rBxUREc9ljOHNN9/kJz/5Cffeey91dXVMmjSJP/3pT4SEhJCZmUm/fv3o27cvgwcPbvQ9iouLmTx5MhUVFTiOwz//+c92/i3sacpu6meBh4Hnj/L8RKBH/W048O/6exER8SNpaWn873//a/S5l156qdHHS0pKDn7duXPno241+7pj7qZ2HGcGsOd7FpkMPO+45gCxxpjOrRWwKapq6thXVk1Nbd2xFxYREfEwrTGAKwXIa/B9fv1j21vhvZtkweY9XPzEXAAiQgKJDguiQ1gw6XERZCVG0i0xiqzEKDrHhJEYHUpYcGB7RRMRETmm1ijjxsasO40uaMy1wLUA6enprfCjXV3jI/n1mTkUV1RTXFFDSUUNReVVbC4sY+a63VTWHL7FHB0aRGJ0KInRoSR3CKNTTBhJ0aH07tSB3IyOKmsREWlXrVHG+UBag+9TgW2NLeg4zuPA4wC5ubmNFnZzpMSGc9Woxi9TVVvnsK2onA27S9m5v4KC4sqDt13FFSzKK2Ln8oqDhR0SFEBu146c2D2BU7KT6dUpurViioiINKo1yvgd4EZjzDTcgVv7HMdpt13UxxIYYEiLiyAt7ugnjzuOQ1FZNYvyivh63W5mrtvN3z5azd8+Ws2Qrh25ZHg6k/p11haziIi0iaac2vQyMA5IMMbkA/cAwQCO40wF3sc9rWkd7qlNV7RV2LZijKFjZAgn9U7ipN5JABQUV/L2oq28NHcLt726mN+/u4ILh6Zz3ZgsOkaGWE4sIiK+5Jhl7DjORcd43gF+2mqJPERidChXj87iqlGZzF5fyEtzt/DYjPW8NGcz147J4spRmUSGagIzERGAwsJCxo8fD8COHTsIDAwkMTGRTZs20aVLF1asWNGqP++3v/0tUVFRx3UxiaioqMNOpTpgypQpnHnmmZx33nlcffXV3HbbbeTk5LRm3GNSmxyDMYaR3RMY2T2BNTuL+ftHq/nHJ2t4bvYmbjq5BxcPTyc4UBOZiYh/i4+PPzhjVsOi3LRpE2eeeeYxX19TU0NQkP1KevLJJ638XLXIceiZHM3jl+fyxk9G0j0pinveWc4ZD33FrHW7bUcTEfFYtbW1XHPNNfTp04dTTz2V8vJyAMaNG8evfvUrxo4dy4MPPsjChQsZO3YsQ4YM4bTTTmP7dnf40UMPPXTwsooXXnjhwfddsWIF48aNIysri4ceeujg4/fffz99+/alb9++PPDAA9/J4zgON954Izk5OZxxxhns2rXr4HPjxo1jwYIFgLslfddddzFgwABGjBjBzp07AVi/fj0jRoxg6NCh/OY3vyEqKqrF68j+nyFeaHB6R16+ZgQfr9jJve+u4OIn5zKxbyd+NSn7eweKiYi0iw/ugB1LW/c9O/WDifc166Vr167l5Zdf5oknnuCCCy7g9ddf59JLLwWgqKiI6dOnU11dzdixY3n77bdJTEzklVde4a677uLpp5/mvvvuY+PGjYSGhh52WcVVq1bxxRdfUFxcTK9evbjhhhtYsmQJzzzzDHPnzsVxHIYPH87YsWMZNGjQwde9+eabrF69mqVLl7Jz505ycnK48sorv5O7tLSUESNG8Mc//pH/+7//44knnuDuu+/mlltu4ZZbbuGiiy5i6tSpzVonR9KWcTMZYzitTyc+vW0sP5/Qky9W7+K0B2Ywa722kkVEGsrMzGTgwIEADBkyhE2bNh187kc/+hEAq1evZtmyZUyYMIGBAwfyhz/8gfz8fAD69+/PJZdcwosvvnjYruwzzjiD0NBQEhISSEpKYufOncycOZNzzjmHyMhIoqKiOPfcc/nqq68OyzNjxgwuuugiAgMD6dKlCyeffHKjuUNCQg7uYm+Ye/bs2Zx//vkAXHzxxS1eP6At4xYLCw7kpvE9OGdwClc8M58rnpnPY5cNYVyvJNvRRMRfNXMLtq2EhoYe/DowMPDgbmqAyMhIwN113KdPH2bPnv2d17/33nvMmDGDd955h3vvvZfly5c3+r41NTW4Y4qP7fuusXxAcHDwweUOvH9b0ZZxK0ntGMG0a0fQLTGKa55fwEfLd9iOJCLiNXr16kVBQcHBMq6urmb58uUHL7t40kkn8de//pWioqJGR0QfMGbMGN566y3KysooLS3lzTffZPTo0d9ZZtq0adTW1rJ9+3a++OKL48o6YsSIg9dunjZt2nH+po1TGbei+KhQXr5mBH26xPCTl77hncWNTkQmIiJHCAkJ4bXXXuP2229nwIABDBw4kFmzZlFbW8ull15Kv379GDRoELfeeiuxsbFHfZ/BgwczZcoUhg0bxvDhw7n66qsPO14McM4559CjRw/69evHDTfcwNixY48r6wMPPMD999/PsGHD2L59OzExMc35lQ9jmrpJ39pyc3OdAyPWfE1JZQ1XPjufBZv2MPXSIZzap5PtSCLi41auXEl2drbtGH6hrKyM8PBwjDFMmzaNl19+mbfffvs7yzX238QYs9BxnNwjl9WWcRuICg3i2SuG0i8lhpunfcuivCLbkUREpJUsXLiQgQMH0r9/fx599FH+8Y9/tPg9VcZtJCIkiCd/PJTE6FCuenY+WwrLbEcSEZFWMHr0aBYvXsySJUuYMWMG3bt3b/F7qozbUGJ0KM9eMYxax2HKM/PYW1plO5KIiHgglXEb65YYxROX55JfVM41zy+gvKrWdiQR8VG2xgDJdx3vfwuVcTsYmhHH/RcMYOGWvVz0xBwKSyptRxIRHxMWFkZhYaEK2QM4jkNhYSFhYWFNfo0m/WgnZ/bvQlBAALdM+5Zz/z2LZ68YRmZCpO1YIuIjUlNTyc/Pp6CgwHYUwf3jKDU1tcnL69SmdvbNlr1c/dwCHMfhyR8PZUjXjrYjiYhIO9GpTR5icHpH3rhhJB3Cg7n4iTl8tVZ/xYqI+DuVsQUZCZG8ccNIMhMiue6FhXy7Za/tSCIiYpHK2JL4qFCev2oYidGhXPHsfNbuLLYdSURELFEZW5QUHcYLVw4nODCAy56aR/5eTQwiIuKPVMaWpcdH8PyVwyirquHyp+axW6c9iYj4Hd8o431bYda/oNw7j71md+7A01OGsm1fOZc9NY+iMs3UJSLiT3yjjPduhI/vhs3fvSi1t8jNiOPxy3JZv6uEHz89j/0V1bYjiYhIO/GNMk7JhcBQ2Py17SQtMqZnIo9eMpjl2/Zz5TPzKauqsR1JRETagW+UcXAYpObCppm2k7TYKTnJPHjhoIOTg1RUay5rERFf5xtlDND1RNixBCr22U7SYmf078zfzx/A7A2F/O2j1bbjiIhIG/OdMs44EZw62DLXdpJWce7gVM4ZlMJ/5m7RpRdFRHyc75Rx6jAICIbN3r+r+oDrx3ajvLqW52dvth1FRETakO+UcUgEpAyGTd49iKuhnsnRjO+dxHOzN+k6yCIiPsx3yhjc48bbvoXKEttJWs3147qxp7SKVxfk2Y4iIiJtxLfKOONEcGohzzeOGwPkdu3I4PRYnvhqAzW1dbbjiIhIG/CtMk4bDibQ6883bsgYw/Vju5G/t5z3lm63HUdERNqAb5VxaDR0GehTx40BTslOpntSFFOnb8BxHNtxRESklflWGYN73HjrQqjynSsgBQQYrh2Txcrt+5m+psB2HBERaWW+V8YZo6CuGvLn207Sqs4emEKXmDDuenOZLrUoIuJjfK+M00eACfCp48YAIUEBPH55LsUV1Vzy5Fx27q+wHUlERFqJ75VxWAx06udzx40B+qbE8NyVw9hdXMnFT8zRtY9FRHyE75UxQNdR7m7qat/behyU3pGnpgxla5GufSwi4it8s4wzToTaSncglw8akRV/8NrHN738rUZYi4h4Od8s47Th7v22b+zmaENjeiZy+8TefLV2NzPW7rYdR0REWsA3yzgyAaK7wPYltpO0qctGdCU9LoI/v7+S2jptHYuIeCvfLGNwB3Ht8O0yDgkK4Jen9WLVjmLe/Har7TgiItJMvlvGnfvD7jVQXW47SZs6o19nBqTG8I+PV1NRrSs7iYh4I98t4079wamDnStsJ2lTAQGGOyZms31fBc98vcl2HBERaQbfLePO/d37HYvt5mgHJ3SLZ3zvJB79Yh17SnWqk4iIt/HdMo7tCqExPj+I64DbJ/amtKqGf32+1nYUERE5Tr5bxsbUD+JaajtJu+iZHM2PhqbzwuzNrNqx33YcERE5Dr5bxuDuqt65HOr8Y2DT/53Wi+iwIO5+cxl1OtVJRMRr+HYZd+oPNeWw2z923XaMDOFXk7JZsHkv/12YZzuOiIg0kW+X8cFBXP5x3BjgvCGpDMuI488frKJQF5IQEfEKvl3GCT0hMNSvytgYwx/O6UtJRQ1//mCV7TgiItIEvl3GgcGQlO03I6oP6JkczTVjsnhtYT5zNxTajiMiIsfg22UM7q7qHUvAz65sdPPJPUiJDefXby/TvNUiIh7O98u4U38o3wv78m0naVfhIYHcdUY2a3aW8PYizVstIuLJ/KOMwW/ON27o9D6dyO7cgQc/W0t1bZ3tOCIichS+X8bJfQDjV4O4DggIMPx8Qk82F5bxxjf+tWdARMSb+H4Zh0ZBfHe/G8R1wPjsJAakxfLQZ+uorPGPyU9ERLyN75cxHBrE5YeMMdw2oSdbi8p5db4mAhER8UT+Ucad+sO+PCjbYzuJFWN6JJDbtSMPf7FO1zwWEfFAflLG/dx7PxzEBe7W8c9P7cXO/ZW8OGez7TgiInIE/yjjzgPcez8tY3CveTyyWzz//nI9+yuqbccREZEG/KOMIxMgMhEKVtpOYtUdE3uzp6yKv3+02nYUERFpwD/KGCCxN+zy7zLunxrL5SO68sKczSzKK7IdR0RE6vlPGSflQMFqv5sW80g/P60XiVGh3PXmUmo0EYiIiEfwozLuDVUl7qhqP9YhLJh7ftCH5dv289xsDeYSEfEE/lPGidnuvZ/vqgaY1K8T43olcv/Hq9m+r9x2HBERv+c/ZZzU271XGWOM4d7Jfal1HH73zgrbcURE/J7/lHF4R4juDAWrbCfxCGlxEdx0cg8+XL6DBZv8czIUERFP4T9lDBpRfYQrTsygY0Qwj83YYDuKiIhf868yTsp2R1TXaRQxQERIEJefkMEnK3aybleJ7TgiIn7L/8q4phyKNtlO4jEuP6ErYcEBPKGtYxERa5pUxsaY040xq40x64wxdzTyfIwx5n/GmMXGmOXGmCtaP2orODiiWseND4iPCuX8IWm8+e1Wdu6vsB1HRMQvHbOMjTGBwCPARCAHuMgYk3PEYj8FVjiOMwAYB/zDGBPSyllbLrGXe79LI4gbunp0JjV1dTzz9SbbUURE/FJTtoyHAescx9ngOE4VMA2YfMQyDhBtjDFAFLAHqGnVpK0hrAPEpGlE9RG6xkcysV9nXpqzmWJdREJEpN01pYxTgIbTVuXXP9bQw0A2sA1YCtziOI5njpJK7K3d1I24bkwWxZU1vDxvi+0oIiJ+pyllbBp57MgJnk8DFgFdgIHAw8aYDt95I2OuNcYsMMYsKCgoOM6orSSpN+xeA7Wet+FuU//UWEZ2i+epmRupqvHMv6NERHxVU8o4H0hr8H0q7hZwQ1cAbziudcBGoPeRb+Q4zuOO4+Q6jpObmJjY3Mwtk5gNtZWwd6Odn+/Brh/bjZ37K3lpruasFhFpT00p4/lAD2NMZv2grAuBd45YZgswHsAYkwz0AjzzXJkkzVF9NKN7JDCqewIPfLqWorIq23FERPzGMcvYcZwa4EbgI2Al8KrjOMuNMdcbY66vX+xeYKQxZinwGXC74zi72yp0ixwYUa1BXN9hjOHuM7Mprqjmwc/W2o4jIuI3gpqykOM47wPvH/HY1AZfbwNObd1obSQkEmK76vSmo+jdqQM/GprOC7M3c+mIrnRLjLIdSUTE5/nXDFwHJGVrRPX3uG1CT8KCA/nz+9qVLyLSHvy3jAvXQa3OqW1MYnQoPz2pO5+u3MXMtZ55tEFExJf4ZxknZkNdNRSut53EY11xYgapHcP5w3srqK078kw2ERFpTf5Zxkn1Z13puPFRhQUHcufEbFbtKOapmZ45MF5ExFf4Zxkn9AQToBHVxzCpXydOzUnmbx+tZmn+PttxRER8ln+WcXA4dMxQGR+DMYa//LA/8ZGh3DztW0orNWuZiEhb8M8yBkjoBQVrbKfweB0jQ3jgwoFsKizlnneW244jIuKT/LeME3vVj6jW1t6xjMiK58aTuvPawnzeXrTVdhwREZ/j32VcV605qpvolvE9GJwey91vLiNvT5ntOCIiPsW/yxigYLXdHF4iKDCABy8cRHVdHY98sc52HBERn+K/ZZzQ073XIK4mS4uL4NzBqbzx7VYKSyptxxER8Rn+W8ah0dAhxb22sTTZlSdmUFVTx3/mbrEdRUTEZ/hvGYO7q1pbxsele1I0Y3sm8vyczVTW1NqOIyLiE/y7jBN6we61UFdnO4lXuXJUJgXFlby3ZLvtKCIiPsG/yzixF1SXwf5820m8ypgeCXRPiuKpmRtxHM1bLSLSUipj0Ijq42SM4coTM1m+bT/zNu6xHUdExOv5eRnXXzBCZXzczhmUQmxEME9/rfO0RURayr/LOCIOIhI0iKsZwkMCuXhYOh+v2MmWQk0CIiLSEv5dxuDuqtbpTc1y+QkZBBqjrWMRkRZSGR84vUkDkY5bp5gwzhrQhVfm57G3tMp2HBERr6UyTugFFfugZJftJF7p2rFZlFfX8uKczbajiIh4LZXxwRHVOm7cHL07dWBcr0SenbWJimpNAiIi0hwq4wNlrOPGzXbdmG4Ullbx2kKdry0i0hwq4+jOENpBpze1wIisOAakxvDkVxuordOxdxGR46UyNsa9gpN2UzebMYbrxnZjU2EZHy/fYTuOiIjXURmDO/mHdlO3yGl9OtE1PoKp09drikwRkeOkMgZI7AklO6F8r+0kXiswwHDN6CwW5+9jrqbIFBE5LipjcE9vAijQ1nFLnDcklfjIEP795XrbUUREvIrKGHR6UysJCw7kylGZTF9TwLKt+2zHERHxGipjgNh0CArTceNWcOmIrkSHBvHv6do6FhFpKpUxQEAgJPSAXSttJ/F6MeHBXHZCV95fup0NBSW244iIeAWV8QFJOdpN3UquHJVJSGAAj03fYDuKiIhXUBkfkJQN+7dCeZHtJF4vISqUC4em8ca3+WwrKrcdR0TE46mMD0jMdu81E1eruGZMFo4DT3ylrWMRkWNRGR+QVF/Gu1bYzeEjUjtGcPagFKbNy6OwpNJ2HBERj6YyPiAmDUKiNIirFV0/thsVNbU88/Um21FERDyayviAgAD3fOMClXFr6Z4Uxel9OvHcrE3sK6+2HUdExGOpjBtKytaWcSu76eQeFFfW8Ky2jkVEjkpl3FBiNpQWQOlu20l8Rk6XDpyak8xTMzdQXKGtYxGRxqiMGzo4iEtbx63p5vE92F9Rw3OzNtmOIiLikVTGDSXluPcq41bVNyWG8b2TeHLmRkoqa2zHERHxOCrjhqI7QViMTm9qAzeN70FRWTUvzN5sO4qIiMdRGTdkjKbFbCMD02IZ2zORJ77aQFmVto5FRBpSGR8pKdvdMnYc20l8zs3je7CntIoX52jrWESkIZXxkRKzoWIfFG+3ncTnDOnakdE9Enh8xgYqqmttxxER8Rgq4yNpRHWbuunkHuwuqeLleVtsRxER8Rgq4yOpjNvUsMw4hmXG8dj0DVTWaOtYRARUxt8VmQCRiZoWsw3ddHJ3duyv4PWFW21HERHxCCrjxmhazDY1qnsCA9NiefTLdVTX1tmOIyJincq4MYnZsGsV1Kko2oIxhptO7k7+3nLeXrTNdhwREetUxo1JyobqUtiXZzuJzzq5dxI5nTvw6BfrqK3TaWQi4t9Uxo3RtJht7sDW8Ybdpby3VKeRiYh/Uxk3JrGXe69pMdvUaX060T0pin99tlZbxyLi11TGjQmPhQ4pmhazjQUEGG6b0JO1u0p4dYEOCYiI/1IZH01SNuzUlnFbm9i3E0MzOvKPj1fresci4rdUxkeTlAO7V0OtCqItGWO4+4wcdpdU8cgX623HERGxQmV8NMl9oLYKClUQbW1AWiznDkrh6ZkbydtTZjuOiEi7UxkfzcER1cvt5vATvzy9FwEBcN8HOk4vIv5HZXw0ib3ABOq4cTvpHBPOdWO68d7S7czftMd2HBGRdqUyPpqgUIjvrtOb2tF1Y7NI7hDKve+uwNH1pEXEj6iMv09yDuzUbur2EhESxM8n9GJJ/j6mrymwHUdEpN2ojL9PUh8o2gyVxbaT+I2zB6WQ3CGUx6ZvsB1FRKTdqIy/T/KBQVwaVNReQoICuGpUJrM3FLIkv8h2HBGRdqEy/j4aUW3FRcPSiQ4N4rEZ2joWEf+gMv4+sV0hOFIjqttZdFgwF49I54Ol29lSqPOORcT3qYy/T0CAOy2mRlS3uytPzCQwwPDkTG0di4jvUxkfy4ER1TrVpl0ldwjj7IEpvLogjz2lVbbjiIi0KZXxsST1gfI9ULLTdhK/c+2YLCqq63h+9ibbUURE2pTK+FgOjKjW+cbtrkdyNKdkJ/HcrE2UV9XajiMi0mZUxseS1Me913FjK64d0429ZdW88W2+7SgiIm1GZXwskfEQlawtY0uGZnSkX0oMT83cSF2djtuLiG9qUhkbY043xqw2xqwzxtxxlGXGGWMWGWOWG2Omt25My5I0LaYtxhiuHp3JhoJSvlyzy3YcEZE2ccwyNsYEAo8AE4Ec4CJjTM4Ry8QCjwJnOY7TBzi/9aNalNwHClZDbY3tJH5pUr/OdOoQxlMzN9qOIiLSJpqyZTwMWOc4zgbHcaqAacDkI5a5GHjDcZwtAI7j+NYmTFIO1FbCHp3zakNwYAA/HpnB1+sKWbFtv+04IiKtrillnALkNfg+v/6xhnoCHY0xXxpjFhpjLm/sjYwx1xpjFhhjFhQUeNFVeZI1LaZtFw9LJzw4UFvHIuKTmlLGppHHjhxJEwQMAc4ATgN+bYzp+Z0XOc7jjuPkOo6Tm5iYeNxhrUnsDSZA02JaFBMRzAW5qbyzeCu79lfYjiMi0qqaUsb5QFqD71OBbY0s86HjOKWO4+wGZgADWieiBwgOh7gsnd5k2RUnZlJT5/DCnM22o4iItKqmlPF8oIcxJtMYEwJcCLxzxDJvA6ONMUHGmAhgOLCydaNaltwHdiy1ncKvZSREckp2Mi/O2axJQETEpxyzjB3HqQFuBD7CLdhXHcdZboy53hhzff0yK4EPgSXAPOBJx3GWtV1sCzoPhKLNULbHdhK/ds3oLPaWVfOfeVtsRxERaTVBTVnIcZz3gfePeGzqEd//Dfhb60XzMCmD3ftt30L38Xaz+LFhmXGMyIrj31+udwd1hQTajiQi0mKagaupOtcfAt/2rd0cwq2n9GR3SSUvzdWxYxHxDSrjpgrv6A7iUhlbNzwrnpHd4pk6fT1lVZqIRUS8n8r4eHQZrDL2ELdO6Mnukipe1MhqEfEBKuPj0WUQ7N8Kxbq2sW1DM+IY1T2Bx6Zv0NaxiHg9lfHxODCIa/siqzHEdeuEHhSWVvH8bG0di4h3Uxkfj079AQNbv7GdRIAhXeMY3SOBx2dsoLRSW8ci4r1UxscjNAoSe+m4sQe5dUJP9pRW8fgMXcRDRLyXyvh4dRkM274BRxe69wSD0ztyRr/OPDZjPdv3lduOIyLSLCrj49VlEJQWuAO5xCPcMbE3dXXwtw9X244iItIsKuPj1XAmLvEIaXERXDU6kze+3cqivCLbcUREjpvK+Hgl94GAIA3i8jA/GdeNhKgQ/vDuChwdQhARL6MyPl7B4ZCUrS1jDxMdFszPT+3Fgs17eW/pdttxRESOi8q4OQ7MxKUtMI9yQW4avTtF8+f3V1FRrUssioj3UBk3R5dBUFEEezfaTiINBAYYfnNmDluLynn483W244iINJnKuDk0iMtjjeyewHlDUnn0y3Us3KxrT4uId1AZN0diNgSGahCXh7rnBzl0iQ3n1lcWa2YuEfEKKuPmCAqBTn1h2yLbSaQR0WHB3H/BQPL2lnHvuytsxxEROSaVcXN1GexeMKJOA4U80bDMOK4b041p8/P4ZIWusiUink1l3FwpQ6CqBAo065Onum1CT3I6d+CO15dQUFxpO46IyFGpjJsrdah7v3WB3RxyVCFBATxw4UCKK2v42SvfUlNbZzuSiEijVMbNFd8NwmIhf77tJPI9eiZH84fJffl6XSF//3iN7TgiIo1SGTeXMe6u6vyFtpPIMVwwNI1Lhqczdfp63tfsXCLigVTGLZGaCwUrobLEdhI5ht/8IIdB6bH84r+LWbuz2HYcEZHDqIxbInUoOHWa/MMLhAYFMvXSIUSEBHHtCwvZX1FtO5KIyEEq45ZIGeLe67ixV0juEMajlwwmb08Zv317ue04IiIHqYxbIiIO4rJgq44be4thmXFcOyZL1z4WEY+iMm6plFzIX6ArOHmRn5zUnYSoUO7VtY9FxEOojFsqNRdKdsD+rbaTSBNFhQbxi1N7snDzXt5dotHVImKfyrilUnPd+3xN/uFNzs9NI7tzB+77QNc+FhH7VMYtldzPvYKTBnF5lcAAw6/PyGZrUTlPf63rUouIXSrjlgoKgc79NYjLC43snsAp2ck8+sV6zV0tIlapjFtDSq57OcVanbvqbX41qTcV1bX8/SNd8ENE7FEZt4bUXKgph126dq63yUqM4spRmbyyII+Fm/fajiMifkpl3Bo0iMur3TK+B51jwrj7rWW6spOIWKEybg2xXSEiQWXspSJDg7jnBzms3L6f52Zvth1HRPyQyrg1GONuHevaxl7rtD6dGNcrkfs/Xs2OfRW244iIn1EZt5bUXNi9Bsp13NEbGWP4/Vl9qalzuPddHfsXkfalMm4tqcPce13f2Gulx0fw05O6897S7UxfU2A7joj4EZVxa0kZAiYA8ubaTiItcN3YLLISIvntO8up1mAuEWknKuPWEhoFyX1Vxl4uNCiQX03KZuPuUqbNz7MdR0T8hMq4NaWPcGfiqq2xnURaYHx2EsMy4njw0zWUVOq/pYi0PZVxa0obDlUlmvzDyxljuHNSb3aXVPHEjA2244iIH1AZt6a0+kFc2lXt9Qald2RSv0488dUGdhXrVCcRaVsq49YUkwbRnVXGPuKXp/WmqqaOhz5bazuKiPg4lXFrMsbdOlYZ+4TMhEguGpbOy/PyWF9QYjuOiPgwlXFrSxsORVtg/3bbSaQV3Dy+B2FBAfztQ13VSUTajsq4taUNd+/z59nNIa0iMTqUa8d048PlO1i4eY/tOCLio1TGra1TfwgMhTyVsa+4enQmidGh/PG9lTiOYzuOiPgglXFrCwqBlME6buxDIkODuG1CT77ZUsRHy3fYjiMiPkhl3BbShsG2RVCtU2J8xflDUumRFMVfPlytaTJFpNWpjNtC2nCoq4bti2wnkVYSFBjAHRN7s3F3Kf+Zu8V2HBHxMSrjtpCqyT980cm9kxiRFceDn62luKLadhwR8SEq47YQlQhxWRrE5WOMMfxqUjZ7SquYOn297Tgi4kNUxm0lbbi7ZazRtz6lf2osZw3owpNfbSRvT5ntOCLiI1TGbSVtGJQWwB5daMDX3DGxN4EBhnveWa5TnUSkVaiM20r6Ce79ltl2c0ir6xIbzm0TevL5ql18tHyn7Tgi4gNUxm0loReEx8FmlbEvmjIyg96dovnd/5ZTqmsei0gLqYzbSkCAu3W8ZZbtJNIGggID+OM5/di+r4IHPl1jO46IeDmVcVvqeoJ7zLhYszb5oiFdO3LRsDSe/noTK7fvtx1HRLyYyrgtpY907zdr69hX3X56b2LCg7nrzaXU1Wkwl4g0j8q4LXXuD8ERGsTlw2IjQrhzYm++2VLEO4u32Y4jIl5KZdyWAoPdU5w0iMun/XBwKn26dOBvH62morrWdhwR8UIq47aWPhJ2LoPyIttJpI0EBBjumpTN1qJynvl6k+04IuKFVMZtresJgKOpMX3cyO4JjO+dxKNfrKOwpNJ2HBHxMirjtpaSCwHBOsXJD9w5qTdl1bU89Nla21FExMuojNtaSAR0GagR1X6ge1I0Fw5N46W5W9hQUGI7joh4EZVxe+g6ErZ+A9XltpNIG/vZKT0JDQrgLx+ush1FRLyIyrg9pI+EumrYutB2EmljidGh3DCuGx8t38mHyzTZi4g0jcq4PaQPB4xOcfITV4/OYkBqDD9/dRHrdhXbjiMiXkBl3B7CO0JSjgZx+Ymw4ECmXjaE8JBArn1+Ifsrqm1HEhEP16QyNsacboxZbYxZZ4y543uWG2qMqTXGnNd6EX1E15Hu6U21usKPP+gcE84jFw9my54ybp22SFNlisj3OmYZG2MCgUeAiUAOcJExJucoy/0F+Ki1Q/qEridAVQnsWGw7ibST4Vnx/PrMHD5btYsHdLqTiHyPpmwZDwPWOY6zwXGcKmAaMLmR5W4CXgd2tWI+35E5FjCw/nPbSaQdXX5CV84bkspDn63lq7UFtuOIiIdqShmnAHkNvs+vf+wgY0wKcA4wtfWi+ZjIBPd843Wf2U4i7cgYwx/O7ktmQiS/eXs5lTWau1pEvqspZWwaeezIA2APALc7jvO9/9IYY641xiwwxiwoKPDDrYTup7jHjTVPtV8JCw7kd2f1YePuUp6YscF2HBHxQE0p43wgrcH3qcCR14rLBaYZYzYB5wGPGmPOPvKNHMd53HGcXMdxchMTE5uX2Jt1PwWcWtg43XYSaWdjeiYyqV8nHv5iHXl7ymzHEREP05Qyng/0MMZkGmNCgAuBdxou4DhOpuM4GY7jZACvAT9xHOet1g7r9VJyITQG1n1qO4lY8Oszcwgwht/9b4XtKCLiYY5Zxo7j1AA34o6SXgm86jjOcmPM9caY69s6oE8JDIJu49zjxo5OdfE3nWPCuXl8Dz5duZPPVu60HUdEPEiTzjN2HOd9x3F6Oo7TzXGcP9Y/NtVxnO8M2HIcZ4rjOK+1dlCf0f0U2L8VCjR3sT+68sRMuidF8dv/LaeiWoO5RMSlGbjaW7fx7r12VfulkKAA7p3cl7w95dz3gf4gExGXyri9xaRAYrbK2I+d0C2eK07M4NlZm3h/6XbbcUTEA6iMbeg+3r2+cVWp7SRiyZ0TsxmYFsv/vbaETbv1ORDxdypjG7qfArVVsGmm7SRiSUhQAI9cMpigQMNPXvpGx49F/JzK2Ib0EyA4Qruq/VxKbDj3XzCAFdv387v/LbcdR0QsUhnbEBwGGaNVxsLJvZP5ybhuvDwvj3cWHzmXjoj4C5WxLd1PgT0boHC97SRi2W0TejIgLZbf/285+8p17WMRf6QytqXHKe792k/s5hDrggID+OPZfdlTWsX9H6+2HUdELFAZ2xKXBQm9YPX7tpOIB+ibEsOlI7rywpzNLNu6z3YcEWlnKmObek+CzV/rKk4CwM9P7UVcZAi/fnsZdXWaLlXEn6iMbeo1CepqNJBLAIgJD+bOidl8u6WI/y7MO/YLRMRnqIxtShkCkYmw+gPbScRDnDs4haEZHbnvg1XsLa2yHUdE2onK2KaAQOh5mjuIq1ajaAWMMdx7dl/2V9Twlw81d7WIv1AZ29ZrElTuc48diwC9O3Xg6lGZTJufx9wNhbbjiEg7UBnblnUSBIVpV7Uc5pZTepAWF86dby7VVJkifkBlbFtIhFvIq98HRyNoxRUREsQfzu7HhoJSHv1SE8OI+DqVsSfoNRGKtsCuFbaTiAcZ2zORswd24d9frmPNzmLbcUSkDamMPUHP0917TQAiR/j1mTlEhgZx5xtLde6xiA9TGXuC6GRIyYVVKmM5XHxUKHefkcPCzXt5auZG23FEpI2ojD1F70mw7RvYv912EvEwPxycwvjeSfzx/ZXc/ZYGdIn4IpWxp+g1yb3Xrmo5gjGGqZcN4boxWbw4ZwvnTZ3FlsIy27FEpBWpjD1FYm+I7wHL37SdRDxQcGAAd07K5onLc9lSWMYZ//qKz1butB1LRFqJythTGAN9z3Un/yjWP7LSuAk5ybx382i6xkdww0vfsGLbftuRRKQVqIw9SZ9zwKmDFW/bTiIeLC0ugmevGEZseDA3/ucbSiprbEcSkRZSGXuSpGxIzIblb9hOIh4uISqUhy4axKbCUn71xlIcTRgj4tVUxp6m77mwZTbs22o7iXi4EVnx3DahJ+8s3sa0+brkoog3Uxl7mj7nuvcr3rIaQ7zDT8Z1Z3SPBO55Z7mOH4t4MZWxp0noDp36wTLtqpZjCwgw/PNHA4kND+an//mGfeW6FKeIN1IZe6I+58LWBbB3s+0k4gUSokJ55JLB5O0p45Zp31KraTNFvI7K2BP1Oce91znH0kRDM+L43eQ+fLm6gL99tNp2HBE5TipjTxSXCV0Ga1S1HJdLhnfl0hHpTJ2+nrcXaQCgiDdRGXuqvufC9sVQqGvZStP95sw+DMuM4/9eW8LS/H2244hIE6mMPdWBXdUayCXHISQogEcvGUxCVCjXvrCAvaVVtiOJSBOojD1VTCp0PRGWvAKa0EGOQ0JUKI9dNoTCkip+8d/FmhBExAuojD3ZgAuhcC1s/cZ2EvEyfVNi+NWk3ny2apeugyziBVTGnixnMgSFweL/2E4iXujHIzM4NSeZv3y4iiX5RbbjiMj3UBl7srAY6H0mLHsdaiptpxEvY4zhr+f1Jyk6jBv/8y37KzQhiIinUhl7ugEXQfleWPux7STihWIjQnjoooFsLSrnTl1QQsRjqYw9XdY4iEqGxdNsJxEvNaRrHL84tRfvLdnOb99ZrkIW8UBBtgPIMQQGQb/zYe5jUFoIkfG2E4kXun5sFntKK3niq43UOg6/P6svAQHGdiwRqactY28w4CKoq3aPHYs0gzGGX03K5vqx3XhxzhbuemspdZrDWsRjaMvYG3Tq617JafHLMPxa22nESxljuP30XgQGwCNfrKe2zuG+c/trC1nEA2jL2FsMuAi2fQMFugiANJ8xhl+c2oubx/fg1QX53P76Em0hi3gAlbG36HsemEBYpHOOpWWMMdw2oSc3j+/Bfxfmc+cb2mUtYpvK2FtEJ0PP0+HbF6C6wnYa8QG3ntKDm0/uzisL8vjVmypkEZtUxt5k+LVQVqiBXNIqjDHcOqEnN57UnWnz8zSoS8QilbE3yRwLib1h7lRdPEJahTGGn5/ak5+e1I2X5+UxdYYu2Slig8rYmxgDw6+DHUsgb67tNOIjDgzqOqNfZ+7/eA2L8opsRxLxOypjb9P/R+6c1XOn2k4iPsQYw5/O7UdyhzBufvlbijWPtUi7Uhl7m5BIGHQZrHgH9m21nUZ8SEx4MA9eOJD8vWX85u3ltuOI+BWVsTcadg04dbDgadtJxMfkZsRxy/ievPntVt74Jt92HBG/oTL2Rh0zoNckWPiMTnOSVnfjyd0ZlhHHr99axsbdpbbjiPgFlbG30mlO0kYCAwz/vHAgIUEBXPHMPApLdC1tkbamMvZWmWMhMRvmPKrTnKTVpcSG8+SPh7J9XwVXPbeA8qpa25FEfJrK2FsZAyNvhJ3LYN1nttOIDxrStSMPXTSIxflF3PTyN9TU1tmOJOKzVMberN8FEN0Fvn7AdhLxUaf16cTvzurDpyt3cc87y3G0F0akTaiMvVlQCJzwE9j0FeQvtJ1GfNTlJ2Rw3dgsXpq7hbvfWkZFtXZZi7Q2lbG3GzLFnQTk63/aTiI+7PbTenPN6ExemruFyQ9/zeodxbYjifgUlbG3C42GoVfDyndh91rbacRHBQQY7jojh2evGEphaSU/eHgmz83apN3WIq1EZewLhl8PgSEw6yHbScTHjeuVxAe3jGFkt3jueWc5v357me1IIj5BZewLopJg0CWweBoU77CdRnxcYnQoz0wZytWjMnlxzhb+uyDPdiQRr6cy9hUjb4K6Gve8Y5E2Zozhjom9GdktnrvfWsbybftsRxLxaipjXxGXBTlnw/ynoHS37TTiB4ICA3jookF0jAjhhhe/YV+ZrvQk0lwqY18y7g6oLtN5x9JuEqJCeeSSwWzfV85try6irk4DukSaQ2XsSxJ7udc7nvcE7N9uO434iSFdO3L3GTl8tmoXf3p/pWbqEmkGlbGvGXu7e+z4q3/YTiJ+5PITunLJ8HSenLmRHz0+hy2FZbYjiXgVlbGvicuEQZfBwmdh72bbacRPGGP44zn9ePDCgazZUcykh77itYX5Og9ZpIlUxr5ozC/BBMCMv9pOIn5m8sAUPvjZaHK6dOAX/13MzdMWUVpZYzuWiMdTGfuimBTIvRIWvQy719lOI34mtWMEL18zgl+e1ov3lmzj7Ee+Zn1Bie1YIh5NZeyrRt8GQaHw5Z9sJxE/FBhg+OlJ3XnhquEUllYx+eGv+Wi5JqQROZomlbEx5nRjzGpjzDpjzB2NPH+JMWZJ/W2WMWZA60eV4xKVBCNugGWvQ/4C22nET53YPYH/3TSKbomRXPfCQu77YBWVNbrqk8iRjlnGxphA4BFgIpADXGSMyTlisY3AWMdx+gP3Ao+3dlBphlG3QlQneP+XUKfTTcSOlNhwXrnuBC4als7U6es5619fsyS/yHYsEY/SlC3jYcA6x3E2OI5TBUwDJjdcwHGcWY7j7K3/dg6Q2roxpVlCo2HC72DbN7D4ZdtpxI+FBQfy53P78fSUXIrKqzjn0Vn87SNtJYsc0JQyTgEazgSfX//Y0VwFfNCSUNKK+l0AqcPg099CxX7bacTPndw7mY9vHcsPB6fwyBfuVvLG3aW2Y4lY15QyNo081ujJg8aYk3DL+PajPH+tMWaBMWZBQUFB01NK8wUEwMS/QGmBTnUSjxATHsxfzxvAM1cMZVdxBZMfnsmMNfr3QPxbU8o4H0hr8H0qsO3IhYwx/YEngcmO4xQ29kaO4zzuOE6u4zi5iYmJzckrzZEyGAZdCnP+DbvX2k4jAsBJvZJ458ZRdIkNZ8oz83jyqw2aJET8VlPKeD7QwxiTaYwJAS4E3mm4gDEmHXgDuMxxnDWtH1NabPw9EBwBH94B+gdPPERaXASv3zCSCTnJ/OG9ldz26mL2lFbZjiXS7o5Zxo7j1AA3Ah8BK4FXHcdZboy53hhzff1ivwHigUeNMYuMMTqXxtNEJcK4O2Hdp7D8TdtpRA6KDA3i35cM4Wen9ODtRVsZ+9cvePjztZRVaeYu8R/G1m6h3NxcZ8ECdXa7qq2BpyZA0Ra4cT5ExNlOJHKYtTuL+etHq/lkxU4So0O5eXwPLshNJTQo0HY0kVZhjFnoOE7ukY9rBi5/EhgEZ/0LKorgwzttpxH5jh7J0TxxeS6vXX8CGfER/PqtZYz965c8NXOjtpTFp6mM/U2nvjDqNlgyDdZ+ajuNSKNyM+J49boTeO7KYXSNj+Ded1dw4n2f86/P1urcZPFJ2k3tj2oqYepoqC6Dn8x2JwcR8WALNu3h0S/X8/mqXUzISebRSwYTHKhtCfE+2k0thwSFwuSHYV8+fPZ722lEjik3I46npwzld2f14ZMVO/n5q4uprdNZAeI7gmwHEEvShsHw62DuY9DjVOgxwXYikWP68cgMyqpq+cuHqwivn2IzIKCxeYlEvIu2jP3Z+HsguS+8fjXs2Wg7jUiT3DCuGzef3J1XFuTx+3dXaKIQ8QkqY38WEgE/esH9+pXLoKrMbh6RJrp1Qk+uHpXJs7M2ccr903ng0zVsKCixHUuk2VTG/i4uE374JOxcBu/+TLNziVcwxnDXGdn87bz+JEaH8uBnazn5H9M5819f8cWqXbbjiRw3lbG4x4tP+hUseQXmPWE7jUiTGGM4PzeNadeewOw7xnP3GdlUVNdxxbPz+fMHK6mu1TW8xXuojMU1+hfQcyJ8dCdsmWM7jchx6RQTxtWjs3j3plFcPDydx6Zv4KLH57B9X7ntaCJNojIWV0AAnDMVYtLgv1OgRLv6xPuEBQfyp3P68eCFA1mxfT9nPDSTz1fttB1L5JhUxnJIeKw7oKu8CF670p3LWsQLTR6Ywjs3jiIpOpQrn13AnW8soaRSn2fxXCpjOVynfnDmP2HTV/DFH2ynEWm27klRvH3jiVw3Notp8/OY+OAM5m3cYzuWSKNUxvJdAy+CIVfAzH/CqvdspxFpttCgQO6cmM2r152AwfCjx2dz+2tLWL2j2HY0kcNobmppXHUFPHM6FK6Hqz+DxJ62E4m0SGllDX/7aDUvz9tCZU0dI7LimDIyg1OykwnSPNfSTo42N7XKWI6uaAs8cTIEhsJVH0FMqu1EIi22t7SKVxbk8cLszWwtKqd3p2geu2wIXeMjbUcTP6ALRcjxi02HS1+Hyv3wwjlQWmg7kUiLdYwM4fqx3Zj+y3H866JB7NhfwQ/+NVOThYhVKmP5fp0HwMWvuFvJL/0QKvbbTiTSKoICA/jBgC7878ZRpHaM4Mrn5vPQZ2up09WgxAKVsRxb15Fw/nOwfQlMu9g9niziI9LiInj9hpGcMzCF+z9Zw5XPzWdbkSYLkfalMpam6XW6OynIpq/cSUFqq20nEmk14SGB/OOCAfx+ch/mbChkwv3TeXrmRl0zWdqNyliarv8FMOnvsOYDePN6qKu1nUik1RhjuPyEDD65dSxDM+P4/bsrOPuRr1mav892NPEDKmM5PsOugVN+C8teg3dv1VWexOekxUXwzJShPHzxILbvq+AHD89kyjPzmLVut66dLG0myHYA8UKjboXKEvjq7xAaDaf+AYyxnUqk1RhjOLN/F0b3SOSF2Zt4dtZmLn5yLjmdO3DNmEwm9u1MWHCg7ZjiQ3SesTSP48CHd8DcqW45j79HhSw+q6K6lrcXbeWJrzayblcJsRHBnDsolYuGpdEjOdp2PPEimvRDWl9dHbx3Gyx8BoZeAxP/6l79ScRH1dU5zFpfyMvzt/Dx8h1U1zoMy4jj12fm0C81xnY88QJHK2PtppbmCwhwLyoRGg2zHoKqEjjrYQjUx0p8U0CAYVSPBEb1SGB3SSVvfJPPk19t5OxHv+aa0Vn87JQe2n0tzaLNGGkZY2DC7+Hku2Hxy/DfH0NNpe1UIm0uISqUa8d045PbxnLe4FSmTl/PpAe/0pWhpFlUxtJyxsCYX8Lpf4FV78KLP4TyvbZTibSLmPBg/nJef166ejjVdXVc8Nhsrn5uPvM37dHoa2kyHTOW1rXkVXj7p+681he/CvHdbCcSaTdlVTU8PmMDz83axN6yaganx3Ld2G5MyE4mIEADHEUDuKQ9bZ4F0y4BHLjwP+50miJ+pLyqlv8uzOOJrzaQt6ecrIRIrh6dxbmDU3RM2c+pjKV9Fa6H/1wAezfDWQ/BwIttJxJpdzW1dXywbAePz9jA0q37SIgK4ccnZDDlxAyiw4JtxxMLVMbS/sr3wquXw8YZkHsVnP5nCAq1nUqk3TmOw+wNhTw2fQPT1xSQmRDJo5cMJrtzB9vRpJ3pesbS/sI7wqVvwsibYcFT8MxEKMqznUqk3RljGNktgeeuHMYr146gtLKGsx/5mv8u0P8P4lIZS9sKDIJT74ULXoCCNfDYGFj/ue1UItYMz4rn3ZtHMTi9I798bQm3v7aE8ipddMXfqYylfeScBdd+AVHJ8MK58PGvoabKdioRK5Kiw3jhqmH89KRuvLIgj5H3fcaf31/Jpt2ltqOJJTpmLO2rqgw++pU7hWbnAfDDpyChh+1UItbM27iHZ77eyMcrdlJb5zC6RwLnDUllXK8kYsI1yMvXaACXeJZV78HbN0JNBZz2Rxg8RfNai1/bub+CV+bn8fK8LWzfV0FQgGF4VhwTspM5JSeZ1I4RtiNKK1AZi+fZvx3eugE2fAHpJ7jzXCdl204lYlVdncO3eUV8smInn6zYwfoCd9d1707RTMhJZnx2Mv1TYjSJiJdSGYtnchxY9BJ8fDdUFsOJt7hTawaH204m4hE2FJTw2cpdfLJyJws27aHOgZTYcC4ens6PhqaREKXTBb2Jylg8W+lud1DX4v9AbFf34hM5k3WNZJEG9pZW8cXqXbz+TT5fryskJDCASf068eORGQxK72g7njSByli8w8YZ8MHtsGuFu+v6tD9CyhDbqUQ8zrpdJbw4ZzOvLcynpLKGMT0TuW1CTwamxdqOJt9DZSzeo7YGFr0In/8BSgug3wUw/jcQm2Y7mYjHKams4cU5m3ls+nr2llUzvncSt07oSd+UGNvRpBEqY/E+Ffth5j9h9iPu9yNugNG3QZj+kRE5UkllDc/N2sTjMzawr7ya84ek8n+n9yYxWseUPYnKWLxXUZ67lbxkGkTEw9jbYcgUzXMt0oj9FdU88vk6nv56I2FBgfxsQk8uP6ErwYE6ddATqIzF+21b5I663vQVRHeBUT+DwZdr5LVII9YXlPC7/61gxpoCuiVGctmIrpw1MIW4yBDb0fyaylh8g+O45yVP/xtsmeVOrznyJndLOTTadjoRj+I4Dp+u3MU/P1nDiu37CQ40nNQriXMHp3Ji93hdxtEClbH4nk0zYfpf3BHYoTGQOwWGXQcxKbaTiXicldv38/rCfN5atI3dJZUEGOjVqQNDMzoypGtHBqd3JLVjOEanE7YplbH4rvwFMPthWPE2mADocy7kXgnpI3SessgRamrrmLdxD/M27WHBpr18s2UvZfVXjUqICmVQeiyD0mMZkBpLny4diI3Qbu3WpDIW37d3M8x9DL55HqqKoWMmDLgIBlwIHbvaTifikWpq61i1o5hvt+zl2y1FfJtXxMYGV49KiwunX0oMfVNi6Fd/U0E3n8pY/EdlCaz8nzvN5qav3Me6joIBP3Jn9dKpUSLfa29pFcu27WPZ1v319/vYXFh28Pm0uHBOy+nET07qrgFhx0llLP5p72ZY8gosngZ71kNQGPSaBP1/BN3HQ6AGsIg0xb6yapZt28fSrfv4ZvNePl25k8iQIK4f140rTswgIiTIdkSvoDIW/+Y4sHWhW8rLXoPyvRAeB33OgX7nQ9pwXcJR5Dis21XMXz5czScrdpIUHcpNJ3fn/Nw0woIDbUfzaCpjkQNqqmD9Z7DkVVj9AdSUQ4dUyD4Tss9yB34F6B8UkaZYsGkP932wigWb95IQFcIVJ2Zy6fCuxERor1NjVMYijakshlXvuSOx130GtZUQmQS9J0HPiZA1VpOKiByD4zjM2bCHqdPXM31NAZEhgZyfm8YPB6fSN6WDTpdqQGUsciyVxbD2E1j5Dqz91B2RHRTuFnLP0yDrJIjLtJ1SxKOt2Lafx2as54OlO6iqraNbYiRnD0zhrIFd6BofaTuedSpjkeNRUwWbZ8LqD2HNB1C0xX28YwZkjXNvmWMhIs5iSBHPta+smveXbefNb7cyb+MeALonRTG+dxIn9U5iSNeOfjlftspYpLkcBwrXwfovYMOX7ulSlfsBA50H1JfzWEjJhbAOlsOKeJ78vWV8tHwnX6zaxdyNhVTXOoQHB5IWF05axwjS4iLITIhkbM9EMhJ8e+tZZSzSWmpr3JHZG6e75Zw3D+qqAQNJ2ZA6FNKGQcoQSOipwWAiDRRXVPP1ut3M27iXvL1l5O1xb6X1s4D1So7m1D7JnJrTiT5dOhAQ4FvHm1XGIm2lsgTy5rrTcubPg/z5ULHPfS4kCroMgpTB7ulTaSMgMt5uXhEP4zgO+XvL+XjFTj5evoP5m/ZQ50BsRDDDMuIYkRXP8Kw4enfqQKCXl7PKWKS91NW5u7W3feNuQW9dCDuWQm2V+3xCL0gfDp0HQnJfSM7RFadEGthTWsWXq3cxZ0MhczbsYcsed/aviJBA+qXEMDAtlgFpsaTHRZAUHUp8VKjXlLTKWMSm6grY9i1smQ1b5kDenENbz+AODEvuC8l93PtOfSE2QxORiADbisqZt3EPi/LcubNXbttPVW3dwecDDMRHhRIfGULHiBDiIkOIjQgmOiyY8OBAIkICCQsJJDo0iJiIYGLDg4mNCKFThzDCQ9r3MJLKWMSTOA7sy4Ody2HnMtixzP16z3pw6v+RCY6AxN6QlANJvd0t6vhuENsVAjX1oPivyppa1uwoYWtROQXFFewqrmTX/kr2lFWxt7SKvWVV7C2rpqSi5rDSPlJIUABjeyYysW8nxmcnExPe9hOVqIxFvEFVGRSsdMt510r3610roWTnoWUCgtwt6bhuEN8d4rPc+7hu0CFFW9MiDdTU1lFeXUt5VS3FlTUUlVWzr7yKorJqluTv48NlO9ixv4LgQENu1zh6JkfRLSmKrIQouiVF0qlDWKtOWqIyFvFmpYVQuBYK17vHowvXwZ4N7vc15YeWCwytL+osd4KS2K7u5SNj092vQ6Os/QoinqiuzmFRfhEfLtvBnA2FbCgopaSy5uDzC+4+hYSo0Fb7eUcrY+3rEvEGkfHuLX3E4Y/X1UHxdnf3duE62LMR9m507zfOgOrSw5cPjYEOXRrcUiAmFWJS3Pm5Y1IgxLfP8xRpKCDAMDi9I4PTOwLuyO5dxZWsLyhh0+4y4tvpEpEqYxFvFhDgFmhMCmSOOfw5x4GyQvcykkWb3FnE9m+H/Vth/zb3WHXD3d8HhHd0C7pDKkQnu3N1R9XfIhIgMsG9D++oXeLic4wxJHcII7lDGCO7td/PVRmL+Cpj3OKMTIDUIY0vU1MFxdtg31a3pPflH7oVbXHPmS4rBBo5nGUCICIeIhPdW1SSW9yRCfWPJbiXqQyNck/dComC0A4afCbSCP1fIeLPgkLcY8wdM46+TG2NW8glO6Fst3v8uqyw/usCKCmA0l3uTGSlu7+7a/xIwZHutKFhMe4t9MDX9feh0e5jDe8PPB/aQYUuPkmfaBH5foFB7u7q6OSmLV9V5hZ1SQFU7HVnKKsshqoSqNjvzutdUeR+XbHPXXbP+kPf11Uf+2cERxxR2tENyvrAVnhU/X20exw8JOqIx6MgJFrFLh5Bn0IRaV0hERCS7o7gPl6OAzWVbnlX1pfzwa/ri7yy+PDHK4vd50p21X9f4l7+0jn6+aWHCQqvL/LoQ0UeEukWfkiEuyUfHP7dx0IiGzwf5r7PYfdh7mloupavNIHKWEQ8hzFukQWHQVRi89/HcaC6rL6YD9xKDxX1gccriw9ttR/4urLYHeBWXeZu5VeXuvdN2WL/zu8T4JZyUJhb6EFhbqEfKOuDX9cXeHBE/fKhEBgMAcHufWCwe9paUCgEhrj3QaH1j4W5hxsCQ+qXCzm0zIHX6A8Cj9ekMjbGnA48CAQCTzqOc98Rz5v65ycBZcAUx3G+aeWsIiJNY0z9lmsk0MTd68dSW11f0KWHl3RVqXuud00lVJdDTUWDW4PHqivc19dUuI9Vl0PlDvfxmvL6+/rnmlP83ycg+FCRB4Y0KO/Qwwv8YPGHuFcbCwgCU38fEHhomYCgBq9r8EdDQHD9cvXLBAS7hwEO+7rB602gOyL/4M+o/zkBDb8PbvB9oPsHjqlfxof+yDhmGRtjAoFHgAlAPjDfGPOO4zgrGiw2EehRfxsO/Lv+XkTENwQGQ2D9oLO2VlfnFnJttXuBkdpqqK10R7/XVrolX1tVX/j193XV9c/X32oqD72mpuLQe9RWHb7cgWXratw/LA783Lqa+lvtoa9rq9wBfQeXaeU/Go6XCWhQ2kH13wc2KOv68g4IqC/xgMOfC2jw2IHnDxT+gWUueL5dJstpypbxMGCd4zgbAIwx04DJQMMyngw877jTec0xxsQaYzo7jrO91ROLiPi6gAAIqN/F7Mkcp0FJV9cXd32R1za8r64v8QO3+u+dWvc1Tm2D4m9Q/of9MVDtjgOoq21wX3vEMrWH3rOuxs3n1B261TX8mQ3e6+Cttv4PoRr3DxSntt1WZVPKOAXIa/B9Pt/d6m1smRTgsDI2xlwLXAuQnt6MwR0iIuI5jDm0a1tapCnT5zS2U/7IGQCasgyO4zzuOE6u4zi5iYktGJwhIiLiQ5pSxvlAWoPvU4FtzVhGREREGtGUMp4P9DDGZBpjQoALgXeOWOYd4HLjGgHs0/FiERGRpjnmMWPHcWqMMTcCH+Ge2vS04zjLjTHX1z8/FXgf97SmdbinNl3RdpFFRER8S5POM3Yc533cwm342NQGXzvAT1s3moiIiH/Q9c9EREQsUxmLiIhYpjIWERGxTGUsIiJimcpYRETEMpWxiIiIZSpjERERy1TGIiIilqmMRURELFMZi4iIWKYyFhERsUxlLCIiYpnKWERExDLjXnDJwg82pgDY3IpvmQDsbsX383ZaH4fT+jhE6+JwWh+H0/o4pC3WRVfHcRKPfNBaGbc2Y8wCx3FybefwFFofh9P6OETr4nBaH4fT+jikPdeFdlOLiIhYpjIWERGxzJfK+HHbATyM1sfhtD4O0bo4nNbH4bQ+Dmm3deEzx4xFRES8lS9tGYuIiHglryhjY8zpxpjVxph1xpg7GnneGGMeqn9+iTFmcFNf641auD42GWOWGmMWGWMWtG/y1teEddHbGDPbGFNpjPnF8bzWG7VwffjbZ+OS+v8/lhhjZhljBjT1td6ohevDpz4b0KT1Mbl+XSwyxiwwxoxq6mubxXEcj74BgcB6IAsIARYDOUcsMwn4ADDACGBuU1/rbbeWrI/65zYBCbZ/j3ZcF0nAUOCPwC+O57XedmvJ+vDTz8ZIoGP91xP170bj68PXPhvHsT6iOHQotz+wqi0/H96wZTwMWOc4zgbHcaqAacDkI5aZDDzvuOYAscaYzk18rbdpyfrwNcdcF47j7HIcZz5Qfbyv9UItWR++pinrYpbjOHvrv50DpDb1tV6oJevDFzVlfZQ49e0LRAJOU1/bHN5QxilAXoPv8+sfa8oyTXmtt2nJ+gD3A/WxMWahMebaNkvZPlry39dfPxvfx58/G1fh7k1qzmu9QUvWB/jWZwOauD6MMecYY1YB7wFXHs9rj1dQS9+gHZhGHjtyCPjRlmnKa71NS9YHwImO42wzxiQBnxhjVjmOM6NVE7aflvz39dfPxvfxy8+GMeYk3PI5cEzQrz8bjawP8K3PBjRxfTiO8ybwpjFmDHAvcEpTX3u8vGHLOB9Ia/B9KrCtics05bXepiXrA8dxDtzvAt7E3eXirVry39dfPxtH5Y+fDWNMf+BJYLLjOIXH81ov05L14WufDTjO/8b1f3h0M8YkHO9rm8z2gfQmHGgPAjYAmRw6WN7niGXO4PABS/Oa+lpvu7VwfUQC0Q2+ngWcbvt3ast10WDZ33L4AC6//Gx8z/rwu88GkA6sA0Y2dz16y62F68OnPhvHsT66c2gA12Bga/2/qW3y+bC+Upq44iYBa3BHsN1V/9j1wPX1XxvgkfrnlwK53/dab781d33gjv5bXH9b7gvrownrohPuX7L7gaL6rzv48Wej0fXhp5+NJ4G9wKL624Lve62335q7Pnzxs9HE9XF7/e+7CJgNjGrLz4dm4BIREbHMG44Zi4iI+DSVsYiIiGUqYxEREctUxiIiIpapjEVERCxTGYuIiFimMhYREbFMZSwiImLZ/wMHObKACI+WkgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(ths, recallsMM, label='Ours')\n", "plt.plot(ths, recallsTh, label='Thresholding')\n", "plt.legend()\n", "plt.title('Recall')" ] }, { "cell_type": "code", "execution_count": 25, "id": "2dfb20b6", "metadata": {}, "outputs": [], "source": [ "precsMM, recallsMM = np.array(precsMM), np.array(recallsMM)\n", "precsTh, recallsTh = np.array(precsTh), np.array(recallsTh)\n", "\n", "F1_scoreMM = 2 * (precsMM * recallsMM)/ (precsMM + recallsMM)\n", "F1_scoreTh = 2 * (precsTh * recallsTh)/ (precsTh + recallsTh)" ] }, { "cell_type": "code", "execution_count": 26, "id": "f0f61235", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, '$F_1$-score')" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(ths, F1_scoreMM, label='Ours')\n", "plt.plot(ths, F1_scoreTh, label='Thresholding')\n", "plt.legend()\n", "plt.title('$F_1$-score')" ] } ], "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }