{ "cells": [ { "cell_type": "markdown", "id": "8a3cfa45", "metadata": {}, "source": [ "# Perplexity-based subsampling of a dataset\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "190664d7", "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import lzma\n", "import tarfile\n", "\n", "import numpy as np\n", "import pandas as pd\n", "\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "#plt.style.use('ggplot')\n", "#plt.style.use('bmh')\n", "plt.style.use('fivethirtyeight')\n", "mpl.rcParams['figure.figsize'] = (14,8)" ] }, { "cell_type": "code", "execution_count": 3, "id": "931db8d9", "metadata": {}, "outputs": [], "source": [ "plt.rcParams.update({'font.size': 12})\n", "\n", "SMALL_SIZE = 16\n", "MEDIUM_SIZE = 18\n", "BIGGER_SIZE = 20\n", "\n", "plt.rc('font', size=SMALL_SIZE) # controls default text sizes\n", "plt.rc('axes', titlesize=SMALL_SIZE) # fontsize of the axes title\n", "plt.rc('axes', labelsize=MEDIUM_SIZE) # fontsize of the x and y labels\n", "plt.rc('xtick', labelsize=SMALL_SIZE) # fontsize of the tick labels\n", "plt.rc('ytick', labelsize=SMALL_SIZE) # fontsize of the tick labels\n", "plt.rc('legend', fontsize=MEDIUM_SIZE) # legend fontsize\n", "plt.rc('figure', titlesize=BIGGER_SIZE)" ] }, { "cell_type": "code", "execution_count": 3, "id": "33cfca52", "metadata": {}, "outputs": [], "source": [ "from typing import List, Tuple" ] }, { "cell_type": "markdown", "id": "44b29018", "metadata": {}, "source": [ "# TL;DR\n", "\n", "* **Objetive**: we have a dataset with an arbitrary perplexity distribution. We want to subsample that dataset in a way that we \n", " - achieve a predefined sampling ratio R \n", " - increase the share of the dataset having central perplexity distributions.\n", " We define \"central\" as the perplexities in the two middle quartiles of the original distribution, i.e. interval $[p_{25}$, $p_{75}$]. \n", " - In concrete terms, given the perplexity values at these quartiles, $X_a$ and $X_b$, we will want to modify the share of those regions from 25% to other values $p_a$ and $p_b$\n", " \n", "* **Method**:\n", " - compute $X_a$ and $X_b$, the perplexity values for $p_{25}$ and $p_{75}$\n", " - define an initial Gaussian weighting curve as a Gaussian PDF having its $p_{25}$ and $p_{75}$ values in the same $X_a$ and $X_b$ positions as the computed ones\n", " - compute a histogram of the perplexities\n", " - use the histogram + initial Gaussian weights to estimate the sampling ratio that would result, and extract from it the normalization factor needed to achieve R\n", " - modify the paremeters of the initial Gaussian curve by minimizing the error on the desired probabilities $p_a$ and $p_b$\n", " - subsample the dataset by comparing the perplexity of each sample against the modified normalized Gaussian curve to estimate the probability of retaining it\n", " \n", "A final class that implements this procedure is defined in the [PerplexitySubsampler](../subsampler.py) file and it is used in another, [self-contained notebook](gaussian_subsampling.ipynb). The **Development** section in this notebook details the process step by step." ] }, { "cell_type": "markdown", "id": "8c9d6270", "metadata": {}, "source": [ "# Development" ] }, { "cell_type": "markdown", "id": "79cff218", "metadata": {}, "source": [ "## 1. Data loading \n", "\n", "We start by loading the computed perplexity values of the dataset (in this case computed over a 50M random sample)" ] }, { "cell_type": "code", "execution_count": 4, "id": "visible-acceptance", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "50000000" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = []\n", "with open(\"../scores/culturax_da.jsonl\") as f:\n", " for line in f:\n", " data.append(json.loads(line)[\"perplexities\"][\"wikipedia_pp\"])\n", "\n", "data = np.array(data)\n", "len(data)" ] }, { "cell_type": "markdown", "id": "998a6d64", "metadata": {}, "source": [ "Compute quartiles" ] }, { "cell_type": "code", "execution_count": 5, "id": "88d8046a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([542497.86733512, 679167.90234057, 998401.07723076])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qr = np.quantile(data, [0.25, 0.50, 0.75])\n", "qr" ] }, { "cell_type": "markdown", "id": "62c3e90d", "metadata": {}, "source": [ "Plot the distribution, together with its quartiles" ] }, { "cell_type": "code", "execution_count": 6, "id": "407c631c", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7sAAAIFCAYAAAATLepHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABGjElEQVR4nO3df1RU9b7/8RclcC7qYQgFRBTyYqJgmDlm4Y9cige9V0tsicc8ah4tyzhR2C1/4DKN8gdHK7FrdjDpVKZSiPmjNFxd0qxsnWtaXlx8U0jNc9Qlg5nJD+H7h4c5zvBrQGBmNs/HWi5jz3vPfGb3cWa/+OzPZ3tYLJYqAQAAAABgILc4uwEAAAAAADQ3wi4AAAAAwHAIuwAAAAAAwyHsAgAAAAAMh7ALAAAAADAcwi4AAAAAwHAIuwAAAAAAwyHsAgAAAAAMh7DrxgoKCpzdBLigxvQLX5Op5RrSBK7WHiPwNZn4rEAN9AnYo0/AHn0C9tyxTxB2AQAAAACGQ9gFAAAAABgOYRcAAAAAYDiEXQAAAACA4RB2AQAAAACGQ9gFAAAAABgOYRcAAAAAYDiEXQAAAACA4RB2AQAAAACGQ9gFAAAAABgOYRcAAAAAYDiEXQAAAACA4RB2AQAAAACGQ9gFAAAAABgOYRcAAAAAYDiEXQAAAACA4RB2AQAAAACGQ9gFAAAAABgOYRcAAAAAYDiEXQAyvXXG2U0AAAAAmhVhFwAAAABgOIRdoI1jVBcAAABGRNgF2ij7kGt66wzBFwAAAIZB2AUAAAAAGA5hF2iD6hvBZXQXAAAARkDYBdoYR8IsgRcAAADujrALoFYEXgAAALgzwi4AAAAAwHAIu0AbwmgtAAAA2gqHwm5ubq7Gjh2rO+64QwEBAerTp4+mT5+u/Px8m7rTp09r6tSp6t69u7p166YpU6bo1KlTNZ7PYrEoMTFRPXr0UHBwsB544AF9//33NequXr2qlJQU9erVS0FBQYqNjdWBAwdq1FVWVmrVqlXq27evAgMDFRMTo5ycnFrfS2ZmpsxmswICAjRgwABt2LDBkUMAtEmEYwAAALgrh8JucXGx+vXrp5UrV+rDDz/UokWLlJ+fr9jYWP3444+SpCtXrmjcuHEqKCjQ66+/rnXr1unEiRMaO3asfvnlF+tzVVVVadKkScrNzdWKFSv09ttvq7y8XGPHjtWZM7Yn1omJicrMzNT8+fO1efNmBQYGasKECTpy5IhNXWpqqpYtW6ZHH31UW7duldls1vTp07Vnzx6buszMTCUlJWncuHHKysrSgw8+qOTkZGVkZDTp4AEAAAAAXFM7R4oeeughPfTQQzbb7r77bpnNZuXk5FhDaWFhob755hv16NFDkhQZGam7775bb731lp588klJ0q5du/Tll19q+/btGjp0qCTJbDYrOjpar776qlasWCFJOnr0qLZu3ar09HRNmTJFkhQTE6NBgwbppZde0vvvvy9JOn/+vNasWaOkpCQlJiZKkoYOHaoTJ05o8eLFGjVqlCSpoqJCS5cuVUJCglJSUqx1Z8+eVWpqqqZOnSpPT8+mH0kAAAAAgMto8pzd2267TZLUrt31vLx7926ZzWZr0JWksLAw3XPPPdq1a5d12+7du9WlSxdr0JUkX19fxcXF1ajz9PRUfHy8dVu7du0UHx+vffv2qbS0VNL1S6zLysqUkJBg076JEyfq2LFjKiwslCR9/fXXunDhQo26hIQEXbx4UQcPHmzqoQDcApckAwAAoC1pVNi9du2aysrK9MMPPygpKUmBgYHWEd/8/Hz17t27xj69e/fW8ePHrT/XV3f69GldvnzZWhcaGiofH58adWVlZTpx4oS1ztvb2yZkV9dJsr529fxi+9e2rwNgy/TWGYIyAAAA3I5DlzFXGzFihA4fPixJ6tGjh7Zv367OnTtLuj6v12Qy1djHz89PFovF+nNxcbG6d+9ea510ffGqDh061Pt81c9T/bevr688PDwarJNU4znt6wAjIqwCAACgrWlU2H3jjTf0888/q7CwUGvWrNH48eO1e/duhYaGtlT7XEZBQYGzm1ArV20XnKtmv/Cpte7mnrP5DWil12lLBvzzb44r7NEnYI8+AXv0CdhzxT7Rs2fPOh9rVNjt1auXJGnAgAEaOXKk7rzzTr3yyitavXq1TCaTzQhuNfsR2vrqqh+v/ru22xZV11WPyJpMJpWUlKiqqspmdLe2Oun6yHFQUFCddXWp7yA6S0FBgUu2C85Va7/Yf/Mju+b9PrI80vWmn6ch9OmWwXHFjfj+gD36BOzRJ2DPHftEkxeoMplM6tGjh3XubERERI377krX58pWh+SG6kJCQtShQwdrXVFRka5cuVKjzsvLyzpHNyIiQqWlpTp58mSNOulfAT0i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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.hist(data, bins=1000, range=[0, qr[2]*3]);\n", "#ax.set_title(\"perplexity for a random sample of mC4-es (P95 of 44M values)\");\n", "#ax.get_yticklabels().set_fontsize(9)\n", "for q in qr:\n", " ax.axvline(q, c='r', lw=1)" ] }, { "cell_type": "markdown", "id": "b6b9ffa6", "metadata": {}, "source": [ "## 2. Data subsampling procedure\n", "\n", "### 2.1 Overall objective\n" ] }, { "cell_type": "markdown", "id": "contained-archives", "metadata": {}, "source": [ "We define three regions in the perplexity distribution:\n", "1. Low perplexity: the region below the $p_{25}$ percentile\n", "2. Mid perplexity: the central region between the $p_{25}$ percentile and the $p_{75}$ percentile\n", "3. High perplexity: the region beyond the $p_{75}$ percentile\n", "\n", "The objective is to reshape the dataset so that when subsampled we transfer probability mass from regions [1] and [3] to region [2]\n" ] }, { "cell_type": "markdown", "id": "reduced-accreditation", "metadata": {}, "source": [ "We use then two points in the perplexity distribution:\n", "* $X_a$ is the perplexity value for the $p_{25}$ percentile\n", "* $X_b$ is the perplexity value for the $p_{75}$ percentile" ] }, { "cell_type": "markdown", "id": "decreased-premises", "metadata": {}, "source": [ "### 2.2 Gaussian weighting\n", "\n", "With this procedure, we will use a Gaussian curve to extract the weights for subsampling" ] }, { "cell_type": "code", "execution_count": 7, "id": "third-backing", "metadata": {}, "outputs": [], "source": [ "from scipy.stats import norm, uniform" ] }, { "cell_type": "markdown", "id": "reported-yemen", "metadata": {}, "source": [ "We now design a normal distribution having a probability distribution so that \n", "* a certain probability mass (which will be less than the original 25%) is below $X_a$\n", "* a certain probability mass (which will be less than the original 25%) is beyond $X_b$\n", "\n", "By moving probability away from the original $p_{25}$ (i.e. $X_a$) and $p_{75}$ (i.e. $X_b$) perplexities, we are going to achieve our aim of reweighting the dataset decreasing the amount of low and high perplexities" ] }, { "cell_type": "markdown", "id": "optional-postage", "metadata": {}, "source": [ "#### parameters of the initial Gaussian curve" ] }, { "cell_type": "code", "execution_count": 8, "id": "homeless-garbage", "metadata": {}, "outputs": [], "source": [ "pa = 0.15 # probability fraction we will want below Xa -- should be less than 0.25\n", "pb = 0.10 # probability fraction over Xb -- should be less than 0.25" ] }, { "cell_type": "markdown", "id": "healthy-species", "metadata": {}, "source": [ "The way of computing the desired normal distribution is by inserting those two values into the Gaussian CDF formula, and deducing from the two equations the values of the Gaussian parameters $\\mu$ and $\\sigma$\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
\n", " \n", "$ \\phi ( \\frac{X_{a} − \\mu}{\\sigma} ) = p_a $\n", "\n", "\n", "\n", "$\\Rightarrow$\n", "\n", "\n", "\n", "$X_{a} − \\mu = \\sigma \\cdot \\phi^{-1}(p_a)$\n", "\n", "
\n", "\n", "$ \\phi ( \\frac{X_{b} − \\mu}{\\sigma} ) = 1 - p_b $\n", "\n", "\n", " \n", "$\\Rightarrow$\n", "\n", "\n", " \n", "$X_{b} − \\mu = \\sigma \\cdot \\phi^{-1}(1 - p_b)$\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 9, "id": "visible-purse", "metadata": {}, "outputs": [], "source": [ "# Standard deviation\n", "sdev = (qr[0] - qr[2]) / (norm.ppf(pa) - norm.ppf(1-pb))\n", "\n", "# Mean\n", "mean = qr[0] - norm.ppf(pa)*sdev" ] }, { "cell_type": "markdown", "id": "stylish-oregon", "metadata": {}, "source": [ "Let's plot the CDF for the normal distribution we have created" ] }, { "cell_type": "code", "execution_count": 10, "id": "alternative-addiction", "metadata": {}, "outputs": [], "source": [ "x = np.linspace(0, qr[2]+qr[0], 5000)\n", "y = norm.cdf(x, loc=mean, scale=sdev)" ] }, { "cell_type": "code", "execution_count": 11, "id": "suspended-worst", "metadata": {}, "outputs": [ { "data": { "image/png": "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S6ji2pgAAMCaKJsAAMvLq+B6zwAAwNoomwAAy4ueN8/sCAAAIESUTQCA5dn37DE7AgAACBFlEwBgecWzZpkdAQAAhIiyCQCwvIShQ82OAAAAQkTZBABYXuHcuWZHAAAAIaJsAgCsLyHB7AQAACBElE0AgOXFjRhhdgQAABAiyiYAwPLy1683OwIAAAiRzePxGGaHAAAAAAA0LezZBAAAAACEHWUTAAAAABB2lE0AAAAAQNhRNgEAAAAAYUfZlLRr1y5de+216tixozp06KCrr75aO3furNG2xcXFmjFjhrp3767WrVvr3HPP1erVq+s5cWSp7fxs2LBBkyZNUv/+/dWmTRuddNJJ+tOf/qRt27bVf+gIUZfXzrEee+wxud1uXXDBBfWQMnLVdX42b96sUaNGqUuXLmrdurVOPfVUPf300/WYOHLUZW527typ8ePH66STTlLr1q3Vr18/3XfffSooKKjn1JHh559/1uTJk3XuueeqTZs2crvd2r59e422DQQCevTRR9WrVy+1atVKgwYN0ptvvlnPiSNLbedny5Ytuv3223XGGWeoXbt26t69u37/+9/r22+/bYDUkaEur51jvfbaa3K73erRo0c9pIxcdZ2f3bt368Ybb9SJJ56oli1b6uSTT9bdd99d7XYRXzYLCwt18cUXKysrS0899ZTmz5+vrVu36qKLLqrRL+6JEyfqxRdf1LRp07Ro0SK1atVKl19+ub755psGSN/01WV+XnvtNWVmZur666/XkiVLdNddd+nrr7/WsGHDtGvXrgb6CZquur52jti2bZsefvhhtWjRoh7TRp66zs+GDRt0zjnnqKSkRE888YQWL16sCRMmyO/3N0D6pq0uc1NQUKBLL71Ua9as0bRp07R48WJde+21evLJJzVhwoQG+gmatq1bt+qNN96Q2+3W6aefHtK2s2bN0pw5czRu3DgtWbJE/fv31+jRo/X+++/XU9rIU9v5+fDDD/Xpp5/qqquu0iuvvKKHH35YBw4c0LnnnquNGzfWX+AIUpfXzhEej0d33HGHWrVqFeZ0qMv8bN++XWeffbZ+/PFHPfDAA/rPf/6jqVOnyuFwVLttxF/65Omnn9b06dP15ZdfqkuXLpIOvfnt16+f7r777ip/eX/77bc688wz9eSTT+rqq6+WJPl8Pg0cOFBpaWl69dVXG+RnaMrqMj/79+9X8+bNg8Z27Nih3r1767bbbtP06dPrNXtTV5e5OdZll12mjh07KisrS36/X++99159xo4YdZmfQCCg008/XWlpafrnP//ZUJEjRl3m5sMPP9Rll12m//znP/rNb35TNj5z5kzNmzdPO3fuVFxcXL3/DE1ZIBCQ3X7ob/EvvfSS/vKXv+jrr79Wp06dqtxu37596tmzp2666SZNmzatbPziiy/W/v37tWbNmnrNHSlqOz8HDhxQamqqbDZb2VhOTo5OPvlkXXDBBXrmmWfqNXckqO3cHGvSpEnauXOnWrVqpZUrV+r777+vr7gRpy7zc/nllys7O1vLli1TVFRUSM8b8Xs23333XfXv37/sF74kde7cWQMGDNA777xT7bZRUVG67LLLysacTqcuu+wyffjhhyopKam33JGiLvNzfNGUpI4dO6p58+b65Zdfwp410tRlbo5YsmSJvv76a9111131FTNi1WV+Pv30U23evFk33nhjfceMSHWZm9LSUklSYmJi0HhycrICgYAMI6L/fhwWR96MhWrFihUqLS3ViBEjgsavvPJKff/995zCESa1nZ9mzZoFFU3p0OsmLS2N9wRhUtu5OeLzzz/X4sWL9fDDD4cpEY5V2/n56aeftGLFCo0bNy7koilRNpWZmamMjIxy4xkZGdq8eXO123bq1KncX5EzMjJUWlqqrVu3hjVrJKrL/FRk8+bN2rdvn7p37x6OeBGtrnPj8Xg0bdo03X333UpJSamPiBGtLvPz+eefS5JKSkp0zjnnqHnz5kpLS9OUKVNUVFRUL3kjSV3m5qyzzlLXrl111113KTMzU/n5+Vq5cqXmz5+vP/7xj4qPj6+v2KhGZmamXC5X0B8RJJXNdW1+Z6F+ZWdna9OmTbwnsACv16ubbrpJEydOLPcagrmOvCeIjY3VpZdeqpYtW6pTp066/vrrdfDgwWq3j/iymZ2dLbfbXW48JSVFHo+n1tseuR11U5f5OZ7P59PNN9+s5s2b65prrglPwAhW17mZMWOG0tLS9Ic//CH84VCn+dmzZ48kacyYMRo2bJhef/11TZo0SS+//LLGjh1bD2kjS13mJiYmRu+9954Mw9DAgQPVvn17XXLJJTr//PP10EMP1U9g1Eh2draSk5PL7T3jPYF1TZkyRYZh6M9//rPZUSLe448/rpKSEt1yyy1mR8FxjrwnmDBhgtLS0rRkyRLdfffdev/993XZZZcpEAhUub2zIUICVjB58mR98cUXWrx4cYVv9NBw1qxZo1dffVUrV64s98YM5jvyi+PKK68sO7f5zDPPlN/v18yZM7V582b2BJikuLhYY8aM0b59+/TMM8+offv2+uqrr/Tggw/K6XTq0UcfNTsi0Cg8+uijWrJkiebNm8eeNJNt3bpVjzzyiP7xj38oJibG7Dg4zpH3BIMGDSo7xHno0KFKSkrSH//4R61YsULnnntupdtH/J5Nt9td4V+SK/vLc023lcShgWFQl/k51syZM7Vw4UI9+eSTQYtqoPbqMjc333yzrrnmGrVt21Yej0cej0d+v19+v18ej4fzncOgLvOTmpoqSRo2bFjQ+JHvWW27buoyNy+//LJWrVqlJUuWaMSIERo0aJAmTpyo++67T88//zyXcTCR2+1WTk5OufNmeU9gPc8//7zuuece3XnnnRzpZAG33367hgwZolNPPbXsPYHX65VhGPJ4PJy+YbLK3hMceT9d3XuCiN+zmZ6erszMzHLjmZmZ1f7lPj09Xf/9739VWFgYdN5mZmamoqOj+UtZGNRlfo54+OGH9fjjj+vBBx/U73//+3BHjFh1mZvNmzdr8+bNev7558vd1rlzZ91///264YYbwpY1EtX1/21VqesiEJGuLnPz/fffy+1264QTTggaP+WUUyRJP/zwg3r16hW+sKix9PR0lZSU6Keffgr6/X9krjkawBpeffVV3XrrrZowYYJuu+02s+NAh14jO3fuVOfOncvd1rlzZ40fP15z5sxp+GCQVPf3BBH/jmH48OFat25d0Cpx27dv19q1azV8+PAqt73gggvk9Xr1xhtvlI35fD69/vrrGjZsmFwuVz2ljhx1mR9Jmj9/vu677z7NmDFD48aNq8ekkacuc/P222+X+zjppJPUo0cPvf3227rkkkvqOX3TV5f5Offcc+VyufThhx8Gja9YsUKS1Ldv37DnjSR1mZuWLVvK4/GUW4Bu/fr1kqQ2bdqEPS9q5pxzzlFUVJQWL14cNL548WL16NGjwjfSaFhvv/22brzxRl177bW67777zI6Dw55//vly7wnOPvtsNWvWTG+//Tbv30zWv39/tWrVqtx7guXLl0s6+sfOykT8dTYLCgo0ePBgxcbGavr06bLZbJo1a5by8/O1evVqJSQkSDp0fca+fftqypQpuv3228u2P3Ks8r333qtOnTrpueee07Jly7Rs2TL16dPHpJ+q6ajL/Lz22msaO3aszj777KA5kw5dNqC6v9SganV97Rzvwgsv5DqbYVTX+ZkzZ44eeughTZo0SUOGDNGGDRv0wAMP6He/+52efvpps36sJqEuc7N9+3YNHjxYLVu21K233qr27dtr48aNeuihh9S1a1d9+OGH7HkOgzfffFOStHLlSj3//PN65JFH1Lx5czVr1kyDBw+WdOhSGldddZWefPLJsu1mzpypp59+WjNmzFDv3r31+uuv64UXXtArr7yiCy64wJSfpSmqzfysXr1al112mdLT0/Xggw8GvU6io6PVu3fvhv9BmqDavnaO9+c//5nrbNaD2s7Pv/71L91www0aM2aMLrroIm3dulX33nuvevXqpbfffrvK9Tci/jDa+Ph4vfXWW5o2bZrGjx8vwzA0ZMgQzZ49u+wXviQZhiG/319uxaW//e1vuvfee3XfffcpJydHJ510kv79739TNMOkLvOzfPlyGYah5cuXl/315YhBgwZp6dKlDfZzNEV1fe2gftV1fm6//XYlJCToueee07x589SqVStNnDhRU6ZMaegfpcmpy9x06tRJH3zwgebMmaNZs2bpwIEDateunUaNGqXbbruNohkmo0aNCvr+1ltvlRT8u+PIeebHmjFjhuLj4zV//nzt3btXaWlpWrhwIUUzzGozP5988olKSkr09ddf6/zzzw/avkOHDpzvHCa1fe2gYdR2fkaOHCm73a65c+fqn//8p1JSUnTllVfqrrvuqnahx4jfswkAAAAACD/+BAoAAAAACDvKJgAAAAAg7CibAAAAAICwo2wCAAAAAMKOsgkAAAAACDvKJgAAAAA0Yj///LMmT56sc889V23atJHb7db27dvr9Jjr1q3T5Zdfro4dO6pt27Y644wz9Nprr4X0GJRNAAAAAGjEtm7dqjfeeENut1unn356nR9v2bJl+u1vf6uWLVtqwYIF+te//qVrr71WxcXFIT0O19kEAAAAgEYsEAjIbj+0H/Gll17SX/7yF3399dfq1KlTyI+Vl5envn376v/9v/+nOXPm1CkXezYBAAAAoBE7UjSrs3//ft18883KyMhQy5Yt1b9/fy1cuDDoPm+88Yb279+vCRMm1D1XnR8BAAAAAGBpubm5uuCCC/TBBx9o6tSpWrx4sS644ALdcssteuaZZ8ru9/nnnyslJUXff/+9zjjjDDVr1kw9e/bUnDlz5Pf7Q3pOZ7h/CAAAAACAtcyfP187d+7UmjVr1LVrV0nSWWedpZycHD3wwAO67rrr5HQ6tWfPHhUVFWns2LGaPHmy+vTpo5UrV+qhhx5STk6OZs+eXePnZM8mAAAAADRxK1asUL9+/dSpUyf5fL6yj7PPPlsHDx5UZmampEPnfxYXF2vKlCmaOHGizjzzTN15550aNWqUFixYoJycnBo/J3s2AQAAAKCJ27dvn7Zu3armzZtXePvBgwclSampqZKkYcOGBd0+bNgwPf/888rMzNSAAQNq9JyUTQAAAABo4lJTU9WiRYtKV5hNS0uTJKWnp1f5ODVdjEiibAIAAABAk3f22Wfr73//u9q3b68WLVpUer8LL7xQs2bN0ocffqiePXuWja9YsUIxMTHKyMio8XNSNgEAAACgkXvzzTclSRs3bpQkLV++XM2bN1ezZs00ePBg3XDDDXr99dc1fPhw3XDDDUpLS1NhYaGysrK0Zs0avfLKK5KkHj16aOTIkbr//vsVCATUu3dvffzxx3rppZc0efJkJSQk1DiTzePxGGH/SQEAAAAADcbtdlc4PmjQIC1dulSS5PF49MADD2jp0qX65ZdflJycrG7duumiiy7SDTfcULZNaWmpHnzwQb3yyivau3evOnbsqLFjx+rPf/5zSJkomwAAAACAsOPSJwAAAACAsKNsAgAAAADCjrIJAAAAAAg7yiYAAAAAIOwomwAAAACAsKNsAgAAAADCjrIJAAAAAAg7yiYAAAAAIOwomwAAAACAsPv/l2AjMKnvGfcAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot(x, y);\n", "for q, t, s in zip(qr, [\"$X_a$\", \"mean\", \"$X_b$\"], [\"-\", \":\", \"-\"]):\n", " ax.axvline(q, c='r', lw=1, ls=s)\n", " ax.text(q, -0.01, t, color=\"r\")" ] }, { "cell_type": "markdown", "id": "ambient-orientation", "metadata": {}, "source": [ "We can verify that effectively the aggregated probabilities for our extreme intervals $X_a$ and $X_b$ are as defined by $p_a$ and $p_b$" ] }, { "cell_type": "code", "execution_count": 12, "id": "unable-shift", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.1499999999999999, 0.8999999999999999)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Check the probabilities for the regions delimited by Xa & Xb\n", "norm.cdf(qr[0], loc=mean, scale=sdev), norm.cdf(qr[2], loc=mean, scale=sdev)" ] }, { "cell_type": "markdown", "id": "congressional-heating", "metadata": {}, "source": [ "And its PDF is as follows:" ] }, { "cell_type": "code", "execution_count": 13, "id": "f00fb4c7", "metadata": {}, "outputs": [], "source": [ "def plot_quartiles(ax: plt.Axes):\n", " for q, s in zip(qr, [\"-\", \":\", \"-\"]):\n", " ax.axvline(q, c='r', lw=1, ls=s)" ] }, { "cell_type": "code", "execution_count": 14, "id": "quality-sister", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6UAAAIUCAYAAADiwIoiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAACRgUlEQVR4nOzdeVxUVf8H8M+dFZgBBkFARSEFBddcqMzSLE3NstLMNHMp62nRrKeszJ9li2lPPZVpZWWmVo97aWW2aWlpi5lbKYghKq4gDNvArPf3h7LcYRtghjvL5/168cI5c8/Mdzwi93vPud8jGI1GEUREREREREQyUMgdABEREREREQUuJqVEREREREQkGyalREREREREJBsmpURERERERCQbJqVEREREREQkGyalREREREREJBufT0pPnjyJGTNmYPDgwWjVqhUMBgOOHTvW7HEYjUY89dRT6Nq1K6Kjo9G5c2c88MADzR4HERERERGRL1HJHUBTZWZmYsOGDbj00kvRt29fbN26tdljMBqNGDp0KARBwKxZs9CuXTucOXMGv/76a7PHQkRERERE5Et8Pint168fMjIyAAArVqyQJSl97rnnUFxcjJ07dyIsLKyifdSoUc0eCxERERERkS/x+eW7CoVrHyE3NxePPvooUlJSEB0djdTUVCxbtqzJ719SUoJVq1ZhwoQJkoSUiIiIiIiI6ufzSakrCgsLMXToUHz33Xd46qmnsGbNGgwdOhT//ve/8e677zbptffu3YvS0lJER0djwoQJiI2NRZs2bTBu3DhkZWW55wMQERERERH5KZ9fvuuKxYsX48SJE9i5cyc6dOgAALjmmmtQUFCAl19+Gffccw9Uqsb9VZw5cwYAMHv2bAwaNAgrV65Ebm4unnvuOdx444345ZdfEBoa6rbPQkRERERE5E8CIindsmULevfujfj4eNhstor26667DitWrEBaWhq6du2KzMxM9OrVq97Xa9u2LQ4cOAAAcDgcAID4+HgsXboUgiAAAC655BIMGjQIa9aswT333OOBT0VEREREROT7AiIpzcnJQWZmJqKiomp8Pi8vD8CFZPP333+v9/XUanXFn1u0aAEAGDBgQEVCCgB9+vRBWFgY9u/f35TQiYiIiIiI/FpAJKUtWrRAy5YtMX/+/BqfT0xMBHAh2ezYsWODXjs5ObnO510txERERERERBSIAiIpve666/Dee+8hLi4OLVu2dOtrt2nTBj179sQPP/wAURQrZkt///13FBYWomfPnm59PyIiIiIiIn8iGI1GUe4gmmrjxo0AgG3btmHp0qX473//i6ioKERGRuKqq65CQUEBBg8eDIfDgQcffBCJiYkwmUzIyMjAzp07sXLlyia9/7Zt2zBy5EjccMMNmDBhAnJzc/Hiiy9Cp9Nh27ZtCA4OdsfHJCIiIiIi8jt+kZQaDIYa2/v164dNmzYBAIxGI15++WVs2rQJp0+fRnh4OJKSknDTTTfhwQcfbHIM3333HV566SUcPHgQISEhuP766/HCCy8gOjq6ya9NRERERETkr/wiKSUiIiIiIiLfxCo8REREREREJBsmpURERERERCQbJqVEREREREQkGyalREREREREJBsmpR6SkZEhdwhUB46P9+LYuCa8lqrjnuYL46MbPlzuEGThC2MTqMINBo6PF+PYeDeOj/dy59gwKSUiIr9ScnErMCIiIvINTEqJiMivBE+fLncIRERE1ABMSomIyK/YevaUOwQiIiJqACalRETkV6yTJskdAhERETUAk1IiIvIrYXFxcodAREREDcCklIiI/ErhoUNyh0BEREQNwKSUiIj8iurnn+UOgYiIiBqASSkREfkVzbJlcodAREREDcCklIiI/Ipp9Wq5QyAiIqIGYFJKRER+JXjKFLlDICIiogZgUkpERH7FNmSI3CEQERFRAzApJSIiv2IdPVruEIiIiKgBmJQSEZFfCTcY5A6BiIiIGoBJKRER+ZUCo1HuEIiIiKgBmJQSEZFfUa9dK3cIRERE1ABMSomIyK+ovvlG1vcXRRFmuwiLXYTNIcoaCxERkS9QyR0AERGRO5UuWdIs7yOKIo4U2rDzjAUH8qz4K8+K7BI7csrsMNsrjwtVC2gVokQ7vRI9ItXoEalBv1gNIoOUzRInERGRt2NSSkREfiVkzBiYVq/2yGuLooh9561YecSEr0+U4Vixvd4+RVYRRQU2HC6w4fuTZgCAQgAua6nB8HZBuL1DCGJCmKASEVHgqnf57saNG3HXXXeha9euiI2NRZ8+ffDcc8+hqKio3hcvKyvD7Nmz0alTJ8TGxmLw4MHYsWNHteMcDgdee+01dOvWDTExMejXrx82btzYuE9EREQBzTJpkvtf0y7io8MluPrzHFzzRQ7e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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "gauss_pdf = norm.pdf(x, loc=mean, scale=sdev)\n", "\n", "fig, ax = plt.subplots()\n", "ax.plot(x, gauss_pdf);\n", "plot_quartiles(ax)" ] }, { "cell_type": "markdown", "id": "possible-handy", "metadata": {}, "source": [ "As it should be, the area under the PDF curve is 1 (since the total probability mass must sum to 1)" ] }, { "cell_type": "code", "execution_count": 15, "id": "green-student", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9998996644500662" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sum(gauss_pdf)*(x[1]-x[0])" ] }, { "cell_type": "markdown", "id": "cefcfe07", "metadata": {}, "source": [ "And the maximum value of the Gaussian curve is at the mean of the PDF" ] }, { "cell_type": "code", "execution_count": 16, "id": "37b3500f", "metadata": {}, "outputs": [], "source": [ "pdf_max = np.max(gauss_pdf)" ] }, { "cell_type": "code", "execution_count": 17, "id": "postal-connecticut", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2.0283737486698773e-06, 2.0283739702357006e-06)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pdf_max, norm.pdf(mean, loc=mean, scale=sdev)" ] }, { "cell_type": "markdown", "id": "purple-aviation", "metadata": {}, "source": [ "In our initial try, the Gaussian curve that we will use for weighted resampling is the PDF of the gaussian distribution just computed, but normalized so that its maximum (the mean of the Gaussian) equals 1. That means that items with that perplexity will be sampled with probability 1 (i.e will _not_ be subsampled), and the weight will decrease gradually as we get away from that mean" ] }, { "cell_type": "code", "execution_count": 18, "id": "peaceful-default", "metadata": {}, "outputs": [ { "data": { "image/png": "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OCi5wft7R47siFhRITPBrrt/YZ4dfvdHl17bzNqbAICORbEJAOhwD31Vru2VvprbDpv08NGZsttsDd7fM21aByWLDr86KEljuyeYxm5aWaIK1t4EAHQgik0AQIfaVOrV374xN625aliqBmc6G90mvVevUMeKKjabTfcfmSFHndp9e6WPZkEAgA5FsQkA6FA3flYid50Jtm5Jdl13aFqT25SuXx/iVNFncKaz3tqbj3xbru+KaRYEAOgYFJsAgA7zv63VWrbVfO3g7aMzlOZs+s+RY8WKUMaKWtcdmqYeyeZmQTcGXCsLAECoUGwCADqEy2fohpXFprEju8TrvP5JDW9QR/z8+aEJFeVSnXbd9YtM09g72116exvNggAAoUexCQDoEI+vK9emstqmQDZJ9x6ZIVsjTYHqqly4MITJotuZ/RI1plu8aezPq0rk9bMUCgAgtCg2AQAht6/apwe+MjenmT44RYdkxzeyhVnSJZeEIlZMsNlsmj06Q3VL+vxir579rtKyTACA2ECxCQAIufvWlqnUXTuTlh5v082HNd0UqC7v+PGhiBUzDs2J1/m55jVM71pTqhI3S6EAAEKHYhMAEFI/lHr1ZH6FaewPB6cpOzGuxY/hOffcYMeKOX8+LF3JddZC2VPt14MshQIACCGKTQBASN2+ulSeOhNovVLidHleauMbNCAjMzO4oWJQj5Q4/W64+f/9sXXlKizzWpQIABDtKDYBACHz2S6XXimsMo3936h0JTqabwpUV0lxcRBTxa6Zw1NNS6G4/dIdq0stTAQAiGYUmwCAkDAMQ7esMhcyh2Y79esWLHUSyLl4cbBixbQUp123jMowjb34Q5W+2uu2KBEAIJpRbAIAQuL1zdVauctcxNwxOkP2Fix1EsixbFmwYsW8SQOSNLyT0zTG7CYAIBQoNgEAQefzG7rzC3MBM753oo7tntCmx6t64olgxIIku82mW0elm8be2u7Sih0uixIBAKIVxSYAIOgWfl+p70pqG8/YbdLth6c3sUXTkidNCkYs/Oykngk6uqt5jdO/fF4qwzAa2QIAgNaj2AQABJXbZ+ieL81LavxmQLKGZDob2aIFjzltWjtToS5bA7Obn+12642t1RYlAgBEI4pNAEBQLSio0JZyX81tp13606Fp7XpM7zHHtDcWAhzRNUGn9k40jd2xulQ+P7ObAIDgoNgEAARNldfQA2vNs5pTB6Wob5qjXY+bnpfXru3RsFsOS1fddk3ri71avKmq0fsDANAaFJsAgKB5Ir9cP1X6a24nxkl/OKR9s5qSVLptW7sfA/UN6+TUeQPMS9HcvaZUHmY3AQBBQLEJAAiKMo9fD39Vbhq7NC9V3ZPj2v3Yzvnz2/0YaNiNI9PlrHM0sLncpxc2VloXCAAQNSg2AQBB8di35drrqp3VTHPadM2I1KA8tmPNmqA8Durrl+bQhQNTTGMPrC1jdhMA0G4UmwCAdit2+fXIt+ZZzSuHpSo7sf2zmpJUNWdOUB4HDbv24NR6s5vPM7sJAGgnik0AQLs9vr5cpe7ambDMeJuuHhacWU1JSpk4MWiPhfp6pzo0ZVD92U23j9lNAEDbUWwCANql1O3XowGzmjOHpykjPnh/YqpvuCFoj4WGXTsiVXV32ZZyn174ntlNAEDbUWwCANrln+srVBIwq3lpXkoTW7SePzc3qI+H+no1MLt5P7ObAIB2oNgEALRZucevvzdwrWZ6EGc1JSl13LigPh4adk3A7OZWrt0EALQDxSYAoM2eyq/QvjodaNOdNl2eF7xrNQ8oy88P+mOiPmY3AQDBRLEJAGiTSq9fc78xz2pePjRVmQnB/9MSP3du0B8TDbv24DTT7Oa2Cp8Wcu0mAKANKDYBAG0yf0OldlfXzmqmOmy6KogdaOuy79gRksdFfT1T4jQ1YHbz4a/L5GPdTQBAK1FsAgBardpr6G9fl5nGLs1LUVYIZjUlqXr27JA8Lhr2uxGpcthqb39f6tNrm6usCwQAiEgUmwCAVltQUKEdVbWzmskOm64eHppZTUlKPe64kD026uud6tCk3GTT2F+/KpdhMLsJAGg5ik0AQKt4/IbmfG2+VvOiwSnKSYwL2XNWzpkTssdGw64Zkao6k5v6Zp9Hb21zWZYHABB5KDYBAK3yn01V2lbhq7mdGCfNDOGspiQpNcSPj3oGZjh1Rr9E09hfvypjdhMA0GIUmwCAFvMb9a/VvHBgiromh25WU5KSJ00K6eOjYdeOSDPdXrnLrY93ui1KAwCINBSbAIAWW7a1WuuLvTW342wK6bWaB5SvXh3y50B9h+bE66SeCaaxB78qa+TeAACYUWwCAFos8FrNXx2UpH5pjpA/b8Ldd4f8OdCw3x9snt18Z7tLX+5hdhMA0DyKTQBAi3yy06VPd5mLjFkBp1ki+hzdLUFHdY03jTG7CQBoCYpNAECLPBwwq3lSzwSN6OTskOd23XhjhzwPGhY4u/n65mptLPFYlAYAECkoNgEAzVpX5NGyrdWmsY6c1UwdNarDngv1Bb6xYEj6+7fljW8AAIAoNgEALTAnoAPt4Z2dOqZbfCP3Dr7KhQs77LlQn81m0+8CGkE9v7FSu6t8jWwBAADFJgCgGVvKvXpxU5VpbNaINNlsto4LUc4smtXOOihJvVJql7ip9klP5FdYmAgAEO5aVGxu27ZNU6ZMUZ8+fdS7d29dcMEF2rp1a4ueYOvWrbriiis0fPhwdevWTaNGjdKdd96pigr+QAFAJPj7N+XyGrW3B2Y4NLFPYodmSJ41q0OfD/U57TZdOcw8u/nP9RWq9PotSgQACHfNFpuVlZU644wzVFBQoEcffVTz5s3Tpk2bdPrppzdbMFZUVOiss87Sxx9/rJtuukmLFi3SlClT9Mgjj2jGjBlB+yYAAKFR5PJrQUGlaex3w1Nl78hZTUnly5d36POhYVMGJSs9vnbf73P59fzGyia2AADEsmYXR3vmmWdUWFiozz//XP3795ckDRs2TKNGjdLTTz/dZNG4cuVKff/993rppZd0wgknSJLGjh2roqIizZ07V5WVlUpOTg7StwIACLb5GypUWWdas3uyXecN6Pjf24k336zq2bM7/Hlhlua066LBKabOxH//plzTBqUozt6xb0AAAMJfszObb7zxhkaPHl1TaEpSv379dMQRR2jp0qVNbut271+PLS3N3LEwIyNDfr9fhmE0tBkAIAy4fYb+sd58reTlealKiOv4osLfrVuHPycadlleqpx1jh42lfm0ZEt14xsAAGJWs8Vmfn6+8vLy6o3n5eVpw4YNTW57/PHHa8CAAbr11luVn5+v8vJyLV++XPPmzdNFF12klJSUticHAITUy4VV+qmy9nq8ZIdN0wZb83vbPXOmJc+L+nqkxOnX/c2z2498QwMnAEB9zRabRUVFyszMrDeelZWl4uLiJrdNTEzUm2++KcMwdOSRR6pXr14688wzNX78eN1///1tzQwACDHDMPRowDqKv81NVmaCNU3M04YMseR50bCZAcugfLbbrZU7XRalAQCEq2av2WyP6upqTZ8+Xbt379bjjz+uXr166YsvvtB9990nh8OhBx98sNFt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619uGhEMY38jT7+hmn/3f27UfH6gKPUbhvzaf8ptenx0LPfXbLE5ZMgQ5efn1xvPz8/X4MGDm932v//9ryorK03Xbebn5ys+Pt7UdAgAgMZQaAIAIpHNZqtpAhTwFQvSdLxmS+YJEyZo1apVKiwsrBnbvHmzVq5cqQkTJjS57amnniqPx2NqJOT1evXyyy9r3LhxEdeJFgBgDef8+VZHAAAArdRssTl16lT16dNHkydP1pIlS7R06VJNnjxZPXv21PTp02vut2XLFmVnZ+vee++tGTvkkEN09tln68Ybb9Szzz6r5cuX66KLLtLmzZt14403huY7AgBEHceaNVZHAAAArdRssZmSkqLXXntNAwYM0BVXXKHLLrtMffv21WuvvabU1NSa+xmGIZ/PJ7/f3DXp73//u37729/qzjvv1Hnnnaft27frP//5jw499NCgfzMAgOhUNWeO1REAAEArtagbbe/evbVgwYIm79O3b98GGwklJSXprrvu0l133dWmgAAApEycqIolS6yOAQAAWiE62hwBAKJa9Q03WB0BAAC0EsUmACDs+XNzrY4AAABaiWITABD2UseNszoCAABoJYpNAEDYK2tgvWcAABDeKDYBAGEvfu5cqyMAAIBWotgEAIQ9+44dVkcAAACtRLEJAAh71bNnWx0BAAC0EsUmACDspR53nNURAABAK1FsAgDCXuWcOVZHAAAArUSxCQAIf6mpVicAAACtRLEJAAh7yZMmWR0BAAC0EsUmACDsla9ebXUEAADQSrbi4mLD6hAAAAAAgOjCzCYAAAAAIOgoNgEAAAAAQUexCQAAAAAIOopNAAAAAEDQUWxK2rZtm6ZMmaI+ffqod+/euuCCC7R169YWbVtdXa1bbrlFgwcPVrdu3XTyySfro48+CnHi2NLW/bNmzRrNmjVLo0ePVvfu3TV8+HBdeumlKiwsDH3oGNGe105dDz30kDIzM3XqqaeGIGXsau/+2bBhg6ZOnar+/furW7duOvzww/XYY4+FMHHsaM++2bp1q6644goNHz5c3bp106hRo3TnnXeqoqIixKljw/bt23Xdddfp5JNPVvfu3ZWZmanNmze3aFu/368HH3xQI0aMUNeuXTVmzBi9+uqrIU4cW9q6fzZu3Kg//elPOvroo9WzZ08NHjxYv/nNb/T11193QOrY0J7XTl0vvviiMjMzNXTo0BCkjF3t3T8//vijrr76ag0aNEhdunTRwQcfrNtvv73Z7WK+2KysrNQZZ5yhgoICPfroo5o3b542bdqk008/vUV/uGfOnKlnnnlGN910kxYuXKiuXbvqnHPO0VdffdUB6aNfe/bPiy++qPz8fF1++eVavHixbr31Vq1du1bjxo3Ttm3bOug7iF7tfe0cUFhYqAceeECdO3cOYdrY0979s2bNGp100klyuVz629/+pkWLFmnGjBny+XwdkD66tWffVFRU6KyzztLHH3+sm266SYsWLdKUKVP0yCOPaMaMGR30HUS3TZs26ZVXXlFmZqaOOuqoVm07e/Zs3XPPPbrsssu0ePFijR49WtOmTdP//ve/EKWNPW3dP++++64+/PBDnX/++Xr++ef1wAMPaO/evTr55JP15Zdfhi5wDGnPa+eA4uJi3XjjjeratWuQ06E9+2fz5s068cQT9f333+vee+/VSy+9pBtuuEFxcXHNbhvzS5889thjuvnmm/X555+rf//+kvYf/I4aNUq33357k3+8v/76ax177LF65JFHdMEFF0iSvF6vjjzySOXm5uqFF17okO8hmrVn/+zZs0c5OTmmsS1btuiQQw7RH//4R918880hzR7t2rNv6jr77LPVp08fFRQUyOfz6c033wxl7JjRnv3j9/t11FFHKTc3V//+9787KnLMaM++effdd3X22WfrpZde0gknnFAzftttt2nu3LnaunWrkpOTQ/49RDO/3y+7ff978c8++6x+97vfae3aterbt2+T2+3evVvDhg3TNddco5tuuqlm/IwzztCePXv08ccfhzR3rGjr/tm7d686deokm81WM1ZSUqKDDz5Yp556qh5//PGQ5o4Fbd03dc2aNUtbt25V165dtXz5cq1bty5UcWNOe/bPOeeco6KiIi1btkxOp7NVzxvzM5tvvPGGRo8eXfMHX5L69eunI444QkuXLm12W6fTqbPPPrtmzOFw6Oyzz9a7774rl8sVstyxoj37J7DQlKQ+ffooJydHP/30U9Czxpr27JsDFi9erLVr1+rWW28NVcyY1Z798+GHH2rDhg26+uqrQx0zJrVn37jdbklSWlqaaTwjI0N+v1+GEdPvHwfFgYOx1nrnnXfkdrs1adIk0/h5552ndevWcQlHkLR1/2RnZ5sKTWn/6yY3N5djgiBp67454NNPP9WiRYv0wAMPBCkR6mrr/vnhhx/0zjvv6LLLLmt1oSlRbCo/P195eXn1xvPy8rRhw4Zmt+3bt2+9d5Hz8vLkdru1adOmoGaNRe3ZPw3ZsGGDdu/ercGDBwcjXkxr774pLi7WTTfdpNtvv11ZWVmhiBjT2rN/Pv30U0mSy+XSSSedpJycHOXm5ur6669XVVVVSPLGkvbsm+OPP14DBgzQrbfeqvz8fJWXl2v58uWaN2+eLrroIqWkpIQqNpqRn5+vhIQE05sIkmr2dVv+ZiG0ioqKtH79eo4JwoDH49E111yjmTNn1nsNwVoHjgmSkpJ01llnqUuXLurbt68uv/xy7du3r9ntY77YLCoqUmZmZr3xrKwsFRcXt3nbA19H+7Rn/wTyer269tprlZOTowsvvDA4AWNYe/fNLbfcotzcXP32t78Nfji0a//s2LFDkjR9+nSNGzdOL7/8smbNmqUFCxbokksuCUHa2NKefZOYmKg333xThmHoyCOPVK9evXTmmWdq/Pjxuv/++0MTGC1SVFSkjIyMerNnHBOEr+uvv16GYejKK6+0OkrMe/jhh+VyufT73//e6igIcOCYYMaMGcrNzdXixYt1++2363//+5/OPvts+f3+Jrd3dERIIBxcd911+uyzz7Ro0aIGD/TQcT7++GO98MILWr58eb0DM1jvwB+O8847r+ba5mOPPVY+n0+33XabNmzYwEyARaqrqzV9+nTt3r1bjz/+uHr16qUvvvhC9913nxwOhx588EGrIwIR4cEHH9TixYs1d+5cZtIstmnTJv31r3/Vv/71LyUmJlodBwEOHBOMGTOm5hTn4447Tunp6brooov0zjvv6OSTT250+5if2czMzGzwneTG3nlu6baSODUwCNqzf+q67bbbNH/+fD3yyCOmphpou/bsm2uvvVYXXnihevTooeLiYhUXF8vn88nn86m4uJjrnYOgPfunU6dOkqRx48aZxg/cptt2+7Rn3yxYsEArVqzQ4sWLNWnSJI0ZM0YzZ87UnXfeqaeeeoplHCyUmZmpkpKSetfNckwQfp566in95S9/0Z///GfOdAoDf/rTnzR27FgdfvjhNccEHo9HhmGouLiYyzcs1tgxwYHj6eaOCWJ+ZnPIkCHKz8+vN56fn9/sO/dDhgzRf//7X1VWVpqu28zPz1d8fDzvlAVBe/bPAQ888IAefvhh3XffffrNb34T7Igxqz37ZsOGDdqwYYOeeuqpel/r16+f7rrrLl111VVByxqL2vu7rSntbQIR69qzb9atW6fMzEwddNBBpvHDDjtMkvTdd99pxIgRwQuLFhsyZIhcLpd++OEH09//A/uaswHCwwsvvKA//OEPmjFjhv74xz9aHQfa/xrZunWr+vXrV+9r/fr10xVXXKF77rmn44NBUvuPCWL+iGHChAlatWqVqUvc5s2btXLlSk2YMKHJbU899VR5PB698sorNWNer1cvv/yyxo0bp4SEhBCljh3t2T+SNG/ePN1555265ZZbdNlll4Uwaexpz755/fXX630MHz5cQ4cO1euvv64zzzwzxOmjX3v2z8knn6yEhAS9++67pvF33nlHkjRy5Mig540l7dk3Xbp0UXFxcb0GdKtXr5Ykde/ePeh50TInnXSSnE6nFi1aZBpftGiRhg4d2uCBNDrW66+/rquvvlpTpkzRnXfeaXUc/Oypp56qd0xw4oknKjs7W6+//jrHbxYbPXq0unbtWu+Y4O2335ZU+2ZnY2J+nc2Kigodc8wxSkpK0s033yybzabZs2ervLxcH330kVJTUyXtX59x5MiRuv766/WnP/2pZvsD5yrfcccd6tu3r5588kktW7ZMy5Yt06GHHmrRdxU92rN/XnzxRV1yySU68cQTTftM2r9sQHPv1KBp7X3tBJo4cSLrbAZRe/fPPffco/vvv1+zZs3S2LFjtWbNGt1777361a9+pccee8yqbysqtGffbN68Wcccc4y6dOmiP/zhD+rVq5e+/PJL3X///RowYIDeffddZp6D4NVXX5UkLV++XE899ZT++te/KicnR9nZ2TrmmGMk7V9K4/zzz9cjjzxSs91tt92mxx57TLfccosOOeQQvfzyy3r66af1/PPP69RTT7Xke4lGbdk/H330kc4++2wNGTJE9913n+l1Eh8fr0MOOaTjv5Eo1NbXTqArr7ySdTZDoK3757nnntNVV12l6dOn6/TTT9emTZt0xx13aMSIEXr99deb7L8R86fRpqSk6LXXXtNNN92kK664QoZhaOzYsbr77rtr/uBLkmEY8vl89Tou/f3vf9cdd9yhO++8UyUlJRo+fLj+85//UGgGSXv2z9tvvy3DMPT222/XvPtywJgxY7RkyZIO+z6iUXtfOwit9u6fP/3pT0pNTdWTTz6puXPnqmvXrpo5c6auv/76jv5Wok579k3fvn311ltv6Z577tHs2bO1d+9e9ezZU1OnTtUf//hHCs0gmTp1qun2H/7wB0nmvx0HrjOv65ZbblFKSormzZunXbt2KTc3V/Pnz6fQDLK27J8PPvhALpdLa9eu1fjx403b9+7dm+udg6Strx10jLbun8mTJ8tut2vOnDn697//raysLJ133nm69dZbm230GPMzmwAAAACA4OMtUAAAAABA0FFsAgAAAACCjmITAAAAABB0FJsAAAAAgKCj2AQAAAAABB3FJgAAAABEsO3bt+u6667TySefrO7duyszM1ObN29u12OuWrVK55xzjvr06aMePXro6KOP1osvvtiqx6DYBAAAAIAItmnTJr3yyivKzMzUUUcd1e7HW7ZsmU477TR16dJFTzzxhJ577jlNmTJF1dXVrXoc1tkEAAAAgAjm9/tlt++fR3z22Wf1u9/9TmvXrlXfvn1b/VhlZWUaOXKkfv3rX+uee+5pVy5mNgEAAAAggh0oNJuzZ88eXXvttcrLy1OXLl00evRozZ8/33SfV155RXv27NGMGTPan6vdjwAAAAAACGulpaU69dRT9dZbb+mGG27QokWLdOqpp+r3v/+9Hn/88Zr7ffrpp8rKytK6det09NFHKzs7W8OGDdM999wjn8/Xqud0BPubAAAAAACEl3nz5mnr1q36+OOPNWDAAEnS8ccfr5KSEt177726+OKL5XA4tGPHDlVVVemSSy7Rddddp0MPPVTLly/X/fffr5KSEt19990tfk5mNgEAAAAgyr3zzjsaNWqU+vbtK6/XW/Nx4oknat++fcrPz5e0//rP6upqXX/99Zo5c6aOPfZY/fnPf9bUqVP1xBNPqKSkpMXPycwmAAAAAES53bt3a9OmTcrJyWnw6/v27ZMkderUSZI0btw409fHjRunp556Svn5+TriiCNa9JwUmwAAAAAQ5Tp16qTOnTs32mE2NzdXkjRkyJAmH6elzYgkik0AAAAAiHonnnii/vGPf6hXr17q3Llzo/ebOHGiZs+erXfffVfDhg2rGX/nnXeUmJiovLy8Fj8nxSYAAAAARLhXX31VkvTll19Kkt5++23l5OQoOztbxxxzjK666iq9/PLLmjBhgq666irl5uaqsrJSBQUF+vjjj/X8889LkoYOHarJkyfrrrvukt/v1yGHHKL3339fzz77rK677jqlpqa2OJOtuLjYCPp3CgAAAADoMJmZmQ2OjxkzRkuWLJEkFRcX695779WSJUv0008/KSMjQwMHDtTpp5+uq666qmYbt9ut++67T88//7x27dqlPn366JJLLtGVV17ZqkwUmwAAAACAoGPpEwAAAABA0FFsAgAAAACCjmITAAAAABB0FJsAAAAAgKCj2AQAAAAABB3FJgAAAAAg6Cg2AQAAAABBR7EJAAAAAAg6ik0AAAAAQND9P4zJAdfQ1WvGAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot(x, gauss_pdf/pdf_max);\n", "plot_quartiles(ax)" ] }, { "cell_type": "markdown", "id": "registered-clothing", "metadata": {}, "source": [ "## 3. Apply subsampling to uniform data\n", "\n", "To test the process, we are going to apply it to data with uniform probability. We'll use as working interval (0, $X_{a} + X_{b}$). This interval is chosen so that the uniform data has originally a 25% probability mass below $X_a$ and a 25% probability mass above $X_b$, i.e. just as the original dataset did" ] }, { "cell_type": "markdown", "id": "fdbfef47", "metadata": {}, "source": [ "### 3.1 Generate uniform data" ] }, { "cell_type": "code", "execution_count": 19, "id": "preceding-contest", "metadata": {}, "outputs": [], "source": [ "interval = [0, qr[2]+qr[0]]\n", "width = interval[1] - interval[0]" ] }, { "cell_type": "code", "execution_count": 20, "id": "legitimate-crown", "metadata": {}, "outputs": [], "source": [ "# we generate random data on the interval \n", "data_unif = uniform.rvs(*interval, 300000)" ] }, { "cell_type": "code", "execution_count": 21, "id": "indie-wheel", "metadata": {}, "outputs": [ { "data": { "image/png": "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AAYoqgAA53X5/CPbEQAAgAGKKgDAeYM/TLYdAQAAGKCoAgCc12PQAtsRAACAAYoqAMB5K1eMth0BAAAYoKgCAJy3qWVn2xEAAIABiioAwHmrbuhuOwIAADBAUQUAOC9neCvbEQAAgAGKKgDAeeWeO2A7AgAAMEBRBQA47/6PN9mOAAAADFBUAQDO635wp+0IAADAAEUVAOC8Bx6caTsCAAAwQFEFADjvjcXxtiMAAAADFFUAgPMW3Xyv7QgAAMAARRUA4LwdETfajgAAAAz4taju2bNHv/vd7xQREaEmTZqoU6dOWrFiRb5xzp07p/Hjx6tFixZq0KCBunbtqg8++KDAvC5cuKDZs2fr2muvVf369dWhQwdt2LDBn3EBACHieGIX2xEAAIABvxXVf/zjH7r77rt1/vx5zZkzRytWrND111+vhIQELVmyJG+8hIQELVu2TOPGjdOaNWtUv3599erVS5999lm++U2dOlXTp0/X4MGDlZycrPbt26t///56++23/RUZABAiakzfazsCAAAwUM7r9eb4Y0aTJk3S3Llz9cUXX6h69ep5w7t27SpJeuedd7R//37deuutmjdvnvr27StJys7O1k033aSIiAitXr1aknTy5Em1atVKjz/+uMaNG5c3rx49eujrr7/W7t27/RG51HleOWY7AgCH5QxvpXLPHbAdIygN2p2kxbfE2Y4B5GF/BRAo3gGNrS378OHDat68uV/m5bcrqllZWapYsaKqVKmSb3iNGjV04cIFSdKWLVtUsWJFxcbG5t1eoUIFxcbGavv27crMzJQkbdu2TVlZWerdu3e+ecXFxengwYM6cuSIv2IDAEJAu3QKAQAAZYnfimqfPn0kSU888YS+/PJLeb1eLVu2TDt37lR8/E8/C5CSkqKwsDBVrVo137RRUVHKyspSampq3niVK1dWs2bNCownSYcOHfJXbABACBjSe6LtCAAAwIDfimrLli21adMmbd68WVFRUQoPD9eoUaM0e/Zs9erVS5KUkZEhj8dTYNpatWrl3Z7735o1a6pcuXKXHQ8AgOJ4b15/2xEAAICBCv6a0b/+9S899NBDioyM1OzZs1WlShW9+eabGjFihK688krFxZXeZ4MOHz5cassyU7XoUQAAfpcYE287AgAApcJ2F7rc8k0+v+q3ojpp0iRVqFBBa9asUcWKFSVJnTt3VkZGhp588kndc8898ng8Sk9PLzBt7hXS3CumHo9Hp06dUk5OTr6rqj8f71L89QFev9vFlykBgA3/rBtuOwIAAKXCZhcKyi9TOnjwoFq3bp1XUnNdf/31+vbbb3Xy5ElFRkYqLS1NZ8+ezTdOSkqKKlWqlPeZ1MjISGVmZuqLL74oMJ4ktWjRwl+xAQAhYN9svvEXAICyxG9FtV69etq/f7+ysrLyDf/444915ZVXqlatWoqJidH58+e1fv36vNuzs7O1bt06RUdHq3LlypKk22+/XRUrVlRSUlK+eSUlJally5YKDw/3V2wAQAhoPHGH7QgAAMCA3976O3jwYPXr10/33Xeffv/736tKlSrasmWL1q5dq/j4eFWqVElt2rRRbGysxo4dq+zsbIWFhWnJkiVKS0vTokWL8uZVt25dPfbYY3ruuedUvXp1tWnTRuvWrdP777+vVatW+SsyACBEjHhvqWZH97cdAwAAFJPfimrPnj2VnJys559/Xn/4wx+UmZmp8PBwzZo1SwMGDMgbb/78+Zo8ebKmTJmiU6dOqXXr1lq7dq3atm2bb37jx49XtWrVtHDhQp04cUIRERFaunSpYmJi/BUZABAiGp0+YTsCAAAwUM7r9ebYDhEqPK/wZUoAAidneCuVe+6A7RgAioH9FUCgeAc0trbsoPwyJQAAgtW+Z++1HQEAABigqAIAnDc4LtF2BAAAYICiCgBw3neVq9mOAAAADFBUAQDO2/RSvO0IAADAAEUVAOC8FuM2244AAAAMUFQBAM6bsHW+7QgAAMAARRUAAAAAEFQoqgAA502Mecx2BAAAYICiCgBw3qFpd9iOAAAADFBUAQDO6z5wge0IAADAAEUVAOC8qzK/tx0BAAAYoKgCAJy3KCnRdgQAAGCAogoAcF67kcm2IwAAAAMUVQCA82ZtmGE7AgAAMEBRBQA473iNerYjAAAAAxRVAIDzZkf3tx0BAAAYoKgCAJx3bEIX2xEAAIABiioAwHntRiTZjgAAAAxQVAEAzvvlySO2IwAAAAMUVQCA8xK3LrAdAQAAGKCoAgCcFz10qe0IAADAAEUVAOC8F9dMsB0BAAAYoKgCAJy375pWtiMAAAADFFUAgPMW3xJnOwIAADBAUQUAOO/0k+1tRwAAAAYoqgAA5zVK3GE7AgAAMEBRBQA4r8vnH9mOAAAADFBUAQDOG/xhsu0IAADAAEUVAOC8HoMW2I4AAAAMUFQBAM5buWK07QgAAMAARRUA4LxNLTvbjgAAAAxQVAEAzlt1Q3fbEQAAgAGKKgDAeTnDW9mOAAAADFBUAQDOK/fcAdsRAACAAYoqAMB593+8yXYEAABggKIKAHBe94M7bUcAAAAGKKoAAOc98OBM2xEAAIABiioAwHlvLI63HQEAABigqAIAnLfo5nttRwAAAAYoqgAA5+2IuNF2BAAAYICiCgBw3vHELrYjAAAAAxRVAIDzakzfazsCAAAwQFEFADhv0O4k2xEAAIABiioAwHnt0g/YjgAAAAxQVAEAzhvSe6LtCAAAwABFFQDgvPfm9bcdAQAAGKCoAgCclxgTbzsCAAAwQFEFADjvn3XDbUcAAAAGKKoAAOftmx1nOwIAADBAUQUAOK/xxB22IwAAAAMUVQCA80a8t9R2BAAAYICiCgBwXqPTJ2xHAAAABiiqAADnjeo5xnYEAABggKIKAHDevmfvtR0BAAAYoKgCAJw3OC7RdgQAAGCAogoAcN53lavZjgAAAAxQVAEAztv0UrztCAAAwABFFQDgvBbjNtuOAAAADFBUAQDOm7B1vu0IAADAAEUVAAAAABBUKKoAAOdNjHnMdgQAAGCAogoAcN6haXfYjgAAAAxQVAEAzus+cIHtCAAAwABFFQDgvKsyv7cdAQAAGKCoAgCctygp0XYEAABggKIKAHBeu5HJtiMAAAADFFUAgPNmbZhhOwIAADBAUQUAOO94jXq2IwAAAAMUVQCA82ZH97cdAQAAGKCoAgCcd2xCF9sRAACAgYAU1bffflvdunVT48aNdc0116hLly7auXNn3u1er1cJCQlq1qyZGjVqpJ49e+rAgQMF5nPu3DmNHz9eLVq0UIMGDdS1a1d98MEHgYgMAHBYuxFJtiMAAAADfi+qr7zyivr06aO2bdvq1Vdf1dKlS3X33Xfrhx9+kCTl5OTovvvu07Zt2zRjxgwtX75c58+f11133aVjx47lm1dCQoKWLVumcePGac2aNapfv7569eqlzz77zN+xAQAO++XJI7YjAAAAAxX8ObO0tDSNHTtWkyZNUnx8fN7w2267Le//N2/erD179uiNN95Qp06dJEnt27dXmzZtNGfOHM2Y8dM3M+7fv1/JycmaN2+e+vbtK0nq0KGDbrrpJk2bNk2rV6/2Z3QAgMMSty5Q9NAbbccAAADF5Ncrqq+++qrKly+vhx9++JLjbNmyRQ0bNswrqZJUs2ZNxcTEaPPmzfnGq1ixomJjY/OGVahQQbGxsdq+fbsyMzP9GR0A4LDooUttRwAAAAb8WlT37Nmj5s2b6/XXX1fbtm1Vu3ZtXXfddVq8eHHeOCkpKYqKiiowbVRUlI4ePaozZ87kjRcWFqaqVasWGC8rK0upqan+jA4AcNiLaybYjgAAAAz49a2/X331lb766iv96U9/0p/+9CeFh4drw4YNGj16tLKzs/Xoo48qIyNDTZs2LTBtrVq1JP30RUvVq1dXRkaGPB7PJcfLyMjwZ3QAgMP2XdPKdgQAAGDAr0X1woUL+u6777R8+XL16NFDktS5c2f9+9//1nPPPadHHnnEn4u7pMOHD5fKcsxVLXoUAIDfLb4lznYEAABKhe0udLnlN2/evNjz8WtRvfrqq/Wvf/1L0dHR+YZHR0fr3Xff1VdffSWPxyOv11tg2twrpLlXUT0ej9LT0y85Xu6V1cKY3AGlatexoscBAPjd6Sfbq8b0vbZjAAAQcDa70OHDh/22fL9+RjUyMvLyCytfXpGRkUpJSSlwW0pKipo0aaLq1avnzSstLU1nz54tMF6lSpXUrFkz/wUHADitUeIO2xEAAIABvxbV7t27S5K2b9+eb/i2bdvUuHFj1a9fX926ddPx48e1a9euvNtPnz6trVu3qlu3bnnDYmJidP78ea1fvz5vWHZ2ttatW6fo6GhVrlzZn9EBAA7r8vlHtiMAAAADfn3r729+8xvdeuutevzxx/XNN98oPDxc69ev1/bt2zV//nxJ0h133KEbb7xRQ4YM0aRJk+TxeDR79mzl5ORo2LBhefNq06aNYmNjNXbsWGVnZyssLExLlixRWlqaFi1a5M/YAADHDf4wWZtaRxc9IgAACAp+LarlypXTypUrNWnSJD399NPyer1q3ry5Fi9erHvvvVfST2//XbNmjf74xz9q5MiRyszMVPv27bVx40Y1adIk3/zmz5+vyZMna8qUKTp16pRat26ttWvXqm3btv6MDQBwXI9BC2xHAAAABsp5vd4c2yFChecVvkwJQODkDG+lcs8dsB0jKK1cMVoPPDjTdgwgD/srgEDxDmhsbdlB+2VKAAAEo00tO9uOAAAADFBUAQDOW3VDd9sRAACAAYoqAMB5OcNb2Y4AAAAMUFQBAM7js4AAAJQtFFUAgPPu/3iT7QgAAMAARRUA4LzuB3fajgAAAAxQVAEAzuOnaQAAKFsoqgAA572xON52BAAAYICiCgBw3qKb77UdAQAAGKCoAgCctyPiRtsRAACAAYoqAMB5xxO72I4AAAAMUFQBAM6rMX2v7QgAAMAARRUA4LxBu5NsRwAAAAYoqgAA57VLP2A7AgAAMEBRBQA4b0jvibYjAAAAAxRVAIDz3pvX33YEAABggKIKAHBeYky87QgAAMAARRUA4Lx/1g23HQEAABigqAIAnLdvdpztCAAAwABFFQDgvMYTd9iOAAAADFBUAQDOG/HeUtsRAACAAYoqAMB5jU6fsB0BAAAYoKgCAJw3qucY2xEAAIABiioAwHn7nr3XdgQAAGCAogoAcN7guETbEQAAgAGKKgDAed9VrmY7AgAAMEBRBQA4b9NL8bYjAAAAAxRVAIDzWozbbDsCAAAwQFEFADhvwtb5tiMAAAADFFUAAAAAQFChqAIAnDcx5jHbEQAAgAGKKgDAeYem3WE7AgAAMEBRBQA4r/vABbYjAAAAAxRVAIDzrsr83nYEAABggKIKAHDeoqRE2xEAAIABiioAwHntRibbjgAAAAxQVAEAzpu1YYbtCAAAwABFFQDgvOM16tmOAAAADFBUAQDOmx3d33YEAABggKIKAHDesQldbEcAAAAGKKoAAOe1G5FkOwIAADBAUQUAOO+XJ4/YjgAAAAxQVAEAzkvcusB2BAAAYICiCgBwXvTQpbYjAAAAAxRVAIDzXlwzwXYEAABggKIKAHDevmta2Y4AAAAMUFQBAM5bfEuc7QgAAMAARRUA4LzTT7a3HQEAABigqAIAnNcocYftCAAAwABFFQDgvC6ff2Q7AgAAMEBRBQA4b/CHybYjAAAAAxRVAIDzegxaYDsCAAAwQFEFADhv5YrRtiMAAAADFFUAgPM2texsOwIAADBAUQUAOG/VDd1tRwAAAAYoqgAA5+UMb2U7AgAAMEBRBQA4r9xzB2xHAAAABiiqAADn3f/xJtsRAACAAYoqAMB53Q/utB0BAAAYoKgCAJz3wIMzbUcAAAAGKKoAAOe9sTjedgQAAGCAogoAcN6im++1HQEAABigqAIAnLcj4kbbEQAAgAGKKgDAeccTu9iOAAAADFBUAQDOqzF9r+0IAADAAEUVAOC8QbuTbEcAAAAGKKoAAOe1Sz9gOwIAADBAUQUAOG9I74m2IwAAAAMUVQCA896b1992BAAAYICiCgBwXmJMvO0IAADAQECLaq9eveTxeDRlypR8w71erxISEtSsWTM1atRIPXv21IEDBT8/dO7cOY0fP14tWrRQgwYN1LVrV33wwQeBjAwAcNA/64bbjgAAAAwErKiuXbtW//jHPwoMz8nJ0X333adt27ZpxowZWr58uc6fP6+77rpLx44dyzduQkKCli1bpnHjxmnNmjWqX7++evXqpc8++yxQsQEADto3O852BAAAYCAgRdXr9WrcuHGaOnVqgds2b96sPXv2aOHChbrnnnt0++23a9WqVbpw4YLmzJmTN97+/fuVnJysadOmqV+/furcubOWLl2qJk2aaNq0aYGIDQBwVOOJO2xHAAAABgJSVCdMmKCoqCjdc889BW7bsmWLGjZsqE6dOuUNq1mzpmJiYrR58+Z841WsWFGxsbF5wypUqKDY2Fht375dmZmZgYgOAHDQiPeW2o4AAAAM+L2ofvjhh1q9erVmzZpV6O0pKSmKiooqMDwqKkpHjx7VmTNn8sYLCwtT1apVC4yXlZWl1NRUf0cHADiq0ekTtiMAAAADfi2qWVlZGj58uBISEtS8efNCx8nIyJDH4ykwvFatWpJ+ettwccbLyMjwS2YAgPtG9RxjOwIAADBQwZ8zmzNnjn744QeNHDnSn7M1dvjwYavLv7SqRY8CAPC7fc/eq3Yjk23HAAAg4Gx3ocst/1IXMwvjt6Kanp6uZ599Vn/+85+VmZmZ7zOkmZmZ8nq9uuqqq+TxePKuml4s9wpp7lVUj8ej9PT0S46Xe2W1MCZ3QKnadazocQAAfjc4LtF2BAAASoXNLnT48GG/Ld9vb/09cuSIzp07p8GDBys8PDzvT5Lmzp2r8PBwHThwQJGRkUpJSSkwfUpKipo0aaLq1atLkiIjI5WWlqazZ88WGK9SpUpq1qyZv6IDABz3XeVqtiMAAAADfiuq1157rTZu3FjgT5Li4uK0ceNGNWvWTN26ddPx48e1a9euvGlPnz6trVu3qlu3bnnDYmJidP78ea1fvz5vWHZ2ttatW6fo6GhVrlzZX9EBAI7b9FK87QgAAMCA39766/F4dOuttxZ6W9OmTfNuu+OOO3TjjTdqyJAhmjRpkjwej2bPnq2cnBwNGzYsb5o2bdooNjZWY8eOVXZ2tsLCwrRkyRKlpaVp0aJF/ooNAAgBLcZtLnokAAAQNALyO6qXXWD58lqzZo26dOmikSNHqm/fvrriiiu0ceNGNWnSJN+48+fP1wMPPKApU6YoLi5Ox44d09q1a9W2bdvSjg0AKMMmbJ1vOwIAADDg12/9LUxhX5xUq1YtzZ8/X/PnX/7EoUqVKpo2bZqmTZsWoHQAAAAAgGBT6ldUAQAobRNjHrMdAQAAGKCoAgCcd2jaHbYjAAAAAxRVAIDzug9cYDsCAAAwQFEFADjvqszvbUcAAAAGKKoAAOctSkq0HQEAABigqAIAnNduZLLtCAAAwABFFQDgvFkbZtiOAAAADFBUAQDOO16jnu0IAADAAEUVAOC82dH9bUcAAAAGKKoAAOcdm9DFdgQAAGCAogoAcF67EUm2IwAAAAMUVQCA83558ojtCAAAwABFFQDgvMStC2xHAAAABiiqAADnRQ9dajsCAAAwQFEFADjvxTUTbEcAAAAGKKoAAOftu6aV7QgAAMAARRUA4LzFt8TZjgAAAAxQVAEAzjv9ZHvbEQAAgAGKKgDAeY0Sd9iOAAAADFBUAQDO6/L5R7YjAAAAAxRVAIDzBn+YbDsCAAAwQFEFADivx6AFtiMAAAADFFUAgPNWrhhtOwIAADBAUQUAOG9Ty862IwAAAAMUVQCA81bd0N12BAAAYICiCgBwXs7wVrYjAAAAAxRVAIDzyj13wHYEAABggKIKAHDe/R9vsh0BAAAYoKgCAJzX/eBO2xEAAIABiioAwHkPPDjTdgQAAGCAogoAcN4bi+NtRwAAAAYoqgAA5y26+V7bEQAAgAGKKgDAeTsibrQdAQAAGKCoAgCcdzyxi+0IAADAAEUVAOC8GtP32o4AAAAMUFQBAM4btDvJdgQAAGCAogoAcF679AO2IwAAAAMUVQCA84b0nmg7AgAAMEBRBQA47715/W1HAAAABiiqAADnJcbE244AAAAMUFQBAM77Z91w2xEAAIABiioAwHn7ZsfZjgAAAAxQVAEAzms8cYftCAAAwABFFQDgvBHvLbUdAQAAGKCoAgCc1+j0CdsRAACAAYoqAMB5o3qOsR0BAAAYoKgCAJy379l7bUcAAAAGKKoAAOcNjku0HQEAABigqAIAnPdd5Wq2IwAAAAMUVQCA8za9FG87AgAAMEBRBQA4r8W4zbYjAAAAAxRVAIDzJmydbzsCAAAwQFEFAAAAAAQViioAwHkTYx6zHQEAABigqAIAnHdo2h22IwAAAAMUVQCA87oPXGA7AgAAMEBRBQA476rM721HAAAABiiqAADnLUpKtB0BAAAYoKgCAJzXbmSy7QgAAMAARRUA4LxZG2bYjgAAAAxQVAEAzjteo57tCAAAwABFFQDgvNnR/W1HAAAABiiqAADnHZvQxXYEAABggKIKAHBeuxFJtiMAAAADFFUAgPN+efKI7QgAAMAARRUA4LzErQtsRwAAAAYoqgAA50UPXWo7AgAAMEBRBQA478U1E2xHAAAABiiqAADn7bumle0IAADAAEUVAOC8xbfE2Y4AAAAM+LWobtiwQQ8++KBat26tBg0aqF27dpo4caK+++67fON5vV4lJCSoWbNmatSokXr27KkDBw4UmN+5c+c0fvx4tWjRQg0aNFDXrl31wQcf+DMyACAEnH6yve0IAADAgF+L6ty5c3XFFVfoT3/6k9auXauHH35YS5Ys0e9+9ztduHBBkpSTk6P77rtP27Zt04wZM7R8+XKdP39ed911l44dO5ZvfgkJCVq2bJnGjRunNWvWqH79+urVq5c+++wzf8YGADiuUeIO2xEAAICBCv6c2erVq1WnTp28f3fs2FG1atXSo48+qr/+9a/q3LmzNm/erD179uiNN95Qp06dJEnt27dXmzZtNGfOHM2YMUOStH//fiUnJ2vevHnq27evJKlDhw666aabNG3aNK1evdqf0QEADuvy+Ufa1DradgwAAFBMfr2ienFJzXX99ddLkr788ktJ0pYtW9SwYcO8kipJNWvWVExMjDZv3pw3bMuWLapYsaJiY2PzhlWoUEGxsbHavn27MjMz/RkdAOCwwR8m244AAAAMBPzLlHI/U9qiRQtJUkpKiqKiogqMFxUVpaNHj+rMmTN544WFhalq1aoFxsvKylJqamqAkwMAXNFj0ALbEQAAgAG/vvX3544fP65p06apS5cuuu666yRJGRkZatq0aYFxa9WqJemnL1qqXr26MjIy5PF4LjleRkbGJZd7+PBhP6QPhKpFjwIA8LuVK0brgQdn2o4BAEDA2e5Cl1t+8+bNiz2fgBXVM2fOqE+fPqpQoYLmz58fqMUUyuQOKFW7jhU9DgDA7za17Gw7AgAApcJm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AAAQaEFdVLt166a9e/fqyJEjecPS0tL0t7/9Td26dbMX7CJHjx7VQw89pKZNm+qaa65R3759lZ6eXqxpz507p/Hjx6tFixZq0KCBunbtqg8++CDAiUNLSbfP3//+dw0bNkzt27dXw4YN1bp1aw0aNCjfYxG+8WXfudhzzz0nj8ejmJiYAKQMXb5un0OHDqlfv35q1qyZGjRooHbt2umFF14IYOLQ4cu2SU9P1yOPPKLWrVurQYMGuuGGGzRlyhR+m9yPjh07ptGjR6tr165q2LChPB6P0tLSijXthQsXNHv2bF177bWqX7++OnTooA0bNgQ4cego6bb5/PPP9cQTT+iWW25R48aN1aJFC913333av39/KaQOHb7sOxd7/fXX5fF41LJlywCkDE2+bpvjx4/rscce0y9/+UvVq1dPv/rVrzRx4sQipwvqotqvXz81bdpUffr00ZtvvqnNmzerT58+aty4sQYMGGA7ns6ePasePXro8OHDWrBggRYuXKjU1FTdddddxXrST0hI0LJlyzRu3DitWbNG9evXV69evfTZZ5+VQnr3+bJ9Xn/9daWkpGjIkCFKTk7WhAkT9Omnnyo6OlpHjx4tpTVwl6/7Tq4jR45o1qxZqlu3bgDThh5ft8/f//533X777crMzNSf//xnJSUlaejQofrxxx9LIb3bfNk233//ve6++27t3r1b48aNU1JSkh566CHNmzdPQ4cOLaU1cF9qaqrWr18vj8ejm2++2WjaqVOnavr06Ro8eLCSk5PVvn179e/fX2+//XaA0oaWkm6b7du3669//avuv/9+rVq1SrNmzdI333yjrl276pNPPglc4BDjy76Ty+v1auzYsapfv76f04U2X7ZNWlqabrvtNv3rX//SM888o7/85S968skndcUVVxQ5bTmv15tT0tClIT09XePGjdOOHTuUk5OjTp066emnn1ZYWJjtaHrhhRf01FNPad++fXm/9XrkyBHdcMMNmjhx4mWf+Pfv369bb71V8+bNU9++fSVJ2dnZuummmxQREaHVq1eXyjq4zJft8/XXX6tOnTr5hv373/9WmzZtNGrUKD311FMBze46X7bNxWJjY9W0aVMdPnxYP/74o7Zu3RrI2CHDl+1z4cIF3XzzzYqIiNDKlStLK3LI8GXbbN++XbGxsfrLX/6i//3f/80bnpiYqLlz5yo9PV1Vq1YN+Dq47sKFCypf/qfrAMuXL9cf/vAHffrpp0Wet5w8eVKtWrXS448/rnHjxuUN79Gjh77++mvt3r07oLlDQUm3zTfffKOrr75a5cqVyxt26tQp/epXv1JMTIxefPHFgOYOFSXdPhcbNmyY0tPTVb9+fe3cuVMHDx4MVNyQ4su26dWrlzIyMvTWW2+pYsWKRssN6iuqknTNNddoxYoVSk9P19GjR/Xaa68FRUmVpC1btqh9+/Z5JwuSFB4erl//+tfavPnyPy6/ZcsWVaxYUbGxsXnDKlSooNjYWG3fvl2ZmZkByx0qfNk+Py+pktS0aVPVqVNHX375pd+zhhpftk2u5ORkffrpp5owYUKgYoYsX7bPX//6Vx06dEiPPfZYoGOGJF+2TVZWliTpqquuyje8Zs2aunDhgnJygvp16zIj92TO1LZt25SVlaXevXvnGx4XF6eDBw/y0RM/KOm2qV27dr6SKv2030RERHBO4Ecl3T659uzZo6SkJM2aNctPiZCrpNvmiy++0LZt2zR48GDjkiqVgaIazFJSUhQVFVVgeFRUlA4dOlTktGFhYQVevY6KilJWVpZSU1P9mjUU+bJ9CnPo0CGdPHmSL/LyA1+3jdfr1bhx4zRx4kTVqlUrEBFDmi/bZ8+ePZKkzMxM3X777apTp44iIiI0ZswY/fDDDwHJG0p82TZdunTRL37xC02YMEEpKSk6c+aMdu7cqYULF+rhhx9WtWrVAhUbxZCSkqLKlSvnexFCUt72LsnzFgInIyND//d//8c5QZA4f/68Hn/8cSUkJBTYh2BP7jlBlSpVdPfdd6tevXoKCwvTkCFD9O233xY5PUXVB5f6mZxatWoV+rM6xZ0293b4xpft83PZ2dkaPny46tSpowcffNA/AUOYr9tm/PjxioiI0AMPPOD/cPBp+3z11VeSpAEDBig6Olrr1q3TsGHDtGLFCg0cODAAaUOLL9vmyiuv1NatW5WTk6ObbrpJTZo0Uc+ePfXb3/5WM2fODExgFFtGRoZq1qxZ4Mod5wXBacyYMcrJydGjjz5qOwokPf/888rMzNSIESNsR8FFcs8Jhg4dqoiICCUnJ2vixIl6++23FRsbqwsXLlx2+gqlERIo60aPHq2PPvpISUlJ/IavZbt379bq1au1c+fOAid0sC/3SScuLi7vs9y33nqrfvzxRyUmJurQoUNcgbDk3LlzGjBggE6ePKkXX3xRTZo00f/7f/9PM2bMUIUKFTR79mzbEYEyYfbs2UpOTtbcuXO5ehcEUlNT9eyzz+rVV1/VlVdeaTsOLpJ7TtChQ4e8t2R37txZNWrU0MMPP6xt27apa9eul5yeK6o+8Hg8hb6CfalXvIs7rSTezugHvmyfiyUmJmrp0qWaN29evi8gQcn5sm2GDx+uBx98UI0aNZLX65XX69WPP/6oH3/8UV6vl893+4Ev2+fqq6+WJEVHR+cbnvtvvtXcN75smxUrVmjXrl1KTk5W79691aFDByUkJGjKlCl6+eWX+akNyzwej06dOlXgs8KcFwSXl19+WZMmTdIf//hH3mEVJJ544gl16tRJ7dq1yzsvOH/+vHJycuT1evnYiUWXOifIPZ8u6pyAK6o+iIyMVEpKSoHhKSkpRV4xiIyM1KZNm3T27Nl8n1NNSUlRpUqVeIXOD3zZPrlmzZql559/XjNmzNB9993n74ghy5dtc+jQIR06dEgvv/xygdvCw8M1bdo0xcfH+y1rKPL12HY5vn5ZRqjzZdscPHhQHo9H//M//5Nv+PXXXy9J+uc//6lrr73Wf2FhJDIyUpmZmfriiy/ynQPkbm/eiWDf6tWrNXLkSA0dOlSjRo2yHQf/kZKSovT0dIWHhxe4LTw8XI888oimT59e+sHg8zkBZww+6Natm/bu3Zvvm/jS0tL0t7/9Td26dbvstDExMTp//rzWr1+fNyw7O1vr1q1TdHS0KleuHKDUocOX7SNJCxcu1JQpUzR+/HgNHjw4gElDjy/bZuPGjQX+WrdurZYtW2rjxo3q2bNngNO7z5ft07VrV1WuXFnbt2/PN3zbtm2SpOuuu87veUOJL9umXr168nq9Bb6s7+OPP5YkNWzY0O95UXy33367KlasqKSkpHzDk5KS1LJly0JPwlF6Nm7cqMcee0wPPfSQpkyZYjsOLvLyyy8XOC+47bbbVLt2bW3cuJFzOIvat2+v+vXrFzgnePfddyX994XSSwn631ENZt9//706duyoKlWq6KmnnlK5cuU0depUnTlzRh988IGqV68u6aff37zuuus0ZswYPfHEE3nT5743e/LkyQoLC9OSJUv01ltv6a233lLbtm0trZU7fNk+r7/+ugYOHKjbbrst3zaTfvpph6JeIcLl+brv/Nydd97J76j6ka/bZ/r06Zo5c6aGDRumTp066e9//7ueeeYZ/e53v9MLL7xga7Wc4Mu2SUtLU8eOHVWvXj2NHDlSTZo00SeffKKZM2fqF7/4hbZv384Vbz/ZsGGDJGnnzp16+eWX9eyzz6pOnTqqXbu2OnbsKOmnnzy5//77NW/evLzpEhMT9cILL2j8+PFq06aN1q1bp1deeUWrVq1STEyMlXVxTUm2zQcffKDY2FhFRkZqxowZ+faTSpUqqU2bNqW/Io4q6b7zc48++ii/o+pnJd02r732muLj4zVgwADdddddSk1N1eTJk3Xttddq48aNl/2+Ed7664Nq1arpjTfe0Lhx4/TII48oJydHnTp10tNPP513siBJOTk5+vHHHwt8s9X8+fM1efJkTZkyRadOnVLr1q21du1aSqqf+LJ93n33XeXk5Ojdd9/Ne9UnV4cOHfTmm2+W2nq4yNd9B4Hl6/Z54oknVL16dS1ZskRz585V/fr1lZCQoDFjxpT2qjjHl20TFhamd955R9OnT9fUqVP1zTffqHHjxurXr59GjRpFSfWjfv365fv3yJEjJeV//sj9bP3Fxo8fr2rVqmnhwoU6ceKEIiIitHTpUkqqH5Vk27z//vvKzMzUp59+qt/+9rf5pr/mmmv4fLcflXTfQeCVdNv06dNH5cuX15w5c7Ry5UrVqlVLcXFxmjBhQpFfiskVVQAAAABAUOHlUwAAAABAUKGoAgAAAACCCkUVAAAAABBUKKoAAAAAgKBCUQUAAAAABBWKKgAAAACEqGPHjmn06NHq2rWrGjZsKI/Ho7S0NJ/muXfvXvXq1UtNmzZVo0aNdMstt+j11183mgdFFQAAAABCVGpqqtavXy+Px6Obb77Z5/m99dZbuuOOO1SvXj299NJLeu211/TQQw/p3LlzRvPhd1QBAAAAIERduHBB5cv/dP1y+fLl+sMf/qBPP/1UYWFhxvP67rvvdN111+mee+7R9OnTfcrFFVUAAAAACFG5JbUoX3/9tYYPH66oqCjVq1dP7du319KlS/ONs379en399dcaOnSo77l8ngMAAAAAwFmnT59WTEyM3nnnHT355JNKSkpSTEyMRowYoRdffDFvvD179qhWrVo6ePCgbrnlFtWuXVutWrXS9OnT9eOPPxots4K/VwIAAAAA4I6FCxcqPT1du3fv1i9+8QtJUpcuXXTq1Ck988wz+v3vf68KFSroq6++0g8//KCBAwdq9OjRatu2rXbu3KmZM2fq1KlTevrpp4u9TK6oAgAAAAAuadu2bbrhhhsUFham7OzsvL/bbrtN3377rVJSUiT99HnXc+fOacyYMUpISNCtt96qP/7xj+rXr59eeuklnTp1qtjL5IoqAAAAAOCSTp48qdTUVNWpU6fQ27/99ltJ0tVXXy1Jio6Oznd7dHS0Xn75ZaWkpOjXv/51sZZJUQUAAAAAXNLVV1+tunXrXvKbfCMiIiRJkZGRl51Pcb+4SaKoAgAAAAAu47bbbtOiRYvUpEkT1a1b95Lj3XnnnZo6daq2b9+uVq1a5Q3ftm2brrzySkVFRRV7mRRVAAAAAAhhGzZskCR98sknkqR3331XderUUe3atdWxY0fFx8dr3bp16tatm+Lj4xUREaGzZ8/q8OHD2r17t1atWiVJatmypfr06aNp06bpwoULatOmjXbs2KHly5dr9OjRql69erEzlfN6vTl+X1MAAAAAQJng8XgKHd6hQwe9+eabkiSv16tnnnlGb775pr788kvVrFlTzZs311133aX4+Pi8abKysjRjxgytWrVKJ06cUNOmTTVw4EA9+uijRpkoqgAAAACAoMLP0wAAAAAAggpFFQAAAAAQVCiqAAAAAICgQlEFAAAAAAQViioAAAAAIKhQVAEAAAAAQYWiCgAAAAAIKhRVAAAAAEBQoagCAAAAAILK/wcrwKHN9xLjtwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Let's plot the distribution for the test data. Should be flat\n", "fig, ax = plt.subplots()\n", "ax.hist(data_unif, bins=300);\n", "plot_quartiles(ax)" ] }, { "cell_type": "markdown", "id": "99fbe6ad", "metadata": {}, "source": [ "### 3.2 subsample\n", "We define now the subsampling function with gaussian weighting" ] }, { "cell_type": "code", "execution_count": 22, "id": "ready-seventh", "metadata": {}, "outputs": [], "source": [ "def subsample_gauss(data: np.ndarray, mean: float, sdev: float, norm_factor: float) -> np.ndarray:\n", " \"\"\"\n", " Vectorized subsampling: process the whole dataset\n", " \"\"\"\n", " # Create the gaussian weight for each data point\n", " p = norm.pdf(data, loc=mean, scale=sdev)/norm_factor\n", " #print(p)\n", " # Subsample data with probability according to the weight\n", " return data[ uniform.rvs(size=len(p)) < p ]" ] }, { "cell_type": "markdown", "id": "hidden-shelf", "metadata": {}, "source": [ "After resampling, at each perplexity value, the probability of retaining a sample will be the value of the normalized gaussian PDF curve.\n", "\n", "This also means that the overall sample ratio will be:\n", "\n", "
\n", "
\n", "\n", "$$\\text{R} = \\int{p(v) \\cdot w(v) dv} = \n", "\\int{ p(v) \\cdot \\frac{1}{\\text{pdf}_{max}} \\text{pdf}(v) dv } = \n", "$$\n", "\n", "
\n", "\n", "$$ = { \\frac{1}{W} \\cdot \\frac{1}{\\text{pdf}_{max}} \\text{pdf}(v) dv } = \n", "\\frac{1}{W\\cdot\\text{pdf}_{max}}\\int{\\text{pdf}(v) dv} =\n", "\\frac{1}{W\\cdot\\text{pdf}_{max}}$$\n", "\n", "
\n", " \n", "where $W$ is the interval width, and we use the value of the uniform probability ($1/W$) and the fact that the integral of the Gaussian distribution over the interval sums approximately 1 (given that the interval is big enough to encompass most of the Gaussian definition interval)\n", "
" ] }, { "cell_type": "code", "execution_count": 23, "id": "russian-sodium", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.31994686644840487" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratio = 1/(width*pdf_max)\n", "ratio" ] }, { "cell_type": "markdown", "id": "fdcae693", "metadata": {}, "source": [ "Let's do the resampling:" ] }, { "cell_type": "code", "execution_count": 24, "id": "random-champion", "metadata": {}, "outputs": [], "source": [ "data_unif_sub = subsample_gauss(data_unif, mean, sdev, pdf_max)" ] }, { "cell_type": "markdown", "id": "vietnamese-carry", "metadata": {}, "source": [ "### 3.3 check results" ] }, { "cell_type": "markdown", "id": "quarterly-february", "metadata": {}, "source": [ "Check the obtained sampling ratio; it should be aproximately equal to the estimation:" ] }, { "cell_type": "code", "execution_count": 25, "id": "specialized-penny", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.3208933333333333" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(data_unif_sub)/len(data_unif)" ] }, { "cell_type": "markdown", "id": "thirty-mexican", "metadata": {}, "source": [ "Check the shares of the distribution below $X_a$ and above $X_b$, they should match our objectives" ] }, { "cell_type": "code", "execution_count": 26, "id": "intensive-fitness", "metadata": {}, "outputs": [], "source": [ "def check_regions(data: np.ndarray):\n", " ra = len(data[data < qr[0]]) / len(data)\n", " print(\"Probability mass below Pa:\", ra)\n", " rb = len(data[data > qr[2]]) / len(data)\n", " print(\"Probability mass above Pb:\", rb)" ] }, { "cell_type": "code", "execution_count": 27, "id": "advisory-certification", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Probability mass below Pa: 0.14987327045331783\n", "Probability mass above Pb: 0.1009785183030706\n" ] } ], "source": [ "check_regions(data_unif_sub)" ] }, { "cell_type": "markdown", "id": "brown-perception", "metadata": {}, "source": [ "We can plot the resulting data distribution" ] }, { "cell_type": "code", "execution_count": 28, "id": "painted-madonna", "metadata": {}, "outputs": [ { "data": { "image/png": "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0DPPPKO7775bTZo0UcuWLfXwww/r4MGDZZDaXUx+hn7srbfeksfjUevWrUshpXuZzs+JEyc0atQo3X777apfv77++7//W1OmTCnRff26xA4aNEjNmjXTo48+qk2bNmnz5s169NFH1aRJEw0ZMsRqtrNnz6pPnz7KyMjQggULtHDhQmVmZuqBBx4o0RuA2NhYLV++XBMnTtTq1avVoEED9evXT5999lkZpHcHkzl66623lJ6erhEjRigtLU2TJ0/Wp59+qsjISB0/fryMnkHFZvozVOjo0aOaPXu26tWrV4pp3cl0jj7++GP16NFDubm5+sMf/qDU1FSNHj1aFy9eLIP0FZ/J/Hz33Xd68MEHtXfvXk2cOFGpqakaOHCg5s2bx+XrHJSZmal169bJ4/Goc+fO13Xf6dOna8aMGRo+fLjS0tIUHh6uwYMH69133y2ltO5zo/OzY8cO/eUvf9EjjzyilStXavbs2frXv/6lnj176pNPPim9wC5k8jNUyOv1asKECWrQoIHD6WAyP1lZWbr33nv1z3/+Uy+88IL+9Kc/6dlnn9VNN91Uovv79SV2pB/+Ujxx4kTt3LlTBQUF6tq1q55//nkFBwdbzfXKK69o0qRJOnDgQNF1bI8ePaq77rpLU6ZMueqbgIMHD+qee+7RvHnzNGDAAElSXl6eOnXqpNDQUK1atapMnkNFZzJHX331lerWreuz7f/+7//Url07PfXUU5o0aVKpZncDk/n5sejoaDVr1kwZGRm6ePGitm7dWpqxXcVkjvLz89W5c2eFhobqzTffLKvIrmIyPzt27FB0dLT+9Kc/6X/+53+KticmJmru3Lk6duyYqlevXurPoaLLz89X5co/rBesWLFCv/3tb/Xpp59e8z3MqVOn1KZNG40dO1YTJ04s2t6nTx999dVX2rt3b6nmdosbnZ9//etfuvXWW1WpUqWibadPn9Z///d/KyoqSq+++mqp5naTG52jHxszZoyOHTumBg0aaNeuXTp8+HBpxXUdk/np16+fcnJy9M477yggIOC6v7Zfr8RK0m233abXX39dx44d0/Hjx/XHP/7ReoGVpC1btig8PLzojYMkhYSE6Gc/+5k2b958zfsGBAQoOjq6aFuVKlUUHR2tHTt2KDc3t9Ryu4nJHF1aYCWpWbNmqlu3rr744gvHs7qRyfwUSktL06effqrJ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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.hist(data_unif_sub, bins=200);\n", "plot_quartiles(ax)" ] }, { "cell_type": "markdown", "id": "bored-feedback", "metadata": {}, "source": [ "### 3.4 Adjust sampling ratio\n", "\n", "The \"natural\" sampling ratio for this Gaussian weighting obtained is, as computed above, of 32%. We might want to achieve a different sampling ratio; to achieve that we can modify the normalization factor so that we lower the Gaussian curve to sample less data (but still keep the relative weights); in this case the peak of the Gaussian would not sample at 100%, but less than that." ] }, { "cell_type": "code", "execution_count": 29, "id": "confused-external", "metadata": {}, "outputs": [], "source": [ "# Let's seek a sampling ratio of 20%\n", "desired_sampling_ratio = 0.20\n", "\n", "# With this desired fraction, we compute the new normalization factor\n", "unif_norm_factor = 1/(width*desired_sampling_ratio)" ] }, { "cell_type": "code", "execution_count": 30, "id": "controversial-caribbean", "metadata": {}, "outputs": [], "source": [ "data_unif_sub2 = subsample_gauss(data_unif, mean, sdev, unif_norm_factor)" ] }, { "cell_type": "code", "execution_count": 31, "id": "angry-stomach", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.20069666666666666" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Now we have our desired sampling ratio\n", "len(data_unif_sub2)/len(data_unif)" ] }, { "cell_type": "code", "execution_count": 32, "id": "transparent-width", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Probability mass below Pa: 0.14976166353867362\n", "Probability mass above Pb: 0.1011808865784185\n" ] } ], "source": [ "# And the probability masses stay as before\n", "check_regions(data_unif_sub2)" ] }, { "cell_type": "code", "execution_count": 33, "id": "ethical-resolution", "metadata": {}, "outputs": [ { "data": { "image/png": "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/mNov4m2IwBACWW9T+B9BPBflFbgPPHHA6i63pkxUNHD02zHAAAABiitwDlwNl/AHcmxCbYjAAAAQ5RWoJJQggF7PmvU2nYEAPhFvE8Azo3SChhiuTBQdexIjVfoxE22YwAAAAOUVsBH+IQU8F8UVgBVHR+WI5BRWhGwSv7yry1toXQCrhr5TppSowfajgEAFYZSC5dRWuEMflkDOJfmR76xHQEAfKq8K7x434SqpLrtAAAAVLTRfcbajgAAAAwx04oqq6xPGPkEEcBpO569XZ1HZdiOAQCVxtfvg3hfBZv8vrQeOHBASUlJ2rRpk4qKitS9e3c99dRTatmype1oqGS+XgYDIHAMiU+2HQEArLrQD/srG6UYv8SvS+uxY8fUu3dv1axZU7NmzVK1atU0efJk3XLLLdq6davq1KljOyIAoAr4oSZ/LwDAlyiZqEx+XVoXLFig/fv3a8eOHWrTpo0kqX379rr66qs1f/58DR8+3HJC/NyF/vIqa3/bn/gBcMfqlxPUNmmt7RgA4KwLfd9W3pIbtaXklR8ozW7z69K6bt06RUVFFRdWSWrdurV+85vfaO3atZTWSlbeUnqhjw8AvkJhBQD/4u/LlauSQJj1rub1eotshziXyy+/XDfffLOef/75EttHjRqlFStW6IsvvrATDAAAAABQKfz6kje5ubnyeDyltoeEhMjr9VZ6HgAAAABA5fLr0goAAAAACGx+XVo9Hs9ZZ1TPNQMLAAAAAHCLX5fWiIgIZWZmltqemZmptm3bWkgEAAAAAKhMfl1ae/bsqQ8++ED79+8v3paVlaV//vOf6tmzp71g/+fAgQO699571apVK7Vs2VL9+/dXdnb2ed33+PHjGj9+vNq2baumTZsqJiZGW7dureDEgcV0fD766CONGDFCUVFRatasmTp06KD777+/xP8PUX7lef383HPPPSePx6PY2NgKSBm4yjs+e/bs0YABA9SmTRs1bdpUnTt31osvvliBiQNLecYnOztbDzzwgDp06KCmTZvq6quv1qRJk/Tjjz9WcOrAkJOTozFjxigmJkbNmjWTx+NRVlbWed23sLBQqampuuKKK9SkSRN16dJFK1eurODEgcV0fD7//HM9+uijuv766xUaGqq2bdvqjjvu0M6dOyshdeAoz+vn515//XV5PB61a9euAlIGrvKOz8GDBzVs2DBdfvnlaty4sX79619r4sSJ53Vfvy6tAwYMUKtWrXTXXXdpzZo1Wrt2re666y6FhoZq0KBBVrMdO3ZMvXv31t69ezVr1izNnj1b+/bt0y233HJef/gTExO1YMECJSUlaenSpWrSpIn69u2rTz/9tBLSu6884/P6668rMzNTQ4cOVUZGhiZMmKBPPvlE0dHROnDgQCV9B24r7+vntP3792vatGlq1KhRBaYNPOUdn48++kg33XST8vLy9Je//EXp6ekaPny4Tp48WQnp3Vee8fnxxx916623atu2bUpKSlJ6erruvfdezZgxg8vI+ci+ffu0YsUKeTweXXfddRd038mTJ2vKlCkaMmSIMjIyFBUVpYEDB+qtt96qoLSBx3R8Nm7cqH/84x+68847tXjxYk2bNk3fffedYmJi9PHHH1dc4ABTntfPaV6vV+PGjVOTJk18nA7lGZ+srCzdeOON+uKLL/T000/rb3/7mx577DFddNFF53V/v77kjXTqE+GkpCRt2rRJRUVF6tatm5566imFhYVZzfXiiy/q8ccf144dO4qvI7t//35dffXVmjhx4i/+8d+5c6duuOEGzZgxQ/3795ckFRQU6Nprr1V4eLiWLFlSKd+Dy8ozPt9++60aNmxYYtt//vMfdezYUaNHj9bjjz9eodkDQXnG5+fi4uLUqlUr7d27VydPntT69esrMnbAKM/4FBYW6rrrrlN4eLhee+21yoocUMozPhs3blRcXJz+9re/6X/+53+KtycnJ+uFF15Qdna2ateuXeHfg8sKCwtVvfqpOYGFCxfqoYce0ieffFLm+5ZDhw6pffv2evjhh5WUlFS8vXfv3vr222+1bdu2Cs0dKEzH57vvvtOll16qatWqFW87fPiwfv3rXys2NlYvvfRSheYOFKbj83MjRoxQdna2mjRpos2bN2v37t0VFTfglGd8+vbtq9zcXL355psKDg6+4Of265lWSWrZsqUWLVqk7OxsHThwQH/961+tF1ZJWrdunaKioorfMEhS69at9Zvf/EZr1/7yRezXrVun4OBgxcXFFW8LCgpSXFycNm7cqLy8vArLHSjKMz5nFlZJatWqlRo2bKivvvrK51kDUXnG57SMjAx98sknmjBhQkXFDFjlGZ9//OMf2rNnj4YNG1bRMQNWecYnPz9fknTJJZeU2F6/fn0VFhaqqMivP8euEk6/obtQGzZsUH5+vvr161die3x8vHbv3s0hKj5iOj4NGjQoUVilU6+b8PBw3hv4kOn4nLZ9+3alp6dr2rRpPkqEnzMdny+//FIbNmzQkCFDjAqrVAVKq7/KzMxUZGRkqe2RkZHas2dPmfcNCwsr9Wl2ZGSk8vPztW/fPp9mDUTlGZ+z2bNnjw4dOsQJwHykvOPj9XqVlJSkiRMnKiQkpCIiBrTyjM/27dslSXl5ebrpppvUsGFDhYeHa+zYsfrpp58qJG+gKc/49OjRQ7/61a80YcIEZWZm6ujRo9q8ebNmz56t++67T3Xq1Kmo2ChDZmamatasWeLDCEnFY23ytwsVKzc3V//+9795b+AnTpw4oYcffliJiYmlXkew6/R7g1q1aunWW29V48aNFRYWpqFDh+r7778/r8egtBo612V3QkJCznqZnvO97+nbUT7lGZ8zFRQU6JFHHlHDhg11zz33+CZggCvv+IwfP17h4eG6++67fR8O5Rqfr7/+WpI0aNAgRUdHa/ny5RoxYoQWLVqkwYMHV0DawFOe8bn44ou1fv16FRUV6dprr1WLFi3Up08f/e53v9MzzzxTMYFxXnJzc1W/fv1Ss3m8N/BfY8eOVVFRkR588EHbUSDp+eefV15enkaOHGk7Cs5w+r3B8OHDFR4eroyMDE2cOFFvvfWW4uLiVFhYWOZjBFV0SKCqGzNmjN5//32lp6dzfWA/sG3bNi1ZskSbN28u9eYO9p3+wxMfH198/PcNN9ygkydPKjk5WXv27GFWwqLjx49r0KBBOnTokF566SW1aNFC//u//6upU6cqKChIqamptiMCVUJqaqoyMjL0wgsvMKvnB/bt26dnn31Wr776qi6++GLbcXCG0+8NunTpUrx0u3v37qpXr57uu+8+bdiwQTExMb/4GMy0GvJ4PGf9RPtcn4Cf730lsdzRB8ozPj+XnJystLQ0zZgxo8RJS1A+5RmfRx55RPfcc4+aN28ur9crr9erkydP6uTJk/J6vRwT7gPlGZ9LL71UkhQdHV1i++mvOUN6+ZVnfBYtWqQtW7YoIyND/fr1U5cuXZSYmKhJkybplVde4fIdFnk8Hh0+fLjUccW8N/A/r7zyip544gn96U9/YgWWn3j00UfVrVs3de7cufi9wYkTJ1RUVCSv18vhKZad673B6ffW5/PegJlWQxEREcrMzCy1PTMzs8xZhIiICK1evVrHjh0rcVxrZmamatSowSd2PlCe8Tlt2rRpev755zV16lTdcccdvo4Y0MozPnv27NGePXv0yiuvlLqtdevWSklJUUJCgs+yBqLy/n77JeU9yQbKNz67d++Wx+PR//t//6/E9quuukqS9Nlnn+mKK67wXVict4iICOXl5enLL78s8T7g9FizQsE/LFmyRKNGjdLw4cM1evRo23HwfzIzM5Wdna3WrVuXuq1169Z64IEHNGXKlMoPBkm+eW/AuwdDPXv21AcffFDibH5ZWVn65z//qZ49e/7ifWNjY3XixAmtWLGieFtBQYGWL1+u6Oho1axZs4JSB47yjI8kzZ49W5MmTdL48eM1ZMiQCkwamMozPqtWrSr1r0OHDmrXrp1WrVqlPn36VHB695VnfGJiYlSzZk1t3LixxPYNGzZIkq688kqf5w005Rmfxo0by+v1ljrh34cffihJatasmc/z4vzcdNNNCg4OVnp6eont6enpateu3VnfjKNyrVq1SsOGDdO9996rSZMm2Y6Dn3nllVdKvTe48cYb1aBBA61atYr3cpZFRUWpSZMmpd4bvP3225L++8HpL/H767T6qx9//FFdu3ZVrVq19Pjjj6tatWqaPHmyjh49qq1bt6pu3bqSTl3f88orr9TYsWP16KOPFt//9PrtJ598UmFhYZo3b57efPNNvfnmm+rUqZOl78od5Rmf119/XYMHD9aNN95YYsykU5eJKOvTIpStvK+fM/3+97/nOq0+VN7xmTJlip555hmNGDFC3bp100cffaSnn35af/jDH/Tiiy/a+racUZ7xycrKUteuXdW4cWONGjVKLVq00Mcff6xnnnlGv/rVr7Rx40Zmw31g5cqVkqTNmzfrlVde0bPPPquGDRuqQYMG6tq1q6RTl1C58847NWPGjOL7JScn68UXX9T48ePVsWNHLV++XPPnz9fixYsVGxtr5Xtxkcn4bN26VXFxcYqIiNDUqVNLvE5q1Kihjh07Vv434ijT18+ZHnzwQa7TWgFMx+evf/2rEhISNGjQIN1yyy3at2+fnnzySV1xxRVatWpVmecpYXmwoTp16uiNN95QUlKSHnjgARUVFalbt2566qmnit8wSFJRUZFOnjxZ6qxYM2fO1JNPPqlJkybp8OHD6tChg5YtW0Zh9ZHyjM/bb7+toqIivf3228WfAJ3WpUsXrVmzptK+D1eV9/WDilXe8Xn00UdVt25dzZs3Ty+88IKaNGmixMREjR07trK/FSeVZ3zCwsL097//XVOmTNHkyZP13XffKTQ0VAMGDNDo0aMprD4yYMCAEl+PGjVKUsm/IaePxf+58ePHq06dOpo9e7a++eYbhYeHKy0tjcLqYybj8+677yovL0+ffPKJfve735W4f8uWLTke3IdMXz+oHKbjc9ddd6l69eqaPn26XnvtNYWEhCg+Pl4TJkw4rxNrMtMKAAAAAPBbfKQKAAAAAPBblFYAAAAAgN+itAIAAAAA/BalFQAAAADgtyitAAAAAAC/RWkFAAAAgACVk5OjMWPGKCYmRs2aNZPH41FWVla5HvODDz5Q37591apVKzVv3lzXX3+9Xn/9dePHo7QCAAAAQIDat2+fVqxYIY/Ho+uuu67cj/fmm2/q5ptvVuPGjfXyyy/rr3/9q+69914dP37c+DG5TisAAAAABKjCwkJVr35qLnPhwoV66KGH9MknnygsLOyCH+uHH37QlVdeqdtuu01TpkzxWUZmWgEAAAAgQJ0urGX59ttv9cgjjygyMlKNGzdWVFSU0tLSSuyzYsUKffvttxo+fLhvM/r00QAAAAAATjly5IhiY2P197//XY899pjS09MVGxurkSNH6qWXXireb/v27QoJCdHu3bt1/fXXq0GDBmrfvr2mTJmikydPGj9/kC++CQAAAACAm2bPnq3s7Gxt27ZNv/rVryRJPXr00OHDh/X000/rj3/8o4KCgvT111/rp59+0uDBgzVmzBh16tRJmzdv1jPPPKPDhw/rqaeeMnp+ZloBAAAAAOe0YcMGXX311QoLC1NBQUHxvxtvvFHff/+9MjMzJZ06Pvb48eMaO3asEhMTdcMNN+hPf/qTBgwYoJdfflmHDx82en5mWgEAAAAA53To0CHt27dPDRs2POvt33//vSTp0ksvlSRFR0eXuD06OlqvvPKKMjMz9Zvf/OaCn5/SCgAAAAA4p0svvVSNGjU65xmBw8PDJUkRERG/+Djne9KnM1FaAQAAAADndOONN2rOnDlq0aKFGjVqdM79fv/732vy5MnauHGj2rdvX7x9w4YNuvjiixUZGWn0/JRWAAAAAAhgK1eulCR9/PHHkqS3335bDRs2VIMGDdS1a1clJCRo+fLl6tmzpxISEhQeHq5jx45p79692rZtmxYvXixJateune666y6lpKSosLBQHTt21KZNm7Rw4UKNGTNGdevWNcpXzev1FvnkOwUAAAAAVDkej+es27t06aI1a9ZIkrxer55++mmtWbNGX331lerXr6/LLrtMt9xyixISEorvk5+fr6lTp2rx4sX65ptv1KpVKw0ePFgPPvigcT5KKwAAAADAb3HJGwAAAACA36K0AgAAAAD8FqUVAAAAAOC3KK0AAAAAAL9FaQUAAAAA+C1KKwAAAADAb1FaAQAAAAB+i9IKAAAAAPBblFYAAAAAgN/6/+5Y/zbQVBnXAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.hist(data_unif_sub2, bins=200);\n", "plot_quartiles(ax)" ] }, { "cell_type": "markdown", "id": "b55ef486", "metadata": {}, "source": [ "## 4. Subsample the original dataset\n", "\n", "### 4.1 Direct approach\n", "\n", "We now apply the same procedure to our original (non-uniform) dataset, using the same normalization factor we used for the uniform dataset" ] }, { "cell_type": "code", "execution_count": 34, "id": "9d0201e0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 3.64 s, sys: 57.9 s, total: 1min 1s\n", "Wall time: 1min 1s\n" ] } ], "source": [ "%%time\n", "data_sub = subsample_gauss(data, mean, sdev, unif_norm_factor)" ] }, { "cell_type": "code", "execution_count": 35, "id": "d2affc12", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.32652108" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Compute the sampling ratio we have achieved\n", "len(data_sub)/len(data)" ] }, { "cell_type": "markdown", "id": "c89e184a", "metadata": {}, "source": [ "We did not actually achieve the desired sampling ratio. Let's take a look at the resulting perplexity distibution, comparing it with the original" ] }, { "cell_type": "code", "execution_count": 36, "id": "7906df3c", "metadata": {}, "outputs": [], "source": [ "def plot_subsample(orig: np.ndarray, sub: np.ndarray, \n", " name: str = 'Gaussian subsampling'):\n", " fig, ax = plt.subplots()\n", " if orig is not None:\n", " ax.hist(orig, bins=1000, range=[0, qr[2]*3]);\n", " ax.hist(sub, bins=1000, range=[0, qr[2]*3], color=\"g\");\n", " if orig is not None:\n", " ax.legend(['original', 'subsampled'])\n", " plot_quartiles(ax)\n", " ax.set_title(\"Perplexity distribution \" + (\"before and after \" if orig is not None else \"for \") + name);" ] }, { "cell_type": "code", "execution_count": 37, "id": "435111d2", "metadata": {}, "outputs": [ { "data": { "image/png": "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XHTu3Dlt3rxZ0p0/OEl3+nbFihU1depUFS1aVM7Ozg4Xn0sqM78vn376qZYvX65OnTqpcuXKun79uhYtWqQSJUooODhY0dHReuihh/TII4/onnvukYuLi7Zu3aqoqCi1atUq1f16enoqODhYCxYskI+Pj8qUKaMPPvggV09JyExdvr6+CgkJ0dy5c1WmTBmVLVtWa9euTXOkNaP3hIyOlZSzvpdV2XkPy4mRI0dq06ZN6tGjh5577jndvn1bs2fPlre3d5YuigYUFoRdANlSv3597dmzRzNnztTo0aN1+fJleXl5qV69ehmew5pUSEiImjVrpilTpujMmTOqWbOm1q1bp+rVq6e5jouLiz7++GPNnTtX4eHhioyMlLu7u6pWrap27drJ1dVVhw8f1tSpUzV8+HD7yKCrq6uWLl2qli1bavz48ZozZ06q2+/Tp48OHTqkKVOmKDo6WhUrVtSPP/5ofzwgIEDVq1dXiRIlHG6xlJ4+ffro2rVrWrhwoT766CPVqlVL7777rgYNGpTuekFBQVq0aJHGjRunS5cuqWzZsmrVqpXGjx9vbzNs2DD99ttvev7553X16lWFhIRk6jY8qXnxxRd1/PhxPfPMM7p+/bqaN2+uWbNmOYySDB8+XNHR0VqyZIneeOMNtW3bVosWLbLfwzc7db311luqUqWKPvjgA4WFhcnX11fDhg1zuOJubqhWrZqef/55TZ06Vb///rsqVaqkpUuXOgSknPTtIkWKaM2aNZo6darmzZunixcvqlKlSpo2bZr9vrwZmTRpku655x69++67evfdd+Xk5KTy5curZcuWDhcQSi7xAkoTJkzQk08+KV9fXw0ePFiXLl1yuDJtViReHXvFihVasmSJGjVqpA8//FCNGzfOcN2XXnpJ0dHReuutt3Tr1i2FhIToo48+ytTvTOnSpTV79my98cYb6tSpk+Li4vTJJ5+oefPm2T4+GQkICNCBAwe0cOFCrV+/3n7f7nLlyqlx48YOV393dXXVypUr9dJLL2nw4MEqVaqUHn/8cVWsWFHPP/+8w3Yz8/ty991366677tLs2bP1999/y8PDQw0bNtSGDRtUvnx53bp1S4GBgVqxYoVOnjypIkWKqHr16lqyZEmqV7lP9O6772rEiBEaNWqUihUrpm7duunxxx9PcTG47CpWrFim6lq8eLGGDx+u0aNH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N87uoQBMraCcrytJbtOnG10CAAAALCJT05gff/xxBQYGqk6dOipRooR+//13vfXWWypatKj9/rlPPvmklixZol69emn8+PFycnLStGnTVL58efXr18++rY4dO+ree+/V008/rSlTpshms2nOnDlKSEjQCy+8YG8XGBio7t27a+zYsYqNjVXlypW1dOlSRUZGavHixfZ2ZcuW1bPPPqu5c+fKw8NDgYGB2rBhg/bt26fVq1fb27m4uGj8+PEaMWKE/Pz81LJlS+3bt08ffPCBZs2aJVdX1xwfTAAAAACAOWQq7AYHB2vDhg1asGCBYmJiVL58eTVr1kwvvvii/eJUxYsX1+bNmzVu3DgNHjxYCQkJatGihaZPn26fmixJRYoU0Zo1azRhwgSNGDFCt27dUnBwsD755BNVqFDBYb8LFy7U1KlT9eqrryo6OloBAQFav3696tev79Bu4sSJKl68uN555x2dO3dO1atX1/Lly9W+fXuHdv3795eTk5MWLFigN998UxUqVNDs2bM1YMCA7Bw7ALns1tixRpcAAACQwpAhQ7R69epUrz1kVdOnT9fMmTP1ww8/5PoFievWratKlSpp69atubrd5DIVdocNG6Zhw4Zl2K5ixYp6//33M2xXqlQpLVy4UAsXLky33V133aXXXntNr732WrrtihYtqlGjRmnUqFEZ7rtfv34OI80AMs+27HSeXqTKo1EjztsFAMAAtjdsRpfgIGpYlNElwAKyfc4uAOS262vWGF0CAAAALIKwC8A8rl41ugIAAABYBGEXQJbk5dWd3ZNcpA4AACC7bt68qenTpysoKEjlypVTpUqV1LRpU02cOFHSnbvG2Gw2TU/lThDTp0+XzWZTZGRkiscuXLigp59+WlWrVpWfn5+6dOmiw4cPp2i3evVq/etf/1KlSpXk5+enwMBADRw4UBcuXLC3+f777zVkyBA1atRI5cqVU4UKFfTAAw/ok08+SbG9IUOGyGaz6eLFixoyZIiqVaumChUqqFevXvr7778lScuXL9e9994rHx8fBQcHpzgfNulzXr9+vZo2bSofHx8FBARo+vTpio2NzdSxjY6O1ssvv6wGDRrI29tbd999t5566imHu/IkOnXqlPr27atKlSqpYsWKCg0NTXHL2LyUqXN2ARRMBem2Q5J09YsvjC4BAABYwMiRI/XBBx/o0Ucf1bPPPqvY2Fj9/vvv2rdvX46226NHD5UqVUpjxozRuXPntGTJEj344IPauXOnateuLUn68MMPNWTIEDVp0kTjxo3TXXfdpVOnTmnXrl06f/68vLy8JElbtmxRRESEunXrpooVK+rixYtavXq1nnjiCS1ZskSPPPJIqvv38/PTuHHjdPz4cS1atEi9e/dW586dtXz5cj3xxBNyc3PTokWL9OSTT+rQoUP2W7Em2r59u95++20NHDhQ3t7e2r59u2bOnKmTJ0/qrbfeSvf5R0dH64EHHtCpU6f0+OOPq1atWvrrr7+0dOlStW7dWp9//rkqVaokSYqKilLHjh11+vRp9e/fXzVr1tSBAwfUuXNn3bhxI0c/h8wi7AIwjWLjx+vmtGlGlwEAAAq4LVu2qG3btnrnnXdydbuJF+R1cnKSJHXu3FmtWrXSxIkT9dFHH9n3XaJECX3yySdydv5f3Bo/frzDtkaOHKmXX37ZYdnTTz+tFi1aKCwsLNWw26hRI4WFhTkse+utt3T27Fl99dVXKlmypCSpRYsWatasmcLDw1Ps46efftKePXvsd7gZNGiQevfurVWrVqlfv34KDg5O8/m/9tprOnHihHbt2qW6deval/fq1UshISGaPn263n77bUnSm2++qT///FMLFixQ7969JUkDBgzQmDFjcv3nkhamMQMwjXhfX6NLAAAAFlCyZEn93//9n44ePZqr233hhRfsQVeS6tevr1atWmnv3r26+t9rj5QsWVLXr1/Xjh07lJCQkOa2ihcvbv//9evXdfHiRd24cUMtWrTQL7/8osuXL6dYZ8iQIQ7fN2nSRJL06KOP2oOuJAUEBKhkyZL6/fffU2yjVatWDrdydXJy0gv/PZVsy5YtadabkJCgdevWqWnTpvLz89M///xj/1e8eHEFBQXp888/t7ffunWrvL299dhjjzlsJzN3+cktjOwCFlXQpjBL0u2hQ40uAQAAWMD06dM1ePBgNW3aVFWqVFHz5s3Vvn17dejQQUWKZH+875577kmxrGbNmtqzZ49OnjypWrVqacSIEfrqq6/0+OOPq3Tp0goJCVHbtm3VrVs3lShRwr7e+fPn9eqrr2rbtm06f/58iu1GR0c7BFhJKaYk22w2SbJPHU7K09NTFy9ezPRzkJTqebeJLly4oIsXL2rPnj26++67U22T9NieOHFCDRs2VNGiRR3a+Pr6ytPTM8395CbCLoAsy6v77Zbw99eVY8dyfbsAAKBw6dSpk44cOaKdO3fqwIED2rt3r95//301adJEmzZtchidTS4uLi5H+7777rv17bff6osvvtAXX3yhAwcO6Pnnn9f06dO1bds2Va1aVQkJCerWrZt+/fVXDR48WA0aNFDJkiVVtGhRrVy5UuvWrVN8fHyKbScPjhktT29kObvuv//+fB2dzQnCLgDTuJpk6gsAAEBOlCpVSqGhoQoNDVVCQoImT56sefPmadu2bWrdurUk6dKlSynWS29089dff01xTusvv/yiokWLqmLFivZlbm5uateundq1aydJ2rlzp3r27KmFCxcqLCxMP/30k3766Se99NJLGjdunMP2VqxYkd2nnCm//vprimW//PKLpJQjx0mVKVNGnp6eunLliu6///4M91OlShX9/vvviouLcwjjf/31l6Kjo7Ncd3Zwzi6AbMmLadJFfvst17cJAAAKl7i4OEVFRTksc3JyUr169STdCbglSpSQj4+PvvzyS4fRzxMnTqS4ZU9S8+bNc2h/+PBh7d27Vy1btpSHh4ck6Z9//kmxXmBgoH3f0v9GYpOPvB49ejTd82Zzw+eff+5wu6SEhATNmzdP0p0R8bQUKVJEPXv21Pfff69Nmzal2ibpdOyOHTvq3LlzWr16tUObN954I/vFZxEju4AFFcTzdSWp2IwZuta8udFlAACAAuzKlSvy9/dXhw4dVK9ePXl5eSkyMlLvvfeebDab2rdvL0kaOHCgXn31VT388MPq1KmTzp49q2XLlqlWrVr697//neq2T548qe7du6tDhw76+++/tWTJEt11112aMmWKvU23bt3k6empJk2aqEKFCoqOjtaqVavk5OSk0NBQSXfOka1Vq5befPNN3bhxQzVq1NBvv/2m5cuXq3bt2qneuze3BAQEqEuXLho4cKB8fHy0bds27d27V6Ghobr33nvTXXfChAn65ptv1LdvX3Xr1k1BQUFydXXVyZMntWvXLgUGBtqvxvzCCy9o3bp1euGFF/TDDz/I399f+/fv18GDB1WmTJk8e35JEXYBmMa1dP6SCgAAkBnu7u4aMmSIvvjiC+3du1fXrl2Tj4+POnTooOHDh6tcuXKS7lwV+PLly1qzZo3279+vmjVrav78+Tp8+HCaYfejjz7SuHHjNH36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YsGCBfr777/pExawadMmSbJfUOKzzz6Tl5eXypQpo2bNmkmSypQpo8cee0wLFiyQJJUtW1bPPvus5s6dKw8PDwUGBmrDhg3at2+fVq9ebcjzQO7JTp9Yv369tm3bprZt26p8+fI6f/683n33Xf3www9aunSpIc8DOTdy5Eht3LhRI0eOlLu7uw4ePGh/zM/PT+XLl+ezRCGT3T7BZwlre/zxxxUYGKg6deqoRIkS+v333/XWW2+paNGieu655yRJ+/fvV9euXbVgwQI99thjku6ct33vvffq6aef1pQpU2Sz2TRnzhwlJCTohRdeMPIpOSDsmkzx4sW1efNmjRs3ToMHD1ZCQoJatGih6dOnO0wHSEhIUFxcnOLj4x3WX7hwoaZOnapXX31V0dHRCggI0Pr161W/fv18fibILTnpE9WrV9eWLVu0ZcsWXb58WSVKlNB9992n+fPnq1GjRkY8HeSiJ5980uH7ESNGSJJCQkK0detWSXduJRAXF+fQbuLEiSpevLjeeecdnTt3TtWrV9fy5cvVvn37/CkceSY7fSLxCsyTJk3SpUuX5O7urgYNGuijjz5S69at86945Kpdu3ZJksLCwhQWFubw2OjRozV27Fg+SxQy2e0TfJawtuDgYG3YsEELFixQTEyMypcvr2bNmunFF1+0X5wqtX5RpEgRrVmzRhMmTNCIESN069YtBQcH65NPPlGFChWMejopOEVFRSVk3AwAAAAAgIKDc3YBAAAAAJZD2AUAAAAAWA5hFwAAAABgOYRdAAAAAIDlEHYBAAAAAJZD2AUAAAAA5IrTp09r1KhRatu2rcqVKyebzabIyMgcbfPgwYPq0aOHKlWqJD8/PzVt2lQfffRRhusRdgEAAAAAueL48ePauHGjbDabmjRpkuPt7dixQx07dpS3t7feffddrVq1Sn369NHNmzczXJf77AIAAAAAckV8fLyKFLkzprpixQo9//zz+uGHH1S5cuUsb+vKlStq0KCBHn74Yc2YMSPL6zOyCwAAAADIFYlBNyMXLlzQiy++qFq1asnb21vBwcFavny5Q5uNGzfqwoULeu6557JXS7bWAgAAAAAgGy5fvqz27dtr165dGjNmjNauXav27dtr+PDhWrRokb3dN998o1KlSuno0aNq2rSpypQpozp16mjGjBmKi4vLcD/OefkkAAAAAABI6p133tHJkyf11Vdf6e6775Yk3X///YqOjtbMmTP11FNPydnZWX/99Zdu3LihAQMGaNSoUapfv76++OILzZ49W9HR0Zo+fXq6+2FkFwAAAACQb3bv3q1GjRqpcuXKio2Ntf9r3bq1Ll68qGPHjkm6c/7vzZs39dJLL2no0KFq3ry5JkyYoCeffFLvvvuuoqOj090PI7sAAAAAgHxz/vx5HT9+XF5eXqk+fvHiRUlS6dKlJUmtWrVyeLxVq1Z67733dOzYMd13331p7oewCwAAAADIN6VLl1bZsmXTvMJy9erVJUn+/v7pbieji2ERdgEAAAAA+aZ169ZavHixKlSooLJly6bZrlOnTpo2bZr27NmjOnXq2Jfv3r1bxYoVU61atdLdD2EXAAAAAJBrNm3aJEk6fPiwJOmzzz6Tl5eXypQpo2bNmumZZ57Rhg0b1KFDBz3zzDOqXr26rl+/roiICH311VdavXq1JKl27drq1auXXnvtNcXHxyswMFB79+7VihUrNGrUKHl4eKRbh1NUVFRCnj5TAAAAAEChYbPZUl0eEhKirVu3SpKioqI0c+ZMbd26VWfPnpWnp6dq1Kihzp0765lnnrGvc/v2bc2aNUurV6/WuXPnVKlSJQ0YMEBDhgzJsA7CLgAAAADAcrj1EAAAAADAcgi7AAAAAADLIewCAAAAACyHsAsAAAAAsBzCLgAAAADAcgi7AAAAAADLIewCAAAAACyHsAsAAAAAsBzCLgAAAADAcv4fWsg8zZwwOuAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_subsample(data, data_sub)" ] }, { "cell_type": "markdown", "id": "683c0096", "metadata": {}, "source": [ "### 4.2 Adjust sampling ratio\n", "\n", "In order to achieve the desired sampling ratio, we now muct take into account that now the data distribution is not uniform, hence the previous simple computation no longer applies. \n", "\n", "Instead, we need to compute the sampling ratio from the full integral. In order to approximate it, we compute an histogram of the data and appliximate the integral through a sum over the histogram bins" ] }, { "cell_type": "code", "execution_count": 38, "id": "d7a1f784", "metadata": {}, "outputs": [], "source": [ "# Compute a histogram for the dataset\n", "hbins = 1000\n", "range_max = qr[2]*10\n", "hcounts, hedges = np.histogram(data, bins=hbins, range=[0, range_max])\n", "hcounts[-1] += len(data[data>range_max])\n", "\n", "hperp = (hedges[:-1] + hedges[1:])/2" ] }, { "cell_type": "code", "execution_count": 39, "id": "0cbd8b75", "metadata": {}, "outputs": [], "source": [ "# Now let's compute the gaussian weighting function over the histogram bins\n", "gauss_weights = norm.pdf(hperp, loc=mean, scale=sdev)" ] }, { "cell_type": "code", "execution_count": 40, "id": "66c43147", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.3265025569497173" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# And we estimate the sampling ratio by a sum\n", "samples = (hcounts*gauss_weights/unif_norm_factor).sum()\n", "\n", "samples/hcounts.sum()" ] }, { "cell_type": "markdown", "id": "e0b28370", "metadata": {}, "source": [ "This theoretical number is a good approximation to the one obtained from the actual sample. So, we use this procedure in the reverse, to compute the normalization factor we need to achieve the desired sampling ratio" ] }, { "cell_type": "code", "execution_count": 41, "id": "d3cf86c1", "metadata": {}, "outputs": [], "source": [ "adjusted_norm_factor = (hcounts*gauss_weights).sum()/hcounts.sum()/desired_sampling_ratio" ] }, { "cell_type": "code", "execution_count": 42, "id": "40684c79", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 3.35 s, sys: 38.4 s, total: 41.8 s\n", "Wall time: 42 s\n" ] } ], "source": [ "%%time\n", "data_sub_adjusted = subsample_gauss(data, mean, sdev, adjusted_norm_factor)" ] }, { "cell_type": "code", "execution_count": 43, "id": "85088557", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.19998344" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Obtained ratio\n", "len(data_sub_adjusted)/len(data)" ] }, { "cell_type": "markdown", "id": "3a56780e", "metadata": {}, "source": [ "... the ratio now is close to the desired factor. The resulting distribution is as follows:" ] }, { "cell_type": "code", "execution_count": 44, "id": "b2e956d2", "metadata": {}, "outputs": [ { "data": { "image/png": "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77yTYv29e/eqefPm8vHxUf369bVq1ao8P90HKKgY2QWQaZGRkSpatKiKFy+uw4cPq2PHjqpbt65ef/113XXXXXrnnXf00EMPaefOnapXr559vcuXL6t///4aNmyYJk+erLvuusv+2P79+3X48GFNnjxZrq6uWrBggR555BHt37/f4cN/UrGxserRo4eOHTum0aNHq3bt2jp48KDmzJmjS5cuafr06SpevLjefvtttW3bVtOnT1dYWJjOnTunwYMHq3379ho4cGCq2x4zZoz++ecf/fvf/9aaNWskSa6urvLx8VGnTp0UHh7ucI5tXFyc3nvvPfuH8rSsWrVK48ePV69evdS9e3cdP35cAwYM0NWrV9M95l9//bUGDRqkp59+WtOmTVN8fLx+/fVXRUdHS7pzzuigQYMUFxen1157TZJUokQJh20MGjRIPXr00KpVqzI853r+/PkKCAjQ4sWLdf78eU2bNk3du3fXN998k6VRrczUldSQIUO0ceNGjRgxQk2aNNG3336rV199VSdOnNDbb7/t0HbevHm67777tGjRIp0/f16TJk3SoEGDtG3btgzrOn78uMaOHatx48apTJkyeuedd9S/f3+VLl1aLVq0kKRM9e1XX31V69at07x58/Tuu+/K19dXfn5+io+PV2hoqH744QeNHz9etWvX1qeffqqJEyfqn3/+sf+hJ9HYsWPVpk0bLVmyRDdv3pQkhYWFadGiRfaf+ZkzZzR9+nT997//1c6dO1W0aNE0n9+JEyfUtWtXvfDCCypSpIgOHDig5557Tjdv3lT//v0d2q5du1bVq1fXzJkzFRMTo8mTJ6tXr146ePCgffRzxowZevXVV/XMM8/oX//6l/7zn//osccey/A4S9KlS5fk5uamKVOmyMvLS3/99ZcWLVqkBx54QAcPHlSxYsU0ZswY1atXT2PHjtXcuXMVGBioYsWK6dtvv9WoUaM0a9YsNWjQQJJUo0aNLB+f999/X5UrV9a0adNUvHhxlS1bNtVav/jiCxUtWlRt2rTJ1HNLPNYtWrTQoEGD5ObmpsOHD2vWrFn6559/FBYWluntSNLVq1fVvXt3NWzYUG+88YY8PDz0559/6rvvvrO3efrpp3Xy5ElNnTpV5cqV0/nz5/XFF1/o+vXraW735MmTqlOnjnr16iUPDw8dO3ZMs2fP1okTJ1KEqD/++EPjxo3TCy+8oNKlS2vRokXq27evDh48aJ/hk5rs1JWejN4TMnOsMtP3kurbt6/69OmjYcOG6e2339azzz6r48ePa//+/XrxxRcVGxurcePGacCAAdq9e3eW6s2KK1euaODAgRoyZIjGjBmj1atXa8SIEapWrZr99enYsWPq2bOnGjZsqOXLlysmJkZz5szR5cuX5eTklK1jDlgZYRdAmuLi4hQbG6urV69q48aN+vjjj9W+fXu5u7trypQpKl++vLZs2SJXV1dJUuvWrdWkSRPNnj3bYTTp6tWrWrJkiX1kL6nz589r586dKl++vCSpZcuWqlOnjubMmaOlS5emWteGDRv09ddfa9u2bQoJCbGvJ0mzZs3S8OHDVaZMGQUGBurFF1/U5MmTdf/992vhwoUqWrRouhefqlKlikqXLi1XV9cU08yeeuopde7cWV999ZWaNm0qSfr00091+vTpFEEiqfj4eM2aNUutW7fWG2+8YV/u5eWV7nqSdOjQIXl6emrmzJn2Zf/617/s//f391eJEiUUFxeX5rS4Ll26aOrUqenuJ5GHh4fWrFmjIkXuTPypVq2a2rdvrzVr1qhPnz6Z2kZm60p09OhRbdiwQWPHjtX48eMl3XmOzs7Omj59uoYPH66AgAB7+4oVKzoE4H/++UeTJ0/W2bNn0wwzic6dO6ddu3bZa2rTpo0aN26sGTNm2D9MZqZv+/v726cu161bV5UqVZIkffLJJ/r666+1ePFiPf744/bncv36dS1atEjPPPOMSpcuba+nQYMGWrhwof37yMhIvf766xo7dqzGjh1rX574c9ixY4d9JDQ1SUe34uPj1axZM/39999avnx5ir7m4uKitWvXOvwR48knn9T333+v++67T1FRUXrzzTfVt29fvfzyy/bnUrRo0UyFuerVq2vWrFn27+Pi4nTfffcpICBAu3btUufOnVWlShV7iK1Ro4b955I4SyLpsuwcn4SEBH300UcOf2BLzZkzZ+Tl5ZWiXXx8vH22iCQVLVrUHiiSHs+EhAQ1bdpUt2/f1sKFCzVlyhT771BmREREKCoqSi+99JJDX0/sQ5J08OBBTZ48WT179rQve+ihh9LdbteuXR1qbNy4sUqUKKHBgwdr7ty5uvvuu+2P//PPP9q+fbvuueceSVJgYKBq1KihjRs3OvSr5LJTV3oyek/IzLHK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zp3Tli1bJN35g5N0p29XqFBB06ZNU9GiReXs7Oxw8bmkMvP78sknn2jlypXq1KmTKlWqpOvXr2vJkiUqUaKEgoODFR0drYceekiPPPKI7r33Xrm4uGjbtm2KiopSq1atUt2vp6engoODtWjRIvn4+Kh06dJ67733cvWUhMzU5evrq5CQEM2fP1+lS5dWmTJltG7dujRHWjN6T8joWEk563tZlZ33sJwYNWqUNm/erB49eujZZ5/V7du3NWfOHHl7e2fpomhAYUHYBZAt9erV0549ezRr1iyNHTtWly9flpeXl+rWrZvhOaxJhYSEqFmzZpo6darOnDmjGjVqaP369apWrVqa67i4uOijjz7S/PnzFR4ersjISLm7u6tKlSpq166dXF1ddfjwYU2bNk0jRoywjwy6urpq+fLlatmypSZOnKh58+aluv0+ffro0KFDmjp1qqKjo1WhQgX9+OOP9scDAgJUrVo1lShRwuEWS+np06ePrl27psWLF+vDDz9UzZo19fbbb2vQoEHprhcUFKQlS5ZowoQJunTpksqUKaNWrVpp4sSJ9jbDhw/Xb7/9pueee05Xr15VSEhIpm7Dk5oXXnhBx48f19ChQ3X9+nU1b95cs2fPdhglGTFihKKjo7Vs2TK99tpratu2rZYsWWK/h2926nrjjTdUuXJlvffee5o7d658fX01fPhwhyvu5oaqVavqueee07Rp0/T777+rYsWKWr58uUNAyknfLlKkiNauXatp06ZpwYIFunjxoipWrKjp06fb78ubkSlTpujee+/V22+/rbfffltOTk4qV66cWrZs6XABoeQSL6A0adIkPfnkk/L19dXgwYN16dIlhyvTZkXi1bFXrVqlZcuWqWHDhvrggw/UuHHjDNcdM2aMoqOj9cYbb+jWrVsKCQnRhx9+mKnfmbvvvltz5szRa6+9pk6dOikuLk4ff/yxmjdvnu3jk5GAgAAdOHBAixcv1oYNG+z37S5btqwaN27scPV3V1dXrV69WmPGjNHgwYNVqlQpPf7446pQoYKee+45h+1m5vflnnvu0V133aU5c+bo77//loeHhxo0aKCNGzeqXLlyunXrlgIDA7Vq1SqdPHlSRYoUUbVq1bRs2bJUr3Kf6O2339bIkSM1evRoFStWTN26ddPjjz+e4mJw2VWsWLFM1bV06VKNGDFCY8eOVbFixdS7d2+NHj06xbGSMn5PyOhYSTnre1mVnfewnPD399e6des0efJk9evXT2XLltXw4cP12Wef6c8//8yTfQIFmVNUVFTOLpsHANlUp04dNWnSJMu3ZzBaRESEGjVqpAULFmTpdjwAAOswy3vY1atX1aBBA7Vr1y7dW+sBhREjuwCQSadPn9bx48c1Y8YM+fr6ZnhhKgAActvo0aN13333ydfXV3/99ZfeeustRUVFafDgwUaXBpgOYRcAMmnVqlWaPXu2fZpeTu7fCQBAdty6dUthYWH2K8k3aNBAmzZtst9LGMD/YxozAAAAAMByuGwbAAAAAMByCLsAAAAAAMsh7AIAAAAALIewCwAAAACwHMJuARYREWF0CTChrPQLT5st7wrJhuKdOhldguV42my8ViAF+gSSo08gOfoEkiuIfYKwC8A0rm3bZnQJAAAAsAjCLgDTuOv5540uAQAAABZB2AVgGrH16xtdAgAAACyCsAvANGL69jW6BAAAAFgEYReAaZQsX97oEgAAAGARhF0ApnH5v/81ugQAAABYhLPRBQBAIuf9+xXboYPRZQAAYEkJCQm6du2a4uLiMmxbrFgxRUdH50NVKCjyu08ULVpUxYsXl5OTU7a3QdgFYBquK1cSdgEAyAOxsbG6cuWKPDw85OLikmF7Nzc3FStWLB8qQ0GR330iJiZGUVFRKlGihJydsxdbmcYMwDSur11rdAkAAFjStWvX5OnpmamgC5iBi4uLPD09de3atWxvg7ALwDTuGjDA6BIAALCsIkX46I+CJad9lh4PwDRiH3jA6BIAAABgEYRdAKYR88gjRpcAAAAAiyDsAjANT5vN6BIAAABgEYRdAKYRHRVldAkAAAB2nTp1Up06dbK9/pdffimbzabVq1fnYlVpGzJkiGwMHthx6yEApuGyfj1TmQEAMIBtxWmjS3AQ1a+c0SXAAgi7AEzD+dNPCbsAAMA0Nm7cqISEhGyvHxISor/++otbPhmEsAvANG68/bbRJQAAgEIuLi5Ot27dkru7u1xdXXO0rSJFiqhYsWK5VBmyinN2AZiGe2io0SUAAAAL+OeffzRq1CjVrl1bZcqUUe3atTVq1ChdvHjRod3q1atls9m0d+9ezZ49W/Xq1ZOPj482btwoKe1zdjdv3qyQkBD5+PgoICBAM2fO1N69e1Ocn5vaObtJl7333ntq3LixvL29FRAQoAULFqTY1549e9SvXz8FBgbK19dXFStWVLdu3bR///7cOlyWxcguANO43bev0SUAAIACLjo6Wu3atdPx48fVu3dvBQYG6siRI1q+fLn27dun3bt3q0SJEg7rTJo0SbGxsXryySdVokQJVa9ePc3tf/TRR3rqqadUpUoVjR07Vs7OzlqzZo0++eSTLNW5YsUKnTt3Tk888YQ8PT21bt06vfjii/Lz89MjSU7rev/993Xp0iU9+uijKleunM6cOaN3331XXbt21ccff6ymTZtm7QAVIoRdALKtOG2KC0HENmtmdAkAAKCAe/311/X7779r7ty5GjBggH15nTp1NHr0aC1YsECTJk1yWOfmzZvat2+f3N3d0912bGysJk6cKC8vL+3Zs8d+5eP+/fsrJCQkS3WeOnVK3377rTw9PSVJvXv3Vp06dbR06VKHsLtgwQIVL17cYd3+/furcePGmj9/PmE3HUxjBmAaJWvWNLoEAABQwG3dulVeXl7qm2zGWL9+/eTl5aVt27alWKd///4ZBl1JOnz4sM6ePatevXo53OLHw8ND/fv3z1Kdjz/+uD3oSpK7u7uCgoL0+++/O7RLGnSvXr2qixcvqmjRogoKCtKhQ4eytM/ChpFdoJAz060GLp86ZXQJAACggIuMjFT9+vXl7OwYdZydnVWtWjX98MMPKdapVq1apredVvvMbiNRpUqVUiy7++67U5xX/Mcff2jatGnavXu3oqOjHR5zcnLK0j4LG8IuUEjZVpxWQrLvJWPva+eycqViOG8XAADks7vuuivf91m0aNEM21y9elUdO3bUtWvXNGTIENWqVUslSpRQkSJFNG/ePO3bty8fKi24CLsATMP5P/8h7AIAgBypXLmyIiIiFBsb6zC6Gxsbq99++02VK1fO9rYrVqwoSfrtt99SPJbaspz64osvdPbsWS1atEi9e/d2eOzll1/O9f1ZDefsAoVQelOXjZzWfCOVy+0DAABkRadOnXThwgWtWrXKYXl4eLguXLigTp06ZXvb9evXl6+vr95//31FRUXZl1+9elXvvPNOtreblsTR34SEBIfle/bs4XzdTGBkFyhkMhNmjbo6c/FOnXQtlYtGAAAAZNZzzz2nTZs2adSoUfrhhx9Ut25dHTlyRO+++66qV6+u559/PtvbdnZ21rRp0zRw4ED961//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zzzzjGJjY/X7779r3759Odpujx49VKpUKY0bN07nzp3TsmXL9OCDD2rnzp2qVauWJOmDDz7QkCFD1KRJE02YMEF33XWXTp06pV27dun8+fPy8vKSJG3dulURERHq1q2bKlSooIsXL2rNmjV64okntGzZMj3yyCOp7t/Pz08TJkzQ8ePHtWTJEvXu3VudO3fWypUr9cQTT8jNzU1LlizRk08+qUOHDtlvxZpox44devPNNzVw4EB5e3trx44dmjVrlk6ePKk33ngj3ecfHR2tBx54QKdOndLjjz+umjVr6q+//tLy5cvVunVrff7556pYsaIkKSoqSh07dtTp06fVv39/1ahRQwcOHFDnzp1148aNHP0cMouwC8A0ik2cqJvTpxtdBgAAKOC2bt2qtm3b6q233srV7SZekNfJyUmS1LlzZ7Vq1UqTJ0/Whx9+aN93iRIl9PHHH8vZ+f/j1sSJEx22NWrUKL344osOy55++mm1aNFCc+fOTTXsNmzYUHPnznVY9sYbb+js2bP66quvVLJkSUlSixYt1KxZM4WHh6fYx08//aQ9e/bY73AzaNAg9e7dW++//7769eun4ODgNJ//K6+8ohMnTmjXrl2qU6eOfXmvXr0UEhKiGTNm6M0335Qkvf766/rzzz+1aNEi9e7dW5I0YMAAjRs3Ltd/LmlhGjMA04j39TW6BAAAYAElS5bUf//7Xx09ejRXt/v888/bg64k1atXT61atdLevXt19X/XHilZsqSuX7+uTz/9VAkJCWluq3jx4vb/X79+XRcvXtSNGzfUokUL/fLLL7p8+XKKdYYMGeLwfZMmTSRJjz76qD3oSlJAQIBKliyp33//PcU2WrVq5XArVycnJz3/v1PJtm7dmma9CQkJWr9+vZo2bSo/Pz/9888/9q/ixYsrKChIn3/+ub39tm3b5O3trccee8xhO5m5y09uYWQXsKiCNoVZkm4PG2Z0CQAAwAJmzJihwYMHq2nTpqpcubKaN2+u9u3bq0OHDipSJPvjfffee2+KZTVq1NCePXt08uRJ1axZUyNHjtRXX32lxx9/XHfffbdCQkLUtm1bdevWTSVKlLCvd/78eb388svavn27zp8/n2K70dHRDgFWUoopyTabTZLsU4eT8vT01MWLFzP9HCSlet5togsXLujixYvas2eP7rnnnlTbJD22J06cUIMGDVS0aFGHNr6+vvL09ExzP7mJsAsgy/Lqfrsl/P115dixXN8uAAAoXDp16qQjR45o586dOnDggPbu3at3331XTZo00ebNmx1GZ5OLi4vL0b7vueceffvtt/riiy/0xRdf6MCBA3ruuec0Y8YMbd++XVWqVFFCQoK6deumX3/9VYMHD1b9+vVVsmRJFS1aVKtXr9b69esVHx+fYtvJg2NGy9MbWc6u+++/P19HZ3OCsAvANK4mmfoCAACQE6VKlVJoaKhCQ0OVkJCgsLAwLViwQNu3b1fr1q0lSZcuXUqxXnqjm7/++muKc1p/+eUXFS1aVBUqVLAvc3NzU7t27dSuXTtJ0s6dO9WzZ08tXrxYc+fO1U8//aSffvpJY8aM0YQJExy2t2rVquw+5Uz59ddfUyz75ZdfJKUcOU6qdOnS8vT01JUrV3T//fdnuJ/KlSvr999/V1xcnEMY/+uvvxQdHZ3lurODc3YBZEteTJMu8ttvub5NAABQuMTFxSkqKsphmZOTk+rWrSvpTsAtUaKEfHx89OWXXzqMfp44cSLFLXuSWrBggUP7w4cPa+/evWrZsqU8PDwkSf/880+K9QIDA+37lv5/JDb5yOvRo0fTPW82N3z++ecOt0tKSEjQggULJN0ZEU9LkSJF1LNnT33//ffavHlzqm2STsfu2LGjzp07pzVr1ji0ee2117JffBYxsgtYUEE8X1eSis2cqWvNmxtdBgAAKMCuXLkif39/dejQQXXr1pWXl5ciIyP1zjvvyGazqX379pKkgQMH6uWXX9bDDz+sTp066ezZs1qxYoVq1qypf//736lu++TJk+revbs6dOigv//+W8uWLdNdd92lqVOn2tt069ZNnp6eatKkicqXL6/o6Gi9//77cnJyUmhoqKQ758jWrFlTr7/+um7cuKHq1avrt99+08qVK1WrVq1U792bWwICAtSlSxcNHDhQPj4+2r59u/bu3avQ0FA1atQo3XUnTZqkb775Rn379lW3bt0UFBQkV1dXnTx5Urt27VJgYKD9aszPP/+81q9fr+eff14//PCD/P39tX//fh08eFClS5fOs+eXFGEXgGlcS+cvqQAAAJnh7u6uIUOG6IsvvtDevXt17do1+fj4qEOHDhoxYoTKli0r6c5VgS9fvqy1a9dq//79qlGjhhYuXKjDhw+nGXY//PBDTZgwQTNmzNDNmzcVFBSkadOmKSAgwN7mqaee0saNG7Vy5UpdunRJd999t+rWratZs2apRYsWku6M7K5du1aTJ0/WmjVrdP36ddWsWVNvvPGGfvrppzwNux06dFD16tU1b948/fbbbypTpoxGjx6tMWPGZLiup6enPv30Uy1atEibNm3S9u3b5ezsLD8/PzVu3Fh9+vSxt7XZbNqxY4cmTpyoDz74QJLUtGlTffzxx+rSpUuePb+knKKionL/rGXki4iICFWvXt3oMmAyERERCt7vnqm2CS/UltP8n7O9r9y+SNVdzz+vG/+bRoPc4Wmz6dDBg7xWwAHvH0iOPmF90dHRWboC7s2bN1WsWLE8rAj5LTIyUoGBgRo7dqzGjx+f5fWN6hNZ7btJcc4uANOIrV/f6BIAAABgEYRdAKYR07ev0SUAAADAIgi7gMVkdgqzGZUsX97oEgAAAGARXKAKQLbZVpzO1fN2L//3v7m2LQAAAPy/SpUqpbglk9UxsgvANJz37ze6BAAAAFgEYReAabiuXGl0CQAAALAIwi6AHLGtOJ1r27q+dm2ubQsAAACFG2EXgGncNWCA0SUAAADAIgi7AEwj9oEHjC4BAADLio+PN7oEIEty2mcJuwBMI+aRR4wuAQAASypevLiio6MVExNjdClApsTExCg6OlrFixfP9ja49RAA0/C02RRdyC6JDwBAfnB2dpbNZtO1a9d0/fr1DNtfvnxZJUuWzIfKUFDkd58oWrSobDabnJycsr0Nwi5gIbl5sais7jc37rdL0AUAIO84OTnJw8MjU23PnTunChUq5HFFKEgKYp9gGjMA03BZv97oEgAAAGARhF0ApuH86adGlwAAAACLIOwCyBW5MYX6xttv50IlAAAAAGEXgIm4h4YaXQIAAAAsgrALWIRRF6fKTbf79jW6BAAAAFgEYReAacQ2a2Z0CQAAALAIwi4A0yhZs6bRJQAAAMAiCLsATOPyqVNGlwAAAACLIOwCMA2XlSuNLgEAAAAWQdgFYBrO//mP0SUAAADAIgi7AHJddq8MfWPBglyuBAAAAIUVYRewACvcdkiSinfqZHQJAAAAsAjCLoBck9PQfXPcuFyqBAAAAIUdYReAacRXq2Z0CQAAALAIwi4A0/Bo1croEgAAAGARhF0AuSonU5mvHDuWi5UAAACgMCPsAgWcVS5OJUmuCxcaXQIAAAAsgrALwDSK/PWX0SUAAADAIgi7AEzj5vTpRpcAAAAAiyDsAjANj5YtjS4BAAAAFkHYBWAa1xcsMLoEAAAAWARhF0CeyNaFszw8cr8QAAAAFEqEXQCm4R4aanQJAAAAsAjCLgDTuPr990aXAAAAAIsg7AIwDbcZM4wuAQAAABZB2AUAAAAAWA5hF4Bp3Bo/3ugSAAAAYBGEXQCm4dGwodElAAAAwCIIu0ABlq3b+5jY9bVrjS4BAAAAFkHYBWAeV68aXQEAAAAsgrALIM9kdeTZ/fnn86gSAAAAFDaEXQCmcfWLL4wuAQAAABZB2AVgGsUmTjS6BAAAAFhEhmF38+bNeuKJJxQQECBfX18FBQXppZde0pUrV+xtIiMjZbPZUv2Kiopy2N7Nmzc1efJk1ahRQ76+vmrbtq0OHDiQYr/x8fGaN2+e6tSpIx8fH4WEhGjz5s2p1hgeHq7g4GB5e3srKChI77zzTqrttm7dqubNm8vHx0cBAQGaM2eO4uLiMjoEAPJJvK+v0SUAAADAIjIMuwsXLlTRokU1ZcoUbdiwQf3799fy5cvVrVs3xcfHO7QdMWKEdu3a5fBVokQJhzbDhg1TeHi4JkyYoLVr18rHx0c9evTQkSNHHNpNnz5dM2fO1KBBg7R+/XoFBwerb9++2rlzp0O78PBwDR8+XF26dNGGDRv00EMPaeTIkVq+fLlDu927d6tPnz5q0KCB1q9fr8GDB2vu3LmaOnVqlg4YgKzJynm7t4cNy8NKAAAAUJg4Z9Tggw8+kJeXl/37Zs2aqVSpUhoyZIi+/PJLtWzZ0v5Y5cqVFRwcnOa2fvzxR61fv16LFi1S7969JUkhISFq3LixXnnlFX3wwQeSpPPnz2vhwoUaPny4hv3vw2+LFi10/PhxhYWFqV27dpKk2NhYTZs2TaGhoZo8ebK93dmzZzV9+nT16dNHLi4ukqSwsDA1btxYCxYssLe7du2a5s6dq6FDh8rHxyfzRw0wAavddkiSSvj768qxY0aXAQAAAAvIcGQ3adBN1KBBA0nS2bNns7SzHTt2yMXFRd27d7cvc3Z2Vvfu3bVnzx7dunVL0p1R2Nu3bys0NNRh/Z49e+ro0aM6ceKEJOm7777ThQsXUrQLDQ3VxYsX9fXXX0uSTp06pR9//DHVdjExMdq1a1eWngeAvHH188+NLgEAAAAWka0LVCWeY1ujRg2H5S+99JJKly6tihUr6tFHH9XPP//s8PixY8dUqVIlubu7OyyvWbOmbt++rePHj9vbubm5qWrVqinaSdIvv/xib5d0eVbbVa5cWe7u7vZ2AIxV5LffjC4BAAAAFpHhNObkzpw5o1deeUX333+/6tevL0lyc3NTv3791KpVK3l5eSkiIkKvvvqqHnjgAe3evdseii9duiSbzZZim6VKlbI/nvivp6ennJycMmwnKcU2M9sucVni4wCMVWzmTF1r3tzoMgAAAGABWQq7V69eVa9eveTs7KzFixfbl/v6+mr+/Pn275s2barWrVurSZMmevXVV7V06dLcq9ggERERRpeQKrPWhfzgnnETk7CtOK2Dza5n3PC11yT6dK4K+t+/vFYgOfoEkqNPIDn6BJIzY5+oXr16mo9lOuzeuHFDjz76qE6cOKFt27apXLly6bYvX768GjdurH//+9/2ZTabTSdPnkzRNnFkNXFE1mazKTo6WgkJCQ6ju6m1k6SoqCj5JrllSXrtkouKirK3S096B9EoERERpqwL+WR/wbpAVWb66l3PP68b/7uIHHIXrxVIivcPJEefQHL0CSRXEPtEps7ZjYmJ0ZNPPqnDhw9r/fr1ql27dqZ3kDSs+vv7KzIyUtevO47wHDt2TK6urvZzdP39/XXr1i398ccfKdpJ/3+usL+/v8PyrLZLrCX5uccAjBH7v1MjAAAAgJzKMOzGx8dr4MCB2rdvn1avXp3urYWSOnnypL755hv7lZslqX379oqJidGmTZvsy2JjY7Vx40a1atVKbm5ukqQ2bdrIxcVF69atc9jmunXrVKtWLVWuXFmS1KhRI5UuXTrVdqVKlVLjxo0lSRUqVFBAQECq7VxcXNS2bdtMPScA2ZeZWyXF9O2b94UAAACgUMhwGvOoUaO0adMmjRo1Su7u7jp48KD9MT8/P5UrV04TJ05UfHy8PXz+9ttvmjdvnpycnDRq1Ch7+8DAQHXv3l3jx49XbGysKlWqpOXLlysyMtLhvN4yZcromWee0fz58+Xh4aHAwEBt3LhR+/bt05o1a+ztXFxcNHHiRI0cOVJ+fn5q2bKl9u3bp/fee0+zZ8+Wq6urve2UKVMUGhqq4cOHq0ePHjpy5Ijmzp2rwYMHc49dwCRKli+vy6dOGV0GAAAALCDDsJt4D9q5c+dq7ty5Do+NHTtW48ePl7+/v9555x29//77unbtmu6++261aNFCY8eOTTGve/HixZo2bZpefvllRUdHKyAgQBs2bFC9evUc2k2ePFnFixfXW2+9pXPnzqlatWpauXKl2rdv79Cuf//+cnJy0qJFi/T666+rfPnymjNnjgYMGODQrl27dgoPD9esWbP0/vvvy9vbWyNGjHAI40BBkZlR0oLo8n//a3QJAAAAsAinqKioBKOLQPYUxJPEkTtyK+wmvFBbTvN/zrhhLonql/6F7Zx37FBshw75VE3h4Gmz6dDBg7xWwAHvH0iOPoHk6BNIriD2iUxdoAoA8oPrypVGlwAAAACLIOwCMI3ra9caXQIAAAAsgrALwDTuSnauPQAAAJBdhF0AphH7wANGlwAAAACLIOwCMI2YRx4xugQAAABYBGEXKGAK8m2HMqrd02bLn0IAAABgeYRdAKYRHRVldAkAAACwCMIuANNwWb/e6BIAAABgEYRdAKbh/OmnRpcAAAAAiyDsAjCNG2+/bXQJAAAAsAjCLgDTcA8NNboEAAAAWARhF0C+Su+KzLf79s2/QgAAAGBphF0AphHbrJnRJQAAAMAiCLsATKNkzZpGlwAAAACLIOwCBUh6U4ALkrSex+VTp/K5EgAAAFgVYReAabisXGl0CQAAALAIwi4A03D+z3+MLgEAAAAWQdgFYBo3FiwwugQAAABYBGEXgGkU79TJ6BIAAABgEYRdAKZxc9w4o0sAAACARRB2AZhGfLVqRpcAAAAAiyDsAjBEarcf8mjVyoBKAAAAYEWEXQCmceXYMaNLAAAAgEUQdgGYhuvChUaXAAAAAIsg7AIwjSJ//WV0CQAAALAIwi4A07g5fbrRJQAAAMAiCLtAAZHaBZ2sxqNlS6NLAAAAgEUQdgEYJnmAv75ggUGVAAAAwGoIuwDMw8PD6AoAAABgEYRdAKbhHhpqdAkAAACwCMIuANO4+v33RpcAAAAAiyDsAjBU0vN23WbMMLASAAAAWAlhFwAAAABgOYRdAKZxa/x4o0sAAACARRB2gQLA6vfYTXx+Hg0bGlwJAAAArIKwC8A0rq9da3QJAAAAsAjCLgDzuHrV6AoAAABgEYRdAKbh/vzzRpcAAAAAiyDsAjCNq198YXQJAAAAsAjCLgDTKDZxotElAAAAwCIIuwBMwbbitOJ9fY0uAwAAABZB2AVgGreHDTO6BAAAAFgEYRcwOavfYzepEv7+RpcAAAAAiyDsAjCNq59/bnQJAAAAsAjCLgDTKPLbb0aXAAAAAIsg7AIwjWIzZxpdAgAAACyCsAvANK5t22Z0CQAAALAIwi4A07jr+eeNLgEAAAAWQdgFYBrPXq9sdAkAAACwCMIuANNY1rSn0SUAAADAIgi7AEzj8rhgo0sAAACARRB2AZiGX9heo0sAAACARRB2AZjG/b99J9uK00aXAQAAAAsg7AIwjUFfrze6BAAAAFgEYReAaXQZ+IbRJQAAAMAiCLsATGP1u6ONLgEAAAAWQdgFYBpba7WUJM7bBQAAQI4RdgETK2yhb03DB40uAQAAABZB2AVgGgkv1Da6BAAAAFhEhmF38+bNeuKJJxQQECBfX18FBQXppZde0pUrVxzaRUVFadiwYapatar8/PzUtWtX/fzzzym2d/PmTU2ePFk1atSQr6+v2rZtqwMHDqRoFx8fr3nz5qlOnTry8fFRSEiINm/enGqN4eHhCg4Olre3t4KCgvTOO++k2m7r1q1q3ry5fHx8FBAQoDlz5iguLi6jQwAgnzjNT/maAQAAAGRHhmF34cKFKlq0qKZMmaINGzaof//+Wr58ubp166b4+HhJUkJCgh599FHt3r1bs2fP1qpVqxQTE6POnTvr9GnHaZjDhg1TeHi4JkyYoLVr18rHx0c9evTQkSNHHNpNnz5dM2fO1KBBg7R+/XoFBwerb9++2rlzp0O78PBwDR8+XF26dNGGDRv00EMPaeTIkVq+fLlDu927d6tPnz5q0KCB1q9fr8GDB2vu3LmaOnVqtg4cgNz32PdbjS4BAAAAFuEUFRWVkF6DCxcuyMvLy2HZmjVrNGTIEG3evFktW7bUtm3b9Pjjj2vLli1q0aKFJCk6OlqBgYHq2bOnZs+eLUn68ccf1bx5cy1atEi9e/eWJMXGxqpx48aqVq2aPvjgA0nS+fPnVbt2bQ0fPlwTJkyw77dLly66cOGCvvrqK/u6/v7+atOmjd566y17u2eeeUY7duzQL7/8IhcXF0lS8+bNVaJECW3fvt3ebtasWZo7d65++ukn+fj4ZO8IGigiIkLVq1c3ugzkobw+ZzfhhdqmGk1d/e5oPf7EHPv3Uf3KGViNNXjabDp08CCvFXDA+weSo08gOfoEkiuIfSLDkd3kQVeSGjRoIEk6e/asJGnHjh0qW7asPehKkqenp9q3b+8QLnfs2CEXFxd1797dvszZ2Vndu3fXnj17dOvWLUl3RmFv376t0NBQh/327NlTR48e1YkTJyRJ3333nS5cuJCiXWhoqC5evKivv/5aknTq1Cn9+OOPqbaLiYnRrl27MjoMAPJB0qALAAAA5ES2LlCVeI5tjRo1JEnHjh1TzZo1U7SrWbOmTp06patXr9rbVapUSe7u7ina3b59W8ePH7e3c3NzU9WqVVO0k6RffvnF3i7p8qy2q1y5stzd3e3tABhry7KhRpcAAAAAi3DO6gpnzpzRK6+8ovvvv1/169eXJF26dEkVK1ZM0bZUqVKS7ly8ysPDQ5cuXZLNZkuz3aVLl+z/enp6ysnJKcN2klJsM7PtEpclPp6eiIiIDNsYwax1Ibe4Z9zEQpY2ecThe/p3zgX971+OJZKjTyA5+gSSo08gOTP2ifSmVmcp7F69elW9evWSs7OzFi9enOPCChIzzk8viPPmkUX7C9d9dvdWa+TwPf0793AskRTvH0iOPoHk6BNIriD2iUxPY75x44YeffRRnThxQh9++KHKlfv/C8fYbDZFRUWlWCf5iGpG7RJHZG02m6Kjo5WQkJBhO0kptpnZdonLEtsBZpLXF6cyozNh9xtdAgAAACwiU2E3JiZGTz75pA4fPqz169erdu3aDo/7+/vbz4tN6tixYypfvrw8PDzs7SIjI3X9+vUU7VxdXe3n6Pr7++vWrVv6448/UrST/v9cYX9/f4flWW2XWEtiOwDGKjnzoMP3hTHwAwAAIHdkGHbj4+M1cOBA7du3T6tXr1ZwcHCKNh06dNCZM2e0f/9++7LLly/rk08+UYcOHezL2rdvr5iYGG3atMm+LDY2Vhs3blSrVq3k5uYmSWrTpo1cXFy0bt06h/2sW7dOtWrVUuXKlSVJjRo1UunSpVNtV6pUKTVu3FiSVKFCBQUEBKTazsXFRW3bts3oMADIBwO/WpdxIwAAACATMjxnd9SoUdq0aZNGjRold3d3HTz4/yMvfn5+KleunDp27KhGjRrp6aef1tSpU2Wz2TRv3jwlJCTo+eeft7cPDAxU9+7dNX78eMXGxqpSpUpavny5IiMjtXTpUnu7MmXK6JlnntH8+fPl4eGhwMBAbdy4Ufv27dOaNWvs7VxcXDRx4kSNHDlSfn5+atmypfbt26f33ntPs2fPlqurq73tlClTFBoaquHDh6tHjx46cuSI5s6dq8GDBxfIe+wCVhR08mctS7bMtuI099sFAABAljlFRUUlpNegTp06OnnyZKqPjR07VuPHj5d05zzZSZMmadu2bbp165aCg4M1ffp01alTx2GdGzduaNq0adqwYYOio6MVEBCgsLAwNW/e3KFdXFyc5s2bp/DwcJ07d07VqlXT2LFj1bVr1xR1rFixQosWLdLJkydVvnx5DR06VAMGDEjRbsuWLZo1a5YiIiLk7e2tJ554QqNGjVLRokXTP0omVRBPEkfm5ccU3oQXastp/s95vp+cIuxmn6fNpkMHD/JaAQe8fyA5+gSSo08guYLYJzIMuzCvgtjhkHmFMex+vqivWj27MsVywm72EXaRGt4/kBx9AsnRJ5BcQewTmb4aMwDktbD2Q40uAQAAABZB2AVgGr+WqWx0CQAAALAIwi4A0zg0r2eqy7kFEQAAALKKsAuYUGENd+Ve2mt0CQAAALAIwi4A0xjx+UqjSwAAAIBFEHYBmIbf5XNGlwAAAACLIOwCMI1RXcek+VhhndoNAACA7CHsAjCNQ68+YnQJAAAAsAjCLgDTGNQzzOgSAAAAYBGEXQCmccWtuNElAAAAwCIIuwBMY+vbQ40uAQAAABZB2AVMpjBfiKnGhO1GlwAAAACLIOwCMI0XP1lsdAkAAACwCMIuAAAAAMByCLsATOOl9s8YXQIAAAAsgrALwDR+eaVjuo8X5vOZAQAAkDWEXQCm8eCAN4wuAQAAABZB2AVgGiVuXcuwDaO7AAAAyAzCLgDTWLouzOgSAAAAYBGEXQCmETRyvdElAAAAwCIIuwBMY+7m2UaXAAAAAIsg7AIwjTMlvTPVjvN2AQAAkBHCLgDTmNeqr9ElAAAAwCIIuwBM4/SL9xtdAgAAACyCsAvANIJGrMt0W6YyAwAAID2EXQCmce/5E0aXAAAAAIsg7AIwjbBP3jC6BAAAAFgEYReAabR6dqXRJQAAAMAiCLsATGPJ2heNLgEAAAAWQdgFTKSwX3TpUIXaRpcAAAAAiyDsAjCNZU17Gl0CAAAALIKwC8A0Lo8LzlL7wj4SDgAAgLQRdgGYhl/YXqNLAAAAgEUQdgGYxv2/fWd0CQAAALAIwi4A0xj09XqjSwAAAIBFEHYBk+D8U6nLwDeMLgEAAAAWQdgFYBqr3x2d5XX4IwEAAABSQ9gFYBpba7U0ugQAAABYBGEXgGmsafhgttZjdBcAAADJEXYBmEbCC7WNLgEAAAAWQdgFYBpO8382ugQAAABYBGEXgGk89v3WbK/LVGYAAAAkRdgFYBoPHv3C6BIAAABgEYRdAKbx+BNzjC4BAAAAFkHYBWAaW5YNNboEAAAAWARhF4BpLG3yiNElAAAAwCIIu4AJcHGlO/ZWa2R0CQAAALAIwi4A0zgTdn+O1uePBgAAAEhE2AVgGiVnHjS6BAAAAFgEYReAaQz8ap3RJQAAAMAiCLsATCPo5M853gZTmQEAACARdgGYyNOhLxldAgAAACyCsAvAND5f1NfoEgAAAGARhF3AYEy7/X9h7YcaXQIAAAAsgrALwDR+LVM5V7bDHxAAAABA2AVgGofm9TS6BAAAAFgEYReAaZR7aa/RJQAAAMAiCLsATGPE5ytzbVtMZQYAACjcMhV2T58+rdGjR6tt27YqW7asbDabIiMjU7Sz2Wypfh05csShXXx8vObNm6c6derIx8dHISEh2rx5c6r7Dg8PV3BwsLy9vRUUFKR33nkn1XZbt25V8+bN5ePjo4CAAM2ZM0dxcXEp2n399ddq166dfH19de+992rChAm6ceNGZg4DgDzmd/mc0SUAAADAIjIVdo8fP65NmzbJZrOpSZMm6bbt1auXdu3a5fBVrVo1hzbTp0/XzJkzNWjQIK1fv17BwcHq27evdu7c6dAuPDxcw4cPV5cuXbRhwwY99NBDGjlypJYvX+7Qbvfu3erTp48aNGig9evXa/DgwZo7d66mTp3q0O6nn35St27d5OXlpbVr12rSpElavXq1hg7lCrCAGYzqOsboEgAAAGARzplpFBISooiICEnSqlWrtGfPnjTb+vn5KTg4OM3Hz58/r4ULF2r48OEaNmyYJKlFixY6fvy4wsLC1K5dO0lSbGyspk2bptDQUE2ePNne7uzZs5o+fbr69OkjFxcXSVJYWJgaN26sBQsW2Ntdu3ZNc+fO1dChQ+Xj4yNJmjFjhvz8/BQeHm5f18XFRUOGDNHzzz+vevXqZeZwAMgjh159REEj1xtdBgAAACwgUyO7RYrk3qm9u3fv1u3btxUaGuqwvGfPnjp69KhOnDghSfruu+904cKFFO1CQ0N18eJFff3115KkU6dO6ccff0y1XUxMjHbt2iVJiomJ0e7du9WtWzd70JWkbt26ydXVVdu3b8+15wggewb1DDO6BAAAAFhErl+gavny5fL29lbZsmXVuXNnffXVVw6PHzt2TG5ubqpatarD8po1a0qSfvnlF3u7pMuz2q5y5cpyd3e3t/vjjz908+bNFO2KFSumKlWq2NsBMM4Vt+JGlwAAAACLyNWw27NnT7366qvatGmTXnvtNV28eFFdunTRl19+aW9z6dIleXp6ysnJyWHdUqVK2R9P+q/NZstWu8RlmWlXqlQp++MAjLP17dw9f54rMgMAABRemTpnN7OWLl3q8H3Hjh3VpEkTTZ8+XZ988klu7irfJZ6zbDZmrQtZ4W50AaZRY0Lun05Q2H9Hgv73b2E/DkiJPoHk6BNIjj6B5MzYJ6pXr57mY7kadpMrUaKEHnjgAb377rv2ZTabTdHR0UpISHAY3U0cWU0cuU0cgY2KipKvr2+m2iUXFRWVqXaXLl2Sv79/us8lvYNolIiICFPWhSzaz+hjohc/WayX2j+Tq9vkd+QOjgOS4v0DydEnkBx9AskVxD6R6+fspiZpqPX399etW7f0xx9/OLRJPPe2Ro0a9nZJl2e1XWRkpK5fv25vV6VKFbm5uaVod/PmTZ04ccLeDgAAAABQ8OVp2L18+bI+/fRTNWjQwL6sTZs2cnFx0bp16xzarlu3TrVq1VLlypUlSY0aNVLp0qVTbVeqVCk1btxYklShQgUFBASk2s7FxUVt27aVJLm6uqp169bauHGjYmNj7e02b96sW7duqWPHjrn2vAFkT26P6kqctwsAAFBYZXoa8+bNmyVJhw8fliR99tln8vLyUunSpdWsWTMtXLhQERERat68uXx9fXXy5EktWrRIf//9t8O5vGXKlNEzzzyj+fPny8PDQ4GBgdq4caP27dunNWvW2Nu5uLho4sSJGjlypPz8/NSyZUvt27dP7733nmbPni1XV1d72ylTpig0NFTDhw9Xjx49dOTIEc2dO1eDBw+232NXksaNG6e2bduqb9++GjhwoCIjIzVlyhR17dqVe+wCJvDLKx3z5LxdAAAAFD6ZDrtPPvmkw/cjR46UJIWEhGjbtm2qVq2atm7dqq1bt+ry5csqUaKE7rvvPi1cuFANGzZ0WHfy5MkqXry43nrrLZ07d07VqlXTypUr1b59e4d2/fv3l5OTkxYtWqTXX39d5cuX15w5czRgwACHdu3atVN4eLhmzZql999/X97e3hoxYoRGjRrl0K5u3br66KOPFBYWpp49e6pkyZJ69NFHNWXKlMweBgB56MEBb+TJdm0rTiuqX7k82TYAAADMySkqKirB6CKQPQXxJHE4MnqKbcILteU0/2dDa0iqwcmf9e8KtfNs+4Ux8HrabDp08CCvFXDA+weSo08gOfoEkiuIfSJfLlAFAJmxdF2Y0SUAAADAIgi7AEwjaOR6o0sAAACARRB2AZjG3M2zjS4BAAAAFkHYBWAaZ0p6G10CAAAALIKwC8A05rXqa3QJAAAAsAjCLgDTOP3i/Xm6faOvfg0AAID8Q9gFYBpBI9YZXQIAAAAsgrALGIRRxpTuPX/C6BIAAABgEYRdAKYR9skbeb4P/sgAAABQOBB2AZhGq2dXGl0CAAAALIKwC8A0lqx90egSAAAAYBGEXQCmcahC7XzZD1OZAQAArI+wC8A0ljXtaXQJAAAAsAjCLgDTuDwuON/2xeguAACAtRF2AZiGX9heo0sAAACARRB2AQMwqpi6+3/7zugSAAAAYBGEXQCmMejr9UaXAAAAAIsg7AIwjS4D3zC6BAAAAFgEYReAaax+d3S+7o/p5AAAANZF2AVgGltrtTS6BAAAAFgEYReAaaxp+KDRJQAAAMAiCLtAPmPqbNoSXqid7/vk5wEAAGBNhF0ApuE0/2ejSwAAAIBFEHYBmMZj3281ZL+M7gIAAFgPYReAaTx49AujSwAAAIBFEHYBmMbjT8wxugQAAABYBGEXgGlsWTbUsH0zlRkAAMBaCLsATGNpk0eMLgEAAAAWQdgFYBp7qzUyugQAAABYBGEXgGmcCbvf6BKYzgwAAGARhF0AplFy5kFD90/QBQAAsA7CLgDTGPjVOqNLAAAAgEUQdgGYRtDJn40uAQAAABZB2AVgGk+HvmR0CQAAALAIwi4A0/h8UV+jSwAAAIBFEHYBmEZY+6FGlyCJC1UBAABYAWEXgGn8Wqay0SUAAADAIgi7AEzj0LyeRpcAAAAAiyDsAvmI6bHpK/fSXqNLAAAAgEUQdgGYxojPVxpdAgAAACyCsAvANPwunzO6BDtG4QEAAAo2wi4A0xjVdYzRJTgg8AIAABRchF0ApnHo1UeMLgEAAAAWQdgFYBqDeoYZXUIKjO4CAAAUTIRdAKZxxa240SWkisALAABQ8BB2AZjG1reHGl0CAAAALIKwC+QTRgczVmPCdqNLAAAAgEUQdgGYxoufLDa6BAAAAFgEYRcAMoGReQAAgIKFsAvANF5q/4zRJaSLwAsAAFBwEHYBmMYvr3Q0ugQAAABYBGEXgGk8OOANo0sAAACARRB2gXzA9NfMKXHrmtElZMi24jQ/TwAAgAKAsAvANJauCzO6BAAAAFgEYReAaQSNXG90CQAAALAIwi4A05i7ebbRJQAAAMAiCLsATONMSW+jSwAAAIBFEHYBmMa8Vn2NLiHTuEgVAACAuRF2AZjG6RfvN7oEAAAAWESmwu7p06c1evRotW3bVmXLlpXNZlNkZGSKdjdv3tTkyZNVo0YN+fr6qm3btjpw4ECKdvHx8Zo3b57q1KkjHx8fhYSEaPPmzanuOzw8XMHBwfL29lZQUJDeeeedVNtt3bpVzZs3l4+PjwICAjRnzhzFxcWlaPf111+rXbt28vX11b333qsJEyboxo0bmTkMAPJY0Ih1RpcAAAAAi8hU2D1+/Lg2bdokm82mJk2apNlu2LBhCg8P14QJE7R27Vr5+PioR48eOnLkiEO76dOna+bMmRo0aJDWr1+v4OBg9e3bVzt37nRoFx4eruHDh6tLly7asGGDHnroIY0cOVLLly93aLd792716dNHDRo00Pr16zV48GDNnTtXU6dOdWj3008/qVu3bvLy8tLatWs1adIkrV69WkOHDs3MYQCQx+49f8LoErKEqcwAAADm5RQVFZWQUaP4+HgVKXInF69atUrPPfecfvjhB1WqVMne5scff1Tz5s21aNEi9e7dW5IUGxurxo0bq1q1avrggw8kSefPn1ft2rU1fPhwTZgwwb5+ly5ddOHCBX311Vf2df39/dWmTRu99dZb9nbPPPOMduzYoV9++UUuLi6SpObNm6tEiRLavn27vd2sWbM0d+5c/fTTT/Lx8ZEkPf744/rvf/+rb7/91r7umjVrNGTIEO3du1f16tXL+hE0UEREhKpXr250GciAmQNRwgu15TT/Z6PLsPt8UV+1enal0WVkWVS/ckaXkCZPm02HDh7ktQIOeP9AcvQJJEefQHIFsU9kamQ3MeimZ8eOHXJxcVH37t3ty5ydndW9e3ft2bNHt27dknRnFPb27dsKDQ11WL9nz546evSoTpw4IUn67rvvdOHChRTtQkNDdfHiRX399deSpFOnTunHH39MtV1MTIx27dolSYqJidHu3bvVrVs3e9CVpG7dusnV1dUhKAMwRkEMugAAADCnXLtA1bFjx1SpUiW5u7s7LK9Zs6Zu376t48eP29u5ubmpatWqKdpJ0i+//GJvl3R5VttVrlxZ7u7u9nZ//PGHbt68maJdsWLFVKVKFXs7AMZZsvZFo0sAAACARTjn1oYuXbokm82WYnmpUqXsjyf+6+npKScnpwzbSUqxzcy2S1yWmXalSpWyP56WiIiIdB83ilnrQlLuGTeBJOlQhdpGl5AtthWndbDZdaPLSFXQ//7ltQLJ0SeQHH0CydEnkJwZ+0R6U6tzLexanRnnpxfEefOF0n7znrNrNsua9jS6hGwz+++i2etD/uL9A8nRJ5AcfQLJFcQ+kWvTmG02m6KiolIsTxwxTRyRtdlsio6OVkJCQobtJKXYZmbbJS7LTLtLly7Z2wEwzuVxwUaXAAAAAIvItbDr7++vyMhIXb/uOJXv2LFjcnV1tZ+j6+/vr1u3bumPP/5I0U6SatSoYW+XdHlW2yXWktiuSpUqcnNzS9Hu5s2bOnHihL0dAOP4he01uoRss604bf8CAACA8XIt7LZv314xMTHatGmTfVlsbKw2btyoVq1ayc3NTZLUpk0bubi4aN26dQ7rr1u3TrVq1VLlypUlSY0aNVLp0qVTbVeqVCk1btxYklShQgUFBASk2s7FxUVt27aVJLm6uqp169bauHGjYmNj7e02b96sW7duqWPHjrlyHABk3/2/fWd0CQAAALCITJ+zu3nzZknS4cOHJUmfffaZvLy8VLp0aTVr1kyBgYHq3r27xo8fr9jYWFWqVEnLly9XZGSkli5dat9OmTJl9Mwzz2j+/Pny8PBQYGCgNm7cqH379mnNmjX2di4uLpo4caJGjhwpPz8/tWzZUvv27dN7772n2bNny9XV1d52ypQpCg0N1fDhw9WjRw8dOXJEc+fO1eDBg+332JWkcePGqW3bturbt68GDhyoyMhITZkyRV27di1w99gFrGjQ1+u1NaCV0WUAAADAApyioqISMm6W+lWMJSkkJETbtm2TJN24cUPTpk3Thg0bFB0drYCAAIWFhal58+YO68TFxWnevHkKDw/XuXPnVK1aNY0dO1Zdu3ZNsf0VK1Zo0aJFOnnypMqXL6+hQ4dqwIABKdpt2bJFs2bNUkREhLy9vfXEE09o1KhRKlq0qEO7AwcOKCwsTEeOHFHJkiXVo0cPTZkyJcUtkwqCgniSeGFk5mmtCS/UltP8n40uw3Ki+pUzugQ7T5tNhw4e5LUCDnj/QHL0CSRHn0ByBbFPZDrswnwKYocrjAi7mbf63dF6/Ik5RpeRK8wSeAm7SA3vH0iOPoHk6BNIriD2iVw7ZxcAcmprrZZGlwAAAACLIOwCMI01DR80uoRcY+YRfQAAgMKAsAvkIQJP1iS8UNvoEgAAAGARhF0ApmGm84dzA3/sAAAAMA5hF4BpPPb9VqNLAAAAgEUQdgGYxoNHvzC6hDzBCC8AAED+I+wCMA2r3HYoKYIuAACAMQi7AExjy7KhRpeQZwi9AAAA+YuwC+QRwk3WLW3yiNEl5Av6BgAAQN4j7AIwjb3VGhldAgAAACyCsAvANM6E3W90CXmKEV0AAID8Q9gFYBolZx40uoQ8R+AFAADIH4RdALkvuna2Vhv41bpcLgQAAACFFWEXgGkEnfzZ6BIAAABgEYRdADmTOIqbzdHcpJ4OfSnH2wAAAAAkwi6QJwrFeZnRtVMG3dSWZcHni/rmTm0FQKHoIwAAAAZyNroAAAVIVgNs8vae6U9TDms/NIsFFWy2FacV1a+c0WUAAABYEiO7AEzj1zKVjS7BUIz2AgAA5B7CLoD8k8HI8KF5PfOpEPMg4AIAAOQNpjEDyFguXHwqxbZSmdJc7qW9ubcfAAAAFGqM7AIwjRGfrzS6BEMwugsAAJD7CLtALrNccMnNUd3k2022bb/L5/JmXwWA5foNAACAwQi7ANKWV0E3+T7+t59RXcfk/f4AAABQKBB2AaQuP4JuModefSTf92lGjPICAADkHBeoAmAO0bU1qOc6o6swHEEXAAAgdzCyCyAlA0Z1JenK7cJ36yEAAADkDcIuAEcGBV1J2vq+Ybs2HUZ4AQAAcoawC8A0ajynVK/SXFgReAEAALKPsAvg/xkcMl/83NDdmxKBFwAAIHsIuwDuMNtoqtnqMRCBFwAAIOsIuwBM46VWqSwk9AIAACAbCLsATBMof3k92QKT1GUWjPACAABkHmEXyEUFMoyYKFA+2CuNB0xUo1EKZN8CAAAwEGEXgGmUuJ3OgwReSYReAACAzCLsAjCNpR8bXUHBQOAFAADIGGEXgGkEPW10BQAAALAKwi4A05j7aQYNmMpsx+guAABA+gi7AEzjTIlMNIquTej9HwIvAABA2gi7QC4pcMHDhIFxXlOjKyh4bCtOF7y+BwAAkA8Iu0BhZMKgK0mn52ahsUmfAwAAAMyBsAvANIIGGV0BAAAArIKwC8A07v0niyswumvHVGYAAABHhF2gsDFxQAzba3QFBRuBFwAA4P8RdoFcQMjIHa36ZWMlE4d3I3DBKgAAgDsIuwBMY8mWbK7I7YhSIPACAIDCjrALFCYmD4SH/IyuAAAAAFZB2AVgGsuCjK7AWhJHd4P3uxtcCQAAQP4j7AKFhclHdSXp8is53EABeI4AAADIH4RdIIc4NzL3+I3MhY0QeFPFhasAAEBhQ9gFYBr3nzC6AgAAAFgFYRcoDArIaOeg73NpQwXk+RqB0V0AAFBYEHYBmEaXXrm4MQJvmgi8AACgMCDsAlZXgELf6g1GV1B4JD2Hl/ALAACsiLALwDS23pvLGyxAQR8AAAC5i7ALwDTW1DW6gsKHUV0AAGBVhF0AppEQlgcbja7NCG8mEHoBAIDVEHYBKytgIc8pLA83XsCOhREIvAAAwEqcjS4AABI9doSpzEZLHnij+pUzqBIAAICcydWR3S+//FI2my3FV8WKFR3aRUVFadiwYapatar8/PzUtWtX/fzzzym2d/PmTU2ePFk1atSQr6+v2rZtqwMHDqRoFx8fr3nz5qlOnTry8fFRSEiINm/enGqN4eHhCg4Olre3t4KCgvTOO+/kzpNHoWTqkbACOJL54K9GVwAAAACryJNpzLNmzdKuXbvsX0mDZ0JCgh599FHt3r1bs2fP1qpVqxQTE6POnTvr9GnH4DBs2DCFh4drwoQJWrt2rXx8fNSjRw8dOXLEod306dM1c+ZMDRo0SOvXr1dwcLD69u2rnTt3OrQLDw/X8OHD1aVLF23YsEEPPfSQRo4cqeXLl+fFYQCQRY8/nMc7KIB/ADBa0lsUAQAAFCR5Mo25Ro0aCg4OTvWx7du365tvvtGWLVvUokULSVJwcLACAwO1YMECzZ49W5L0448/av369Vq0aJF69+4tSQoJCVHjxo31yiuv6IMPPpAknT9/XgsXLtTw4cM1bNgwSVKLFi10/PhxhYWFqV27dpKk2NhYTZs2TaGhoZo8ebK93dmzZzV9+nT16dNHLi4ueXE4gPxXQEPdlvelLr3yeCfRtSXPlDNJAAAAYC35foGqHTt2qGzZsvagK0menp5q3769tm/f7tDOxcVF3bt3ty9zdnZW9+7dtWfPHt26dUuStHv3bt2+fVuhoaEO++nZs6eOHj2qEydOSJK+++47XbhwIUW70NBQXbx4UV9//XVuP1UAWbS0YT7tqID+McBojPACAICCJE/C7sCBA3X33XerSpUqGjBggE6ePGl/7NixY6pZs2aKdWrWrKlTp07p6tWr9naVKlWSu7t7ina3b9/W8ePH7e3c3NxUtWrVFO0k6ZdffrG3S7o8rXZAgVeAg9zeyvm4swJ8nIyQGHQJvAAAoKDI1bBbsmRJPfvss3r99de1ZcsWjR49Wnv37lW7du10/vx5SdKlS5dks9lSrFuqVClJdy5elZl2ly5dsv/r6ekpJyenDNtJSrHN5O2AzOJDf+4786rRFSAz6PsAAKAgyNVzdgMDAxUYGGj/vlmzZmratKlat26tJUuWaNKkSbm5u3wVERFhdAmpMmtdhYN7xk2QJSUnGF0BMisx8B5sdt3gSpBdvH8gOfoEkqNPIDkz9onq1aun+Vie32e3Xr16qlatmv79739LujOymjh6m1TykVebzeYw/Tl5u8QRWZvNpujoaCUkJDiM7qbWTrozcuzr65tmu7SkdxCNEhERYcq6Co39jG7ltoGHpGVB+bhDLlaVY7wGFUy8fyA5+gSSo08guYLYJ/LtAlWJQdTf399+/mxSx44dU/ny5eXh4WFvFxkZqevXr6do5+rqaj9H19/fX7du3dIff/yRop1058rQie2SLk+rHQDjBJ0xYKecu5sjnMsLAADMKs/D7n/+8x9FRESoQYMGkqQOHTrozJkz2r9/v73N5cuX9cknn6hDhw72Ze3bt1dMTIw2bdpkXxYbG6uNGzeqVatWcnNzkyS1adNGLi4uWrduncN+161bp1q1aqly5cqSpEaNGql06dKptitVqpQaN26cm08bFmfaD/YFPLg93cWgHRfw42a0pIHXtL8bAACg0MnVacwDBw5UpUqVVLduXXl6eurIkSOaP3++/Pz8NHjwYElSx44d1ahRIz399NOaOnWqbDab5s2bp4SEBD3//PP2bQUGBqp79+4aP368YmNjValSJS1fvlyRkZFaunSpvV2ZMmX0zDPPaP78+fLw8FBgYKA2btyoffv2ac2aNfZ2Li4umjhxokaOHCk/Pz+1bNlS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furatat+/tlcd1BwioqKSjC6iPxy7do1NWvWTHfddZcmTpwoJycnTZ8+XVevXtWBAwfk4eFhdIm6fv26mjVrJjc3N4car1+/rgMHDqh48eLprj9w4EB9+umnmjZtmipXrqxly5bps88+086dO1W3bt18ehbITTntEzabTb169VK/fv0clteuXVvu7u55WTry0Jdffqn+/furXr16iouL0549e/TDDz+oUqVKGa47bdo0LVy4UJMnT1ZgYKA++ugjhYeHa+3atWrXrl0+VI+8kJM+UadOHd17770aN26cw/Lq1atzmk8B1aZNG5UvX14dO3aUn5+fjhw5opkzZ+ree+/Vzp07VaRI2uMdfJawppz0CT5LWNeGDRv0ww8/KCgoSKVLl9apU6f02muv6fTp0zpw4IAqVqyY6noJCQnq0KGD/vzzT02dOlU2m03z5s3TsWPH9OWXX6pcOXPcYaVQhV1JOnnypCZMmKC9e/cqISFBLVq00IwZMzL1YSA/vPnmm5o4caIOHTpkvx/wiRMn1LBhQ7300kvp3gv4xx9/VPPmzbVo0SL17t1bkhQbG6vGjRurWrVq+uCDD/LlOSB35aRPSHfeoEaNGqVJkyblR7nIJ/Hx8fYPJqtWrdJzzz2XqWBz/vx51a5dW8OHD9eECRPsy7t06aILFy7oq6++ytO6kXey2yekO2G3SZMmWrp0aV6XiXxy4cIFeXl5OSxbs2aNhgwZos2bN6tly5aprsdnCevKbp+Q+CxR2ERERCg4OFjTpk3TsGHDUm2zbds2Pf7449qyZYtatGghSYqOjlZgYKB69uyp2bNn52fJaSpU05glqUKFCnr33Xd18uRJnTp1Su+//75pgq4k7dixQ8HBwfZQI0mVK1fWfffdp+3bt2e4rouLi7p3725f5uzsrO7du2vPnj26detWntWNvJOTPgHrSu8v8OnZvXu3bt++rdDQUIflPXv21NGjRx1O80DBkt0+AWtKHmokqUGDBpKks2fPprkenyWsK7t9AoXP3XffLenO735aduzYobJly9qDriR5enqqffv2pvp8yjujyRw7dkw1a9ZMsbxmzZr65ZdfMly3UqVKKaaT1KxZU7dv39bx48dztVbkj5z0iUTLly+Xt7e3ypYtq86dOzN6V4gdO3ZMbm5uDn88kWTvY5ntU7CeTz75RGXLlpW3t7fatGnD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_subsample(data, data_sub_adjusted)" ] }, { "cell_type": "markdown", "id": "a45660a5", "metadata": {}, "source": [ "The probability masses, though, have not been adjusted to our original objectives:" ] }, { "cell_type": "code", "execution_count": 45, "id": "d44c0178", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Probability mass below Pa: 0.18007621031021367\n", "Probability mass above Pb: 0.0318859401558449\n" ] } ], "source": [ "check_regions(data_sub_adjusted)" ] }, { "cell_type": "code", "execution_count": 46, "id": "6c96ae05", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.09827000000000002" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "abs(pa-0.1801) + abs(pb-0.03183)" ] }, { "cell_type": "markdown", "id": "39781e00", "metadata": {}, "source": [ "The transfer of probability mass is, in fact, greater than oour objectives of retaining a 15% and 10%. \n", "\n", "This is to be expected, given the non-uniform probability of the data. So the simple global computation we did is no longer valid. If we want to evaluate the actual probability masses in the regions given by $X_a$ and $X_b$ we need to compute the actual integral, or apporximate it by histogram sums" ] }, { "cell_type": "markdown", "id": "e3e765f6", "metadata": {}, "source": [ "## 4.3 Modification of the Gaussian weighting curve\n", "\n", "If we modify the `mean` and `sdev` Gaussian parameters from the ones estimated for uniform data probability , we can change the probability masses to be transferred:\n", " * modify sdev changes the results for both regions, transferring more or less data from them\n", " * while moving the mean changes the relation asymmetrically, giving more weight to the first or to the fourth quartile\n", "\n", " \n", "### 4.3.1 Subsample with different parameter combinations\n", "\n", "Let's try a grid of values around the initial values" ] }, { "cell_type": "code", "execution_count": 47, "id": "5c3778ee", "metadata": {}, "outputs": [], "source": [ "def compute_subsample_results(data, m: float, s: float) -> Tuple[float, float, float]:\n", " # Gaussian weigthing\n", " gauss_weights = norm.pdf(hperp, loc=m, scale=s)\n", " adjusted_norm_factor = (hcounts*gauss_weights).sum()/hcounts.sum()/desired_sampling_ratio\n", " # Subsample\n", " data_sub = subsample_gauss(data, m, s, adjusted_norm_factor)\n", " # Compute result metrics\n", " ra = len(data_sub[data_sub < qr[0]]) / len(data_sub)\n", " rb = len(data_sub[data_sub > qr[2]]) / len(data_sub)\n", " return len(data_sub)/len(data), ra, rb" ] }, { "cell_type": "code", "execution_count": 48, "id": "a4e7921f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1min 32s, sys: 14min 21s, total: 15min 53s\n", "Wall time: 16min\n" ] } ], "source": [ "%%time\n", "df = pd.DataFrame(([f1, f2, mean*f1, sdev*f2, *compute_subsample_results(data, mean*f1, sdev*f2)]\n", " for f1 in np.arange(0.8, 1.3, 0.1) for f2 in np.arange(0.8, 1.3, 0.1)), \n", " columns=[\"factor1\", \"factor2\", \"mean\", \"sdev\", \"ratio\", \"pa\", \"pb\"])" ] }, { "cell_type": "code", "execution_count": 49, "id": "9778ae79", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
factor1factor2meansdevratiopapb
00.80.8597075.559089157344.6657290.1999870.3273610.001474
10.80.9597075.559089177012.7489460.2000600.3309270.003349
20.81.0597075.559089196680.8321620.2001150.3326190.006112
30.81.1597075.559089216348.9153780.2000930.3327100.009676
40.81.2597075.559089236016.9985940.2000260.3319740.013916
50.90.8671710.003975157344.6657290.1999820.2192790.005382
60.90.9671710.003975177012.7489460.2000270.2382700.009421
70.91.0671710.003975196680.8321620.1999960.2526140.014298
80.91.1671710.003975216348.9153780.2000720.2629470.019859
90.91.2671710.003975236016.9985940.1999870.2705640.025817
101.00.8746344.448861157344.6657290.2001250.1309400.017452
111.00.9746344.448861177012.7489460.1999840.1578200.024555
121.01.0746344.448861196680.8321620.2000450.1801630.031770
131.01.1746344.448861216348.9153780.2000710.1981400.039049
141.01.2746344.448861236016.9985940.1999730.2122290.046073
151.10.8820978.893747157344.6657290.1999790.0675920.049761
161.10.9820978.893747177012.7489460.1999390.0941720.058519
171.11.0820978.893747196680.8321620.2000170.1189650.066225
181.11.1820978.893747216348.9153780.1999600.1405010.073169
191.11.2820978.893747236016.9985940.1999180.1592360.079432
201.20.8895613.338633157344.6657290.1999710.0291370.121411
211.20.9895613.338633177012.7489460.1999140.0494250.125282
221.21.0895613.338633196680.8321620.1999610.0714710.127871
231.21.1895613.338633216348.9153780.1999230.0929870.129851
241.21.2895613.338633236016.9985940.2000010.1132400.131530
\n", "
" ], "text/plain": [ " factor1 factor2 mean sdev ratio pa \\\n", "0 0.8 0.8 597075.559089 157344.665729 0.199987 0.327361 \n", "1 0.8 0.9 597075.559089 177012.748946 0.200060 0.330927 \n", "2 0.8 1.0 597075.559089 196680.832162 0.200115 0.332619 \n", "3 0.8 1.1 597075.559089 216348.915378 0.200093 0.332710 \n", "4 0.8 1.2 597075.559089 236016.998594 0.200026 0.331974 \n", "5 0.9 0.8 671710.003975 157344.665729 0.199982 0.219279 \n", "6 0.9 0.9 671710.003975 177012.748946 0.200027 0.238270 \n", "7 0.9 1.0 671710.003975 196680.832162 0.199996 0.252614 \n", "8 0.9 1.1 671710.003975 216348.915378 0.200072 0.262947 \n", "9 0.9 1.2 671710.003975 236016.998594 0.199987 0.270564 \n", "10 1.0 0.8 746344.448861 157344.665729 0.200125 0.130940 \n", "11 1.0 0.9 746344.448861 177012.748946 0.199984 0.157820 \n", "12 1.0 1.0 746344.448861 196680.832162 0.200045 0.180163 \n", "13 1.0 1.1 746344.448861 216348.915378 0.200071 0.198140 \n", "14 1.0 1.2 746344.448861 236016.998594 0.199973 0.212229 \n", "15 1.1 0.8 820978.893747 157344.665729 0.199979 0.067592 \n", "16 1.1 0.9 820978.893747 177012.748946 0.199939 0.094172 \n", "17 1.1 1.0 820978.893747 196680.832162 0.200017 0.118965 \n", "18 1.1 1.1 820978.893747 216348.915378 0.199960 0.140501 \n", "19 1.1 1.2 820978.893747 236016.998594 0.199918 0.159236 \n", "20 1.2 0.8 895613.338633 157344.665729 0.199971 0.029137 \n", "21 1.2 0.9 895613.338633 177012.748946 0.199914 0.049425 \n", "22 1.2 1.0 895613.338633 196680.832162 0.199961 0.071471 \n", "23 1.2 1.1 895613.338633 216348.915378 0.199923 0.092987 \n", "24 1.2 1.2 895613.338633 236016.998594 0.200001 0.113240 \n", "\n", " pb \n", "0 0.001474 \n", "1 0.003349 \n", "2 0.006112 \n", "3 0.009676 \n", "4 0.013916 \n", "5 0.005382 \n", "6 0.009421 \n", "7 0.014298 \n", "8 0.019859 \n", "9 0.025817 \n", "10 0.017452 \n", "11 0.024555 \n", "12 0.031770 \n", "13 0.039049 \n", "14 0.046073 \n", "15 0.049761 \n", "16 0.058519 \n", "17 0.066225 \n", "18 0.073169 \n", "19 0.079432 \n", "20 0.121411 \n", "21 0.125282 \n", "22 0.127871 \n", "23 0.129851 \n", "24 0.131530 " ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "markdown", "id": "3f1e0585", "metadata": {}, "source": [ "As it can be seen, modifying the parameters of the Gaussian curve *does* change the obtained values of $p_a$ and $p_b$" ] }, { "cell_type": "markdown", "id": "7d9f2276", "metadata": {}, "source": [ "### 4.3.2 Use an estimation\n", "\n", "Extracting complete subsamples to analyze results is, as we have seen, too computationally intensive. Let's do an approximation instead, by estimating the results on a perplexity histogram" ] }, { "cell_type": "code", "execution_count": 50, "id": "74d58fb9", "metadata": {}, "outputs": [], "source": [ "def subsample_gauss_histo(hperp: np.ndarray, hcounts: np.ndarray, \n", " mean: float, sdev: float, norm_factor: float) -> np.ndarray:\n", " \"\"\"\n", " Execute the subsampling on a histogram\n", " \"\"\"\n", " # Create the gaussian weight for each data point\n", " p = norm.pdf(hperp, loc=mean, scale=sdev)/norm_factor\n", " # Subsample data with probability according to each weight\n", " return hcounts*p\n", "\n", "def compute_percentile_estimation(hedges: np.ndarray, hcounts: np.ndarray, perp_value) -> float:\n", " \"\"\"\n", " Estimate the percentile reached by a given perplexity value\n", " \"\"\"\n", " v = np.searchsorted(hedges, perp_value, side=\"right\")\n", " return hcounts[:v-1].sum() + hcounts[v-1]*(perp_value - hedges[v-1])/(hedges[v] - hedges[v-1])\n", "\n", "def estimate_subsample_results(m: float, s: float) -> Tuple[float, float, float]:\n", " # Gaussian weight on perplexity values\n", " gauss_weights = norm.pdf(hperp, loc=m, scale=s)\n", " # Normalization factor needed for the desired ratio\n", " adjusted_norm_factor = (hcounts*gauss_weights).sum()/hcounts.sum()/desired_sampling_ratio\n", " # Subsample the histogram\n", " hcounts_sub = subsample_gauss_histo(hperp, hcounts, m, s, adjusted_norm_factor)\n", " sub_size = hcounts_sub.sum()\n", " # Compute the results of the subsampling\n", " ratio = sub_size/hcounts.sum()\n", " ra = compute_percentile_estimation(hedges, hcounts_sub, qr[0])/sub_size\n", " rb = compute_percentile_estimation(hedges, hcounts_sub, qr[2])/sub_size\n", " return ratio, ra, 1-rb" ] }, { "cell_type": "markdown", "id": "006c4866", "metadata": {}, "source": [ "Let's repeat the same process, but now with the estimator. It should be much faster" ] }, { "cell_type": "code", "execution_count": 51, "id": "1298ea05", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 12.6 ms, sys: 1.81 ms, total: 14.4 ms\n", "Wall time: 19.8 ms\n" ] } ], "source": [ "%%time\n", "\n", "result = ([f1, f2, mean*f1, sdev*f2, *estimate_subsample_results(mean*f1, sdev*f2)]\n", " for f1 in np.arange(0.8, 1.3, 0.1) for f2 in np.arange(0.8, 1.3, 0.1))\n", "\n", "df_est = pd.DataFrame(result, columns=[\"factor1\", \"factor2\", \"mean\", \"sdev\", \"ratio\", \"pa\", \"pb\"])" ] }, { "cell_type": "markdown", "id": "ebdceefe", "metadata": {}, "source": [ "We can compare the actual quartile results with the ones we have estimated" ] }, { "cell_type": "code", "execution_count": 52, "id": "5c811407", "metadata": {}, "outputs": [], "source": [ "df['pa_est'] = df_est['pa']\n", "df['pb_est'] = df_est['pb']\n", "df['err_pa'] = df.pa - df.pa_est\n", "df['err_pb'] = df.pb - df.pb_est" ] }, { "cell_type": "code", "execution_count": 53, "id": "550a7351", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
factor1factor2meansdevratiopapbpa_estpb_esterr_paerr_pb
00.80.8597075.559089157344.6657290.1999870.3273610.0014740.3273430.0014720.0000180.000002
10.80.9597075.559089177012.7489460.2000600.3309270.0033490.3310550.003324-0.0001280.000025
20.81.0597075.559089196680.8321620.2001150.3326190.0061120.3325720.0060820.0000470.000029
30.81.1597075.559089216348.9153780.2000930.3327100.0096760.3326950.0096740.0000140.000003
40.81.2597075.559089236016.9985940.2000260.3319740.0139160.3319330.0139560.000041-0.000040
50.90.8671710.003975157344.6657290.1999820.2192790.0053820.2194740.005363-0.0001950.000019
60.90.9671710.003975177012.7489460.2000270.2382700.0094210.2384660.009394-0.0001970.000027
70.91.0671710.003975196680.8321620.1999960.2526140.0142980.2524920.0143010.000123-0.000003
80.91.1671710.003975216348.9153780.2000720.2629470.0198590.2628600.0198160.0000870.000043
90.91.2671710.003975236016.9985940.1999870.2705640.0258170.2705350.0257110.0000290.000106
101.00.8746344.448861157344.6657290.2001250.1309400.0174520.1310280.017454-0.000088-0.000002
111.00.9746344.448861177012.7489460.1999840.1578200.0245550.1579820.024564-0.000162-0.000010
121.01.0746344.448861196680.8321620.2000450.1801630.0317700.1801180.0318180.000045-0.000048
131.01.1746344.448861216348.9153780.2000710.1981400.0390490.1980260.0389970.0001140.000052
141.01.2746344.448861236016.9985940.1999730.2122290.0460730.2124350.045980-0.0002060.000092
151.10.8820978.893747157344.6657290.1999790.0675920.0497610.0676930.049718-0.0001020.000043
161.10.9820978.893747177012.7489460.1999390.0941720.0585190.0943240.058571-0.000152-0.000052
171.11.0820978.893747196680.8321620.2000170.1189650.0662250.1189720.066312-0.000007-0.000087
181.11.1820978.893747216348.9153780.1999600.1405010.0731690.1407230.073189-0.000221-0.000020
191.11.2820978.893747236016.9985940.1999180.1592360.0794320.1594270.079397-0.0001910.000034
201.20.8895613.338633157344.6657290.1999710.0291370.1214110.0293310.121336-0.0001940.000075
211.20.9895613.338633177012.7489460.1999140.0494250.1252820.0495780.125308-0.000154-0.000026
221.21.0895613.338633196680.8321620.1999610.0714710.1278710.0715050.127902-0.000034-0.000030
231.21.1895613.338633216348.9153780.1999230.0929870.1298510.0931080.129839-0.0001210.000013
241.21.2895613.338633236016.9985940.2000010.1132400.1315300.1132300.1315090.0000100.000021
\n", "
" ], "text/plain": [ " factor1 factor2 mean sdev ratio pa \\\n", "0 0.8 0.8 597075.559089 157344.665729 0.199987 0.327361 \n", "1 0.8 0.9 597075.559089 177012.748946 0.200060 0.330927 \n", "2 0.8 1.0 597075.559089 196680.832162 0.200115 0.332619 \n", "3 0.8 1.1 597075.559089 216348.915378 0.200093 0.332710 \n", "4 0.8 1.2 597075.559089 236016.998594 0.200026 0.331974 \n", "5 0.9 0.8 671710.003975 157344.665729 0.199982 0.219279 \n", "6 0.9 0.9 671710.003975 177012.748946 0.200027 0.238270 \n", "7 0.9 1.0 671710.003975 196680.832162 0.199996 0.252614 \n", "8 0.9 1.1 671710.003975 216348.915378 0.200072 0.262947 \n", "9 0.9 1.2 671710.003975 236016.998594 0.199987 0.270564 \n", "10 1.0 0.8 746344.448861 157344.665729 0.200125 0.130940 \n", "11 1.0 0.9 746344.448861 177012.748946 0.199984 0.157820 \n", "12 1.0 1.0 746344.448861 196680.832162 0.200045 0.180163 \n", "13 1.0 1.1 746344.448861 216348.915378 0.200071 0.198140 \n", "14 1.0 1.2 746344.448861 236016.998594 0.199973 0.212229 \n", "15 1.1 0.8 820978.893747 157344.665729 0.199979 0.067592 \n", "16 1.1 0.9 820978.893747 177012.748946 0.199939 0.094172 \n", "17 1.1 1.0 820978.893747 196680.832162 0.200017 0.118965 \n", "18 1.1 1.1 820978.893747 216348.915378 0.199960 0.140501 \n", "19 1.1 1.2 820978.893747 236016.998594 0.199918 0.159236 \n", "20 1.2 0.8 895613.338633 157344.665729 0.199971 0.029137 \n", "21 1.2 0.9 895613.338633 177012.748946 0.199914 0.049425 \n", "22 1.2 1.0 895613.338633 196680.832162 0.199961 0.071471 \n", "23 1.2 1.1 895613.338633 216348.915378 0.199923 0.092987 \n", "24 1.2 1.2 895613.338633 236016.998594 0.200001 0.113240 \n", "\n", " pb pa_est pb_est err_pa err_pb \n", "0 0.001474 0.327343 0.001472 0.000018 0.000002 \n", "1 0.003349 0.331055 0.003324 -0.000128 0.000025 \n", "2 0.006112 0.332572 0.006082 0.000047 0.000029 \n", "3 0.009676 0.332695 0.009674 0.000014 0.000003 \n", "4 0.013916 0.331933 0.013956 0.000041 -0.000040 \n", "5 0.005382 0.219474 0.005363 -0.000195 0.000019 \n", "6 0.009421 0.238466 0.009394 -0.000197 0.000027 \n", "7 0.014298 0.252492 0.014301 0.000123 -0.000003 \n", "8 0.019859 0.262860 0.019816 0.000087 0.000043 \n", "9 0.025817 0.270535 0.025711 0.000029 0.000106 \n", "10 0.017452 0.131028 0.017454 -0.000088 -0.000002 \n", "11 0.024555 0.157982 0.024564 -0.000162 -0.000010 \n", "12 0.031770 0.180118 0.031818 0.000045 -0.000048 \n", "13 0.039049 0.198026 0.038997 0.000114 0.000052 \n", "14 0.046073 0.212435 0.045980 -0.000206 0.000092 \n", "15 0.049761 0.067693 0.049718 -0.000102 0.000043 \n", "16 0.058519 0.094324 0.058571 -0.000152 -0.000052 \n", "17 0.066225 0.118972 0.066312 -0.000007 -0.000087 \n", "18 0.073169 0.140723 0.073189 -0.000221 -0.000020 \n", "19 0.079432 0.159427 0.079397 -0.000191 0.000034 \n", "20 0.121411 0.029331 0.121336 -0.000194 0.000075 \n", "21 0.125282 0.049578 0.125308 -0.000154 -0.000026 \n", "22 0.127871 0.071505 0.127902 -0.000034 -0.000030 \n", "23 0.129851 0.093108 0.129839 -0.000121 0.000013 \n", "24 0.131530 0.113230 0.131509 0.000010 0.000021 " ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "markdown", "id": "cfe2ca39", "metadata": {}, "source": [ "As we can see, the estimation produces the same results as the full computation. So we can use it safely" ] }, { "cell_type": "markdown", "id": "bb325b33", "metadata": {}, "source": [ "### 4.3.3 Optimization\n", "\n", "Now that we can produce a fast estimation of the results, we can try to optimize the arguments for the Gaussian curve by minimizing the error on the desired probability masses" ] }, { "cell_type": "code", "execution_count": 54, "id": "bec2f2c6", "metadata": {}, "outputs": [], "source": [ "import scipy as sp" ] }, { "cell_type": "code", "execution_count": 55, "id": "75ba883b", "metadata": {}, "outputs": [], "source": [ "def error(point, pa, pb):\n", " \"\"\"\n", " Compute the estimation error to minimize\n", " \"\"\"\n", " _, actual_pa, actual_pb = estimate_subsample_results(point[0], point[1])\n", " return abs(pa-actual_pa) + abs(pb-actual_pb)" ] }, { "cell_type": "code", "execution_count": 56, "id": "4c7f409a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimization terminated successfully.\n", " Current function value: 0.000000\n", " Iterations: 104\n", " Function evaluations: 199\n" ] } ], "source": [ "initial = np.array([mean, sdev])\n", "r = sp.optimize.minimize(error, initial, args=(pa, pb), \n", " method='nelder-mead', options={'xatol': 1e-8, 'disp': True})" ] }, { "cell_type": "markdown", "id": "cfc4442c", "metadata": {}, "source": [ "Minimization was successful, so we can use now the obtained `mean` and `sdev` values" ] }, { "cell_type": "code", "execution_count": 57, "id": "2372db3b", "metadata": {}, "outputs": [], "source": [ "def adjusted_gaussian_subsample(data: np.ndarray, mean: float, sdev: float, \n", " ratio: float, hbins: int = 1000) -> np.ndarray:\n", " \"\"\"\n", " Subsample a dataset ensuring a given sampling ratio\n", " \"\"\"\n", " # Compute a histogram for this dataset\n", " hcounts, hedges = np.histogram(data, bins=hbins, range=[0, qr[2]*10])\n", " hperp = (hedges[:-1] + hedges[1:])/2\n", " # Compute the weighting function over the histogram values\n", " gauss_weights = norm.pdf(hperp, loc=mean, scale=sdev)\n", " # Normalize the weights to achive the desired sampling ratio\n", " adjusted_norm_factor = (hcounts*gauss_weights).sum()/hcounts.sum()/ratio\n", " # Subsample\n", " return subsample_gauss(data, mean, sdev, adjusted_norm_factor)" ] }, { "cell_type": "code", "execution_count": 58, "id": "6813dc15", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 4.43 s, sys: 27.8 s, total: 32.2 s\n", "Wall time: 32.4 s\n" ] } ], "source": [ "%%time\n", "data_sub_adj2 = adjusted_gaussian_subsample(data, r.x[0], r.x[1], desired_sampling_ratio)" ] }, { "cell_type": "markdown", "id": "4d184d7e", "metadata": {}, "source": [ "Let's check we *did* obtain the desired results and plot the distributions" ] }, { "cell_type": "code", "execution_count": 59, "id": "0d1ed557", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ratio: 0.19997422\n", "Probability mass below Pa: 0.14992142487166596\n", "Probability mass above Pb: 0.10007179925492396\n" ] } ], "source": [ "print(\"Ratio:\", len(data_sub_adj2)/len(data))\n", "check_regions(data_sub_adj2)" ] }, { "cell_type": "code", "execution_count": 60, "id": "3d153b4a", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7sAAAIXCAYAAABdM0nXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAACAjElEQVR4nO3de3yP9f/H8efYQTP2kdlmziLDmMMmzCFfhxxCiJUkhBxScj63SI6RUCE5lORQDjmLJDrR9yuVr1rJcirE5sxOvz/89vnus/Nm23Xt2uN+u7nNrs/7uq7X59p7n8/nuff1vi6nyMjIeAEAAAAAYCEFjC4AAAAAAIDsRtgFAAAAAFgOYRcAAAAAYDmEXQAAAACA5RB2AQAAAACWQ9gFAAAAAFgOYRdAMqtWrZLNZrP/K126tEJCQrR48WLFxMTkej0DBw5UjRo1cmz7NptN06ZNs3+/ZcsWLViwIMf2l1iNGjU0cOBA+/cJxz4iIiLD21i1apXef//9TO036TGNiIiQzWbTypUrM7WdrNSVleeYHdq1a6fWrVtn6zZff/11BQQEqHjx4mrUqFG2btvMkv7O3Kv3339fderUUYkSJVS2bFlFRERo2rRpOnnyZLbtIyP++ecfTZkyRQ0bNlSpUqXk4+OjWrVq6bnnntOXX36Zq7VkVsLv8KpVq4wuJctq1Kih/v37G11Gtkvt9TYv/6yAvMLZ6AIAmNeKFSvk5+enq1evauPGjRo1apQuXLig8ePHG11attq9e7f8/Pzs32/dulVffPGFnn/++Vyv5ZFHHtHu3bvl6+ub4XU+/PBDxcbG6umnn87wOqNGjdKAAQOyUmKGpVZXVp6jGX3//feaMmWKXnjhBbVr104eHh5Gl5QnnTt3TkOHDlXXrl21cOFCFSpUSH/++admzJihBg0aqHz58rlSx7Fjx9SlSxfFx8erX79+ql27tpydnfXbb79p7dq1at++vX799Vd5e3vnSj2Z5evrq927d6tChQpGl4J08LMCcg9hF0CqatSooYoVK0qS/vWvf+nEiRNatGjRPYfd27dvy83NLTtKzBbBwcFGl2Dn5eUlLy+vHNt+wrE38kNWTj/H3PLLL79Ikvr06ZMtgcxsvxe55ffff1dsbKyefPJJNWjQQJJyZBQ1NjZW8fHxcnZO/tEnOjpaTz/9tNzd3bVz506H/tmkSRP16dNH69atk4uLS7bXlV3c3NxM9VqG1PGzAnIPpzEDyLA6deroypUrunDhgiTpxx9/1BNPPKFy5crJ19dXjzzyiL766iuHdQYOHKhq1arpu+++U6tWreTr66tJkyZJ+t8paytWrFDt2rXl4+OjJk2aaP/+/enWcuPGDb388suqWbOmSpQooZo1a2r27NmKi4uTJF2/fl3BwcH617/+pejoaPt6e/fuVbFixbRkyRL7ssSnZA4cOFCrV6/W2bNn7adx16hRQ3///bdKlCiht99+O1kt06ZNU8mSJRUZGZlmzW+//bZq1KghHx8fPfzww8mOlZTyKb7r1q1T48aNVapUKZUpU0YNGzbUsmXLJN09NffgwYP65ptv7PW2a9fOYVsHDx7UM888o7Jly6p58+b255nSqeF37tzRuHHjVKlSJZUsWVKhoaHJTjdO6RTWpKflZaSuxNuNjo7Wq6++qho1aqhEiRKqUaOGXn31VYefXcI+li1bpqlTp6pKlSoqW7asQkNDdebMmTSPfWJbt25VgwYN5O3treDgYG3YsCFZm/T6drt27TRo0CBJUq1atRyOyZUrVzRy5Ej5+/vL29tbQUFBWrhwoeLj4+3rf/nll7LZbNq8ebNeeOEFPfDAA6pcubL98eXLlyskJEQ+Pj6qWLGinn/+eV2+fDnd5/bxxx+rffv2euCBB1SqVCk1btxYH374YbJ2NptNr776qt555x3VrFlTpUuXVtu2bfXf//7XoV1sbKxeffVVValSRSVLllS7du2StUnNxYsXNXToUNWtW1clS5ZU9erV1bdvX509e9beZuDAgXr00UclSR07drT/vrVv316S9Nhjj9n7T+IAnJHjY7PZNGXKFM2dO9f+OvHzzz+nWOvmzZv1+++/KywsLNU/xHTt2lXFihWzf79371517drVfmwaNGig+fPnKzY2Nlkd6f2+SNK///1vPfbYY6pQoYJ8fX0VGBio4cOH2x//+++/NWDAAHu/qlKlikJDQ+2vx6lts2fPnqpWrZp8fX0VFBSkyZMn6+bNmw71JJziv2/fPjVp0sT+fD799NMUj0Vi6dWV0NeT/gEjrekM6b0npHesMtL3pLuv3TabTb/++qs6d+4sPz8/BQQE6IMPPpAkffTRRwoODlapUqX06KOP6o8//nBYP6vvYSn9rBLeK3/44Qe1adNGJUuWVJ06dfTee+8lW3/fvn1q3LixfHx8VLt2ba1cuTLHp/sAeRUjuwAyLCIiQgULFlThwoV15MgRtW3bVjVr1tSbb76p++67T++9954ee+wx7dq1S7Vq1bKvd+XKFfXp00dDhgzRxIkTdd9999kfO3DggI4cOaKJEyfK1dVV8+bNU9euXXXgwAGHD/+JxcTEqEuXLjp+/LhGjhyp6tWr69ChQ5o1a5YuX76sqVOnqnDhwnr33XfVsmVLTZ06VWFhYTp//rwGDBig1q1bq1+/filue9SoUfrnn3/073//W6tXr5Ykubq6ysfHR+3atdOKFSsc5tjGxsbqgw8+sH8oT83KlSs1duxYde/eXZ07d9aJEyfUt29fXbt2Lc1j/vXXX6t///567rnnNGXKFMXFxenXX39VVFSUpLtzRvv376/Y2Fi98cYbkqQiRYo4bKN///7q0qWLVq5cme6c67lz5yogIEALFy7UhQsXNGXKFHXu3FnffPNNpka1MlJXYgMHDtSGDRs0bNgwNWjQQN9++61ef/11nTx5Uu+++65D2zlz5uihhx7SggULdOHCBU2YMEH9+/fX1q1b063rxIkTGj16tMaMGaMSJUrovffeU58+fVS8eHE1adJEkjLUt19//XWtXbtWc+bM0fvvvy9fX1/5+fkpLi5OoaGh+uGHHzR27FhVr15dO3fu1Pjx4/XPP//Y/9CTYPTo0WrRooUWLVqkW7duSZLCwsK0YMEC+8/87Nmzmjp1qv773/9q165dKliwYKrP7+TJk+rYsaNeeuklFShQQAcPHtQLL7ygW7duqU+fPg5t16xZo8qVK2v69OmKjo7WxIkT1b17dx06dMg++jlt2jS9/vrrGjx4sP71r3/pP//5j5588sl0j7MkXb58WW5ubpo0aZK8vLz0119/acGCBXrkkUd06NAhFSpUSKNGjVKtWrU0evRozZ49W4GBgSpUqJC+/fZbjRgxQjNmzFCdOnUkSVWqVMn08fnwww9Vvnx5TZkyRYULF1bJkiVTrPWLL75QwYIF1aJFiww9t4Rj3aRJE/Xv319ubm46cuSIZsyYoX/++UdhYWEZ3o4kXbt2TZ07d1bdunX11ltvycPDQ3/++ae+++47e5vnnntOp06d0uTJk1WqVClduHBBX3zxhW7cuJHqdk+dOqUaNWqoe/fu8vDw0PHjxzVz5kydPHkyWYj6448/NGbMGL300ksqXry4FixYoF69eunQoUP2M3xSkpW60pLee0JGjlVG+l5ivXr1Us+ePTVkyBC9++67ev7553XixAkdOHBAL7/8smJiYjRmzBj17dtXe/bsyVS9mXH16lX169dPAwcO1KhRo7Rq1SoNGzZMlSpVsr8+HT9+XN26dVPdunW1dOlSRUdHa9asWbpy5YqcnJyydMwBKyPsAkhVbGysYmJidO3aNW3YsEGffvqpWrduLXd3d02aNEmlS5fW5s2b5erqKklq3ry5GjRooJkzZzqMJl27dk2LFi2yj+wlduHCBe3atUulS5eWJDVt2lQ1atTQrFmztHjx4hTrWr9+vb7++mtt3bpVISEh9vUkacaMGRo6dKhKlCihwMBAvfzyy5o4caIefvhhzZ8/XwULFkzz4lMVKlRQ8eLF5erqmuw0s2effVbt27fXV199pYYNG0qSdu7cqTNnziQLEonFxcVpxowZat68ud566y37ci8vrzTXk6TDhw/L09NT06dPty/717/+Zf+/v7+/ihQpotjY2FRPi+vQoYMmT56c5n4SeHh4aPXq1SpQ4O6JP5UqVVLr1q21evVq9ezZM0PbyGhdCY4dO6b169dr9OjRGjt2rKS7z9HZ2VlTp07V0KFDFRAQYG9ftmxZhwD8zz//aOLEiTp37lyqYSbB+fPntXv3bntNLVq0UP369TVt2jT7h8mM9G1/f3/7qcs1a9ZUuXLlJEk7duzQ119/rYULF+qpp56yP5cbN25owYIFGjx4sIoXL26vp06dOpo/f779+4iICL355psaPXq0Ro8ebV+e8HPYvn27fSQ0JYlHt+Li4tSoUSP9/fffWrp0abK+5uLiojVr1jj8EeOZZ57R999/r4ceekiRkZF6++231atXL7366qv251KwYMEMhbnKlStrxowZ9u9jY2P10EMPKSAgQLt371b79u1VoUIFe4itUqWK/eeScJZE4mVZOT7x8fH65JNPHP7AlpKzZ8/Ky8srWbu4uDj72SKSVLBgQXugSHw84+Pj1bBhQ925c0fz58/XpEmT7L9DGREeHq7IyEi98sorDn09oQ9J0qFDhzRx4kR169bNvuyxxx5Lc7sdO3Z0qLF+/foqUqSIBgwYoNmzZ+v++++3P/7PP/9o27ZteuCBByRJgYGBqlKlijZs2ODQr5LKSl1pSe89ISPH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WLCgQxtfX195enqmup/sRNgFkGk5db/dIv7+unr8eLZvFwAA5C/t2rXT0aNHtWvXLh08eFD79u3T+++/rwYNGmjTpk0Oo7NJxcbG3tO+H3jgAX377bf64osv9MUXX+jgwYN64YUXNG3aNG3btk0VKlRQfHy8OnXqpF9//VUDBgxQ7dq1VbRoURUsWFCrVq3SunXrFBcXl2zbSYNjesvTGlnOqocffjhXR2fvBWEXgGlcS3TqCwAAwL0oVqyYQkNDFRoaqvj4eIWFhWnevHnatm2bmjdvLkm6fPlysvXSGt389ddfk81p/eWXX1SwYEGVKVPGvszNzU2tWrVSq1atJEm7du1St27dtHDhQs2ePVs//fSTfvrpJ40aNUrjxo1z2N7KlSuz+pQz5Ndff0227JdffpGUfOQ4seLFi8vT01NXr17Vww8/nO5+ypcvr99//12xsbEOYfyvv/5SVFRUpuvOCubsAsiSnDhNusBvv2X7NgEAQP4SGxuryMhIh2VOTk6qWbOmpLsBt0iRIvLx8dGXX37pMPp58uTJZLfsSWzevHkO7Y8cOaJ9+/apadOm8vDwkCT9888/ydYLDAy071v630hs0pHXY8eOpTlvNjt8/vnnDrdLio+P17x58yTdHRFPTYECBdStWzd9//332rRpU4ptEp+O3bZtW50/f16rV692aPPGG29kvfhMYmQXsKC8OF9XkgpNn67rjRsbXQYAAMjDrl69Kn9/f7Vp00Y1a9aUl5eXIiIi9N5778lms6l169aSpH79+unVV1/V448/rnbt2uncuXNatmyZqlatqn//+98pbvvUqVPq3Lmz2rRpo7///ltLlizRfffdp8mTJ9vbdOrUSZ6enmrQoIFKly6tqKgoffjhh3JyclJoaKiku3Nkq1atqjfffFM3b95U5cqV9dtvv2n58uWqVq1aivfuzS4BAQHq0KGD+vXrJx8fH23btk379u1TaGio6tWrl+a6EyZM0DfffKNevXqpU6dOCgoKkqurq06dOqXdu3crMDDQfjXmF198UevWrdOLL76oH374Qf7+/jpw4IAOHTqk4sWL59jzS4ywC8A0rqfxl1QAAICMcHd318CBA/XFF19o3759un79unx8fNSmTRsNGzZMJUuWlHT3qsBXrlzRmjVrdODAAVWpUkXz58/XkSNHUg27H3/8scaNG6dp06bp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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_subsample(data, data_sub_adj2)" ] }, { "cell_type": "markdown", "id": "af8c5b32", "metadata": {}, "source": [ "To take a closer look, we show only the distribution for the subsampled data" ] }, { "cell_type": "code", "execution_count": 61, "id": "49a77f85", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7EAAAIXCAYAAABKEdkeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABofklEQVR4nO3deVyVdeL+/wsDbRTzkCKKKMig4EJoglnm9lELLZdBk1Irc0wtsyisGReMVLLU1FLLJUscl1RKcS3LZUytSWfGbOqLWSa51KjFQc1kEX5/+OOMh327ueHm9Xw8fBT3ed/3uc45b+Bc3Mtxsdvt2QIAAAAAoAqoYXYAAAAAAACKixILAAAAAKgyKLEAAAAAgCqDEgsAAAAAqDIosQAAAACAKoMSCwAAAACoMiixAKq81atXy2azOf75+Pioc+fOWrp0qTIzMys8zxNPPKHg4GDDtm+z2TRz5kzH11u3btXChQsNu78bBQcH64knnnB8nfPcJycnF3sbq1ev1t/+9rcS3W/u5zQ5OVk2m00rV64s0XZKk6s0j7E8ZGVl6a9//asCAwPl4eGhoUOHGn6fX3zxhUaOHKnWrVvL09NTTZs2VY8ePTRjxgz9/PPPht9/WcycOVM2m83sGKX26aefymazae/evWZHKXe5f2ZV9dcKgPlczQ4AAOUlPj5e3t7eunTpkjZt2qQXXnhB58+f1+TJk82OVq4+/vhjeXt7O77etm2b/v73v+upp56q8Cz33nuvPv74YzVq1KjY66xZs0bXrl3Tww8/XOx1XnjhBY0dO7Y0EYutoFyleYzlITExUYsXL9aMGTPUsWNH3XrrrYbe34IFCzR16lR16dJFkydPlp+fn3777Td98cUXio+P15EjR5SQkGBohrJ45JFH1KtXL7NjoBh4rQCUFSUWgGUEBwfL399fkvR///d/OnHihJYsWVLmEpuWlqZatWqVR8RyERYWZnYEhwYNGqhBgwaGbT/nuW/evLlh91EUox9jQY4dOyZJevLJJ1WjRtkPnCpsHu/bt09Tp07V2LFjnfaYSdI999yjZ599Vps2bSpzBiM1adJETZo0MTsGioHXCkBZcTgxAMu6/fbbdfHiRZ0/f16S9NVXX+nBBx+Ur6+vGjVqpHvvvVcHDx50WueJJ55Q69at9cUXX+iee+5Ro0aNNHXqVEnXS/Lo0aMVHx+v9u3by8vLS127dtW+ffuKzHLlyhW9+OKLuu222+Tp6anbbrtNc+bMUVZWliTpt99+U1hYmP7v//5PGRkZjvV2794tDw8PLVu2zLHsxkPznnjiCa1du1Znz551HE4dHBys//73v/L09NRbb72VJ8vMmTPVuHFj2e32QjO/9dZbCg4OlpeXl7p3757nuZLyP9R2w4YN6tKli5o0aaKmTZvqrrvu0rvvvitJuu+++3TgwAF9/vnnjrz33Xef07YOHDigRx99VM2aNVPPnj0djzO/Q7TT09M1adIkBQQEqHHjxoqMjMxz2G/uQxml/x2OvHr16mLnunG7GRkZmjFjhoKDg+Xp6ang4GDNmDHD6bXLuY93331XcXFxCgwMVLNmzRQZGakzZ84U+twHBwfrlVdekSTdeuutTll//vlnjRkzRv7+/mrYsKHuuusurVu3Lt/XJb/nMj+vv/666tevr5deeinf2+vUqaNhw4Y5LXv55ZfVtWtXNW3aVP7+/urXr58OHTqUb47cr0l+h5O+9dZb6tixoxo1aiRfX191795dW7Zscdy+a9cu3XPPPWrWrJmaNGmi0NBQvfrqq4Vuc+nSperdu7f8/PzUrFkz9erVSx999JHTmLK8TsXJVdDcve+++xxz7Eapqal64okn5Ovrq6ZNm+rxxx/Xr7/+WqLnavfu3XrggQcUGBioxo0b684779SCBQt07do1p+3k/Ex77733FBoaqkaNGqlPnz76/vvv9dtvvykqKkrNmzdXixYtNHnyZKfTM3IOf05MTCwyb275vVY2m00zZszQ4sWLddttt8nHx0d9+/bV//t//89p3LVr1zRjxgzHY+vXr5++/fbbfL/PAVgXe2IBWFZycrJuuukm1alTR0eOHFHfvn1122236Y033tAf/vAHvfPOOxo4cKB27typdu3aOda7ePGiRo4cqfHjxysmJkZ/+MMfHLft379fR44cUUxMjGrWrKnXX39dDzzwgPbv368WLVrkmyMzM1ODBg1SUlKSnn/+ebVp00aHDh3S7NmzlZKSori4ONWpU0dvv/22evfurbi4OMXGxurcuXMaO3aswsPD9fjjj+e77RdeeEG//PKL/vWvf2nt2rWSpJo1a8rLy0v33Xef4uPjnc5hvXbtmlatWqWBAwcWek7aypUrNXHiRA0dOlQRERE6ceKERo0apcuXLxf6nH/22WcaPXq0xowZo+nTpysrK0vffvutUlNTJUmvvfaaRo8erWvXrmn+/PmSpLp16zptY/To0Ro0aJBWrlxZ5DnN8+bNU9u2bbVo0SKdP39e06dPV0REhD7//HO5ubkVuu6NipPrRk888YQ2btyo5557Tnfeeaf+8Y9/6LXXXtPJkyf19ttvO42dO3eu7rjjDi1cuFDnz5/XlClTNHr0aG3btq3A7a9atUpLlizRmjVr9PHHH0uSmjdvrt9++0333Xef7Ha7pk6dqiZNmmj9+vUaM2aMfv/9d40YMcJpO8V5LjMzM3XgwAH169dPNWvWLMazdd1PP/2kJ598Ut7e3rpy5YrWr1+vvn37au/evWrTpk2xtyNJ69ev15QpU/TCCy/ozjvv1NWrV/X1118rJSVFknTy5Ek99NBDGjBggF544QW5ubnpxIkTOnnyZKHb/fHHH/Xwww/L19dXmZmZ+vDDDxUZGamEhIQ8h7OW5nUqba7CTJo0Sd26ddPy5cv1/fffa/r06frpp5+0devWYj1XObm6du2q0aNHq1atWjpy5IheffVV/fLLL4qNjXW6v4MHD+qHH35QbGysMjIyNHHiRD388MPy8/OTv7+/3nnnHR04cEBz5sxR8+bNNWrUqBLlLYl169apRYsWeuWVV5SRkaGYmBgNHTpUhw4dkqvr9besM2fO1Guvvaann35a3bt315EjR/TQQw+V+L4AVG2UWACWce3aNWVmZury5cvauHGjtmzZovDwcNWuXVtTp06Vj4+PNm/e7Hij3rNnT915552aNWuW1qxZ49jO5cuXtWTJknz3kpw/f147d+6Uj4+PJKlbt24KDg7W7NmztXTp0nxzJSQk6LPPPtO2bdvUuXNnx3qS9OqrryoqKkqenp4KCQnRiy++qJiYGHXv3l0LFizQTTfdVOhFm5o3b6769eurZs2aeQ4z/vOf/6x+/frp4MGDuuuuuyRJH330kc6cOaORI0cWuM2srCy9+uqr6tmzp958803H8gYNGhS6niQdPnxY9erVc+xFlK4f2p0jKChIdevW1bVr1wo8LLp///6aNm1aofeTw93dXWvXrnUcbhsQEKDw8HCtXbtWjzzySLG2UdxcOb755hslJCToL3/5iyZOnCjp+mN0dXVVXFycoqKi1LZtW8f4Zs2aORXbX375RTExMfrpp5/UuHHjfO8jJCTEcd7zjXmWLl2q77//Xlu2bFGXLl0kSb1799a5c+c0Y8YMPfzww7rpppsc44vzXP7666+6evWqY07fKHfxzSkS0vVzaHNcu3ZNvXr1UqdOnbRy5UqnPZHFcejQIbVp00Z/+ctfHMvuuecex/9/+eWXSk9P12uvvaZbbrlF0v++hwozY8YMx/9nZWWpW7du+u6777R8+fI8JbY0r1NpcxUmKCjI8X3Xq1cveXh4aPTo0fr73/+ubt26FflcSXL6Ps3OztZdd92l9PR0x3nPNx6efvnyZSUkJKhevXqSpP/+97/661//qg4dOjievx49emjnzp3atGlTnhJbVN6ScHNz07p165z+APXoo4/qn//8p+644w7Z7Xa99dZbGjlypOOogR49esjNzU1Tpkwp0X0BqNo4nBiAZYSFhalBgwby8/NTdHS0HnjgAS1atEi///67Dhw4oAEDBqhGjRrKzMxUZmamsrOz1a1btzyHybq5uSk8PDzf+wgNDXV6s1+3bl3dc889eQ6jvNGuXbvUtGlT3XHHHY77zszMdBw6fOO6Tz75pHr27KnIyEjt3r1bixcvVv369Uv1fHTp0kVBQUFasWKFY9mKFSvUpk2bQovamTNndObMGQ0cONBpef/+/Z1KTH7at28vu92u0aNH68MPPyzykOX83H///cUe279/f6c35J06dVKTJk0KfT3KKme+REZGOi0fMmSIJOnAgQNOy3MXjNatW0uSTp8+Xar79vb2dhTYG+/7woULSkpKclpekucyt//+97+O84Fz/t1Yavfu3av777/f8YeUBg0a6LvvvtN3331X4vtq3769vvrqKz3//PPau3evrly54nR7cHCw3Nzc9Oc//1mJiYmOUwSKcuTIEUVGRqpFixaOjHv27Mk3Y2lep9LmKkzu77uBAweqRo0a+uKLLyQV/VxJ1w85z/ljiqenpxo0aKAZM2YoNTU1T8aOHTs6CqwktWzZUpLyHH7esmXLfA+vLipvSeQU0hy5X4Ovv/5av/32mwYMGOC0Xu6vAVgfJRaAZaxatUp79uzRoUOHdPbsWS1ZskQeHh5KSUnRtWvXNHv27DxvypctWya73e44N1W6vsfxxr1ZN2rYsGG+y3766acCc50/f16nTp3Kc985eyhvPH/MxcVFkZGRSktLU9u2bcu8V2fkyJFKTEzUr7/+qh9//FGffPJJkXtT//vf/zoe141cXV2LvELu3Xffrfj4eJ0+fVrDhw9XQECABgwYoP/85z/FzlySqwDn93p4enoW+nqUVc5hm15eXk7Lc76+8bBOSfLw8HD6OudIgKtXr5bqvnPfb2H3XZzn8tZbb9XNN9+cp6zVr19fe/bs0Z49e/Too4863XbkyBE98MADqlOnjhYsWKBPPvlEe/bsUdu2bUv1uB566CHNnTtX//znPxUREaHmzZtr+PDhjnNp/f399f777ysrK0tjxoxRy5Yt1atXL+3fv7/AbZ4+fVr9+/dXSkqKZs2apZ07d2rPnj3q1atXvhlL8zqVJldRcs/pmjVrymazOeZ0Uc9VVlaWHnroIX300Ud6/vnntXnzZu3Zs0cTJkzI9/HkPq0gp0TmtzwtLa3EeUuiqNcg52eTp6dnoRkAWB+HEwOwjNatWzuuTnyjevXqqUaNGho1alSB507duDfPxcWlwPs4d+5cvssKOtxQul4SfH19nfaI3qhZs2aO/885lC8kJERHjx7VW2+95XROa0k9+OCDmjZtmlavXq3U1FTVrl1bDzzwQKHr5BSi3I81MzOzyAu2SNf3igwYMECXL1/W/v37FRsbq8GDB+ubb74p1lV2C3v+c8vv9Th//rzThXRq1arldMElKW/ZK4mcN9rnzp1zumpyzhvs3G/Ey5OHh0e+exELuu/iPJeurq666667tGfPHqWnpzuKg6urq9q3by9J+vDDD53W2bJli1xdXbVq1SqnPWd2u91pr97NN98sSXme/9zzyMXFRY899pgee+wx2e127d69W1OmTNHIkSO1a9cuSVLXrl3VtWtXpaWl6fPPP9fMmTMVGRmpo0eP5nu0wq5du3Tx4kW9++67TlfCzW/PZVkUlevmm2/O8/il63Mwv7mSe06np6fLbrc7fsYU9Vz98MMP+ve//60lS5Y4HS2wY8eOcn3cxc1bnnJ+Np0/f16tWrUqMAMA62NPLADLq1Onju6880795z//UUhIiNq3b5/nX3EdPnzYaY/VpUuXtHPnzkIPz+3Zs6fOnDmjOnXq5HvfOW/As7Oz9cQTT6hWrVqOK37GxsYWuRezVq1a+v333/O97ZZbbtEDDzygFStWaNWqVRo0aJDj3L2CNGnSRD4+Pnk+UmXz5s1FXmjpRu7u7goPD9eIESP0888/O4pLYXlLavPmzU570T///HOdOXPG6fVo2rSpvvnmG6f1cl+htiS5cs4vfv/9952Wb9iwQdL1vdFG6dy5s86cOaPPP//caXlCQoI8PT0VFBRUqu0+88wz+uWXX/Tiiy8Wa/yVK1d00003OZXkv//973n25jZt2lSSnJ7/zMxM7dmzp8Bt22w2RUREaODAgXmuTCtdf526deump59+Wr/99lueKx/fmFGSU8n+7rvv9I9//KMYj7DkCsrVtGlTnTt3ThcuXHCM/eGHH3T8+PF8t5P7+27Tpk3KyspSx44d84zN77nK73FnZGQ45md5K0nesmrTpo3q1KmjxMTEQjMAsD72xAKoFuLi4nTfffcpIiJCDz/8sLy8vPTLL7/o6NGjunbtWp4rdhakYcOGioiI0F//+lfH1YmvXLmiF154ocB1hgwZotWrV2vAgAEaN26cgoODlZ6erh9++EE7duzQ6tWrVbt2bS1cuFB79+7V5s2bZbPZFBsbq/3792vUqFHas2eP01WSbxQYGKiUlBQtX75c7du3V61atZyuDvvnP//Z8RE3jz32WJGPsUaNGnrhhRf09NNP68knn9SgQYN04sQJzZ8/v8gCHBcXp/Pnz6tLly5q1KiR47Du4OBgx2etBgYGavny5frggw/UvHlzubu7F3hl56JcvnxZQ4cO1WOPPaYLFy5o2rRp+uMf/+i0xz0iIkJz5szRnDlzFBYWpoMHD+YpoCXJ1bp1aw0ePFivvPKKMjMzdccdd+iLL77Q7NmzNXjw4BJfmbckhg4dqsWLF+vhhx9WTEyMvL29tX79eu3Zs0fz588v8DD4onTr1k2xsbGKjY3V119/7fgoqrS0NH333Xf64IMPVKdOHUdp7dWrl9566y09+eSTGjZsmL777jvNnj3bcTGqHLfffruaN2+uqVOnKjs7WzVr1tTy5cvzHJb6zDPPyN3dXR07dlSDBg30/fffa926derRo4ck6Z133tHBgwfVu3dvNWnSRL/88ovmzZunxo0bO+2Ru1H37t3l6uqqsWPH6qmnntLPP/+smTNnysfHx+kPH2VRnFwDBw5UXFycRo8erXHjxjnGFHSue1JSkuP77rvvvtOMGTN09913O04tKOq5CgwMVNOmTTV9+nTddNNNcnV1dbpAW3krKm95stlseuKJJ/Taa6/J3d1d3bt315dffqm//e1vklQun6cMoGqgxAKo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AAAAAKsoVol99913NXToULVr106rVq3SihUrNHDgQP3++++SpOzsbD344IPatWuXZs2apZUrVyojI0P9+vXTmTNnnLY1fvx4xcfHa9KkSVq3bp28vLw0aNAgHT161GlcXFycXnnlFY0ePVobNmxQWFiYRowYoZ07dzqNi4+PV1RUlPr376+EhAQNHDhQ0dHRWr58eVmeFwDlKPSs2QkAAABgFS52uz27sAHJycm64447NHXqVD355JP5jtm2bZuGDRumzZs3q2vXrpKk1NRUhYSEaMiQIZo1a5Yk6auvvlKXLl20cOFCDR8+XJKUmZmpTp06KSAgQO+9954k6fz582rTpo2ioqI0adL/jkPs37+/Lly4oIMHDzrWDQoKUq9evbR48WLHuHHjxmnHjh06duyY3NzcSvvcmOb48eNq0aKF2TFQiZR0TtSz2ZRqtzu+rirnm9qj7GZHqDJyv8aAxO8P5MWcQG7MCeRWFedEkXtiV61apRo1amjkyJEFjtmxY4caN27sKLCSVK9ePYWHh2v79u1O49zc3BQREeFY5urqqoiICO3evVtpaWmSpF27dik9PV2RkZFO9zNkyBB98803OnnypCTpiy++0IULF/KMi4yM1K+//qrPPvusqIcHoALsebd446pK2QYAAIB5iiyxn3/+uVq0aKH3339f7dq1U/369dW+fXstW7bMMSYpKUmtWrXKs26rVq10+vRpXb582THO19dXtWvXzjMuPT1dJ06ccIyrVauW/P3984yTpGPHjjnG3bi8oHEAzBXb3ewEAAAAsArXogb8/PPP+vnnnzV16lRNnTpVfn5+SkxM1PPPP6/MzEw98cQTSklJUbNmzfKs6+HhIen6RZ/c3d2VkpIim81W4LiUlBTHf+vVqycXF5cix0nKs83c4wCY69v6ZicAAACAVRRZYrOysnTp0iWtXLlS/fv3lyR169ZNP/74o+bNm6exY8caHtIox48fNztCgSpzNpijJHMitITjjXZ4qdRkQvHGVqbclVlle41ReTAvkBtzArkxJ5BbZZsTRZ2jW2SJvfXWW/X999+rR48eTst79OihTz75RD///LNsNpvs+VxgJPeeUpvNplOnThU4LmcPqs1mU2pqqrKzs532xuY3Trq+p7dRo0YFjitIZT2BuSqeXA1jlWZOVKY5VNwCK0lh28K4wFMxVabXGJUD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T1dkZKRiYmIc43766SfFxcXpkUcekZubW0mfFwDl6FJNsxMAAADAKsrtnNgdO3aocePGjgIrSfXq1VN4eLi2b9/uNM7NzU0RERGOZa6uroqIiNDu3buVlpYmSdq1a5fS09MVGRnpdD9DhgzRN998o5MnT0qSvvjiC124cCHPuMjISP3666/67LPPyushAiilrWsq9v44pBgAAMC6SlRiH3/8cd16661q3ry5Ro0apVOnTjluS0pKUqtWrfKs06pVK50+fVqXL192jPP19VXt2rXzjEtPT9eJEycc42rVqiV/f/884yTp2LFjjnE3Li9oHADzBD5tdgIAAABYRbFK7C233KKnnnpKb7zxhjZv3qznn39ee/fu1T333KPz589LklJSUmSz2fKs6+HhIen6RZ+KMy4lJcXx33r16snFxaXIcZLybDP3OADmeXGP2QkAAABgFcU6JzYkJEQhISGOr++++27ddddd6tmzp5YsWaIpU6YYFtBIx48fNztCgSpzNpiDOVEyVn++QmX9x4jSYV4gN+YEcmNOILfKNidatGhR6O0lurDTjdq1a6eAgAD961//knR9T2jO3tYb5d5TarPZnA5Dzj0uZw+qzWZTamqqsrOznfbG5jdOur6nt1GjRgWOy09RT45Zjh8/XmmzwRxVfU681KPi77MqP1/FVR0eI0qmqv+sQPljTiA35gRyq4pzoswXdsopmEFBQY7zU2+UlJQkHx8fubu7O8YlJyfrypUrecbVrFnTcQ5sUFCQ0tLS9MMPP+QZJ12/UnLOuBuXFzQOsKqqcBGjY2+YnQAAAABWUeoS++9//1vHjx93fG5snz59dPbsWe3fv98x5uLFi/rwww/Vp08fx7Lw8HBlZGRo06ZNjmWZmZnauHGjevTooVq1akmSevXqJTc3N61fv97pftevX6/WrVvLz89PktSxY0fVr18/33EeHh7q1KlTaR8igHJy/9CKv8+qUO4BAABQcsU6nPjxxx+Xr6+vbrvtNtWrV09Hjx7VvHnz5O3trbFjx0qS+vbtq44dO2rMmDGaNm2abDab5s6dq+zsbD3zzDOObYWEhCgiIkITJ05UZmamfH19tXz5ciUnJ2vp0qWOcZ6enho3bpzmzZsnd3d3hYSEaOPGjdq3b5/Wrl3rGOfm5qbJkycrOjpa3t7e6tatm/bt26dVq1Zp1qxZqlmT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Vn09AQAAzORanEGDBw/W4MGDnZZ16NBBYWFhSkxMdJTNkydP6vDhw/L395cktWnTRh06dNC7776rp556SpK0fft2ff7559q8ebO6du0qSQoLC1NISIhef/11zZo1S5L01VdfacOGDVq4cKGGDx8uSercubM6deqkl19+We+9954k6fz581qwYIGioqI0fvx4SVLXrl114sQJxcbG6p577inrcwSgjC6+LN0yyewUAAAAsIJSnxN76623SpJcXa/34B07digsLMxRYCXJz89Pd9xxh7Zv3+5YtmPHDjVu3NhRYCWpXr16Cg8PzzPOzc1NERERjmWurq6KiIjQ7t27lZaWJun6oc7p6emKjIx0yjdkyBB98803OnnyZGkfIoBy4h1tdgIAAABYRYlK7LVr15Senq7vv/9eUVFR8vLycuyhTUpKUqtWrfKs06pVKx07dszxdWHjTp8+rcuXLzvG+fr6qnbt2nnGpaen68SJE45xtWrVcirPOeMkOd03AHN0P2l2AvNwSDEAAED5KtbhxDl69uypI0eOSJL8/f21efNmeXp6Srp+3qzNZsuzjoeHh+x2u+PrlJQUNWvWLN9x0vWLPrm7uxe6vZzt5Py3Xr16cnFxKXRcfo4fP17gbWarzNmAkhr9T2lroNkpzFXe39OhBmwT1sC8QG7MCeTGnEBulW1OtGjRotDbS1RilyxZokuXLunkyZNasGCB/vSnP2nHjh3y9fUtU0izFPXkmOX48eOVNhtQGv2Hmp3AfEZ8T/NzArnx+wO5MSeQG3MCuVXFOVGiw4kDAwMVGhqqwYMHKzExUZcvX9b8+fMlSTabzWmPa47ce1QLG5dze3HG5exptdlsSk1NVXZ2dqHjgMrOyoedrk4wOwEAAACsotQXdrLZbPL393ecmxoUFJTnc2Ol6+esBgb+7zjCwsb5+PjI3d3dMS45OVlXrlzJM65mzZqOc2CDgoKUlpamH374Ic84SU73DcAcW1uanQAAAABWUeoSe+7cOR0/flzNmzeXJPXp00eHDh1yuhpwcnKy/vGPf6hPnz6OZX369NHZs2e1f/9+x7KLFy/qww8/dBoXHh6ujIwMbdq0ybEsMzNTGzduVI8ePVSrVi1JUq9eveTm5qb169c75Vu/fr1at24tPz+/0j5EAOVk7W1mJwAAAIBVFOuc2GHDhikkJERt2rRR3bp19f333+vNN9/UTTfd5Pj810cffVTLli3T0KFDNXnyZLm4uCguLk5NmjTRY4895thW37591bFjR40ZM0bTpk2TzWbT3LlzlZ2drWeeecYxLiQkRBEREZo4caIyMzPl6+ur5cuXKzk5WUuXLnWM8/T01Lhx4zRv3jy5u7srJCREGzdu1L59+7R27dryep4AlEF2rOQSa3YKc9nm22SPspsdAwAAoMorVokNCwvTxo0btXDhQmVkZKhJkya6++679eyzzzou6lSnTh1t3rxZkyZN0tixY5Wdna2uXbtq5syZjkOEJalGjRpat26dpkyZoujoaKWlpSksLExbtmyRj4+P0/0uWrRI06dP14wZM5Samqq2bdsqISFB7dq1cxoXExOjOnXqaPHixTp37pwCAgK0YsUKhYeHl/HpAVAeqnuBBQAAQPlxsdvt2UUPQ0WqilcIQ9mV54WdKtuez4eOckhxjvLaG1vPZlNqPhe/Q/XG7w/kxpxAbswJ5FYV50Spz4kFgOK6/1uzEwAAAMAqKLEADDdssNkJAAAAYBWUWKASsPJnxErS5jVmJwAAAIBVUGIBGG5pB7MTVB5W/4MFAACA0SixAAy318/sBJULRRYAAKD0KLEADHf2NbMTAAAAwCoosQAMd8sksxMAAADAKiixAAz3+GGzEwAAAMAqKLEADBd61uwElQ/nxQIAAJQOJRaA4cb0NzsBAAAArIISC8Bwe941OwEAAACsghILwHCx3c1OAAAAAKugxAIw3Lf1zU4AAAAAq6DEAjDc4aVmJwAAAIBVUGIBGK7JBLMTVE5coRgAAKDkKLGAyapDkXnuoNkJAAAAYBWUWACG875kdgIAAABYBSUWgOEm3Gt2gsrLNt9WLfbGAwAAlBdKLADDHV5idgIAAABYBSUWgOFG9zM7QeXH3lgAAIDiocQCJqouxeVSTbMTAAAAwCoosQAMt3WN2QkAAABgFZRYAIYLfNrsBAAAALAKSiwAw724x+wEAAAAsApKLAAAAACgyqDEAjDcSz3MTgAAAACroMQCMNyxN8xOUDVUl6tVAwAAlAUlFjBJdSos9w81O0HVUZ3mBQAAQGlQYgEYrm662QkAAABgFZRYAIZbusXsBAAAALAKSiwAw4WOMTsBAAAArIISC8Bwcz4yO0HVYptv49xYAACAAlBiARjubF2zEwAAAMAqKLEADDf3LrMTAAAAwCoosQAMd2aO2QkAAABgFZRYAIYLHW12AgAAAFgFJRYwQXW7aE/LX8xOUDVVt3kCAABQHJRYAIaL3Wt2AgAAAFgFJRaA4Xo8ZnYCAAAAWAUlFoDhlmw2OwEAAACsghILwHCHvc1OUHVxXiwAAIAzSiwAwy0LNTsBAAAArIISC8BwF182OwEAAACsghILwHDe0WYnAAAAgFVQYgEYrvtJsxNUbZwXCwAA8D+UWACGG/1PsxMAAADAKiixAAzXf6jZCao+9sYCAABcR4kFYLjVCWYnAAAAgFVQYoEKVh33qG1taXYC66iO8wcAAOBGlFgAhlt7m9kJrIECCwAAUIwSm5iYqIcfflht27ZVo0aNFBoaqpdeekmXLl1yGme32zV+/Hj5+/vL29tbAwYM0Ndff51ne1evXlVMTIwCAwPVqFEj9e7dWwcOHMgzLisrS3PnzlVwcLC8vLzUuXNnJSYm5psxPj5eYWFhatiwoUJDQ/XOO+8U9/EDqADZsWYnAAAAgFUUWWIXLFigm266SVOnTlVCQoJGjhyp5cuX609/+pOysrIkSdnZ2XrwwQe1a9cuzZo1SytXrlRGRob69eunM2fOOG1v/Pjxio+P16RJk7Ru3Tp5eXlp0KBBOnr0qNO4uLg4vfLKKxo9erQ2bNigsLAwjRgxQjt37nQaFx8fr6ioKPXv318JCQkaOHCgoqOjtXz58rI+NwDKiUus2QmshT2yAACgOnOx2+3ZhQ24cOGCGjRo4LRs7dq1euKJJ5SYmKhu3bpp27ZtGjZsmDZv3qyuXbtKklJTUxUSEqIhQ4Zo1qxZkqSvvvpKXbp00cKFCzV8+HBJUmZmpjp16qSAgAC99957kqTz58+rTZs2ioqK0qRJkxz3279/f124cEEHDx50rBsUFKRevXpp8eLFjnHjxo3Tjh07dOzYMbm5uZX1Oapwx48fV4sWLcyOAYNURAHJjq1cxfGhoxxSXN6yY6VUu93sGKhk+P2B3JgTyI05gdyq4pwock9s7gIrSbfffrsk6aeffpIk7dixQ40bN3YUWEmqV6+ewsPDtX37dseyHTt2yM3NTREREY5lrq6uioiI0O7du5WWliZJ2rVrl9LT0xUZGel0v0OGDNE333yjkydPSpK++OILXbhwIc+4yMhI/frrr/rss8+KengAKsD935qdAAAAAFZRqgs75ZzDGhgYKElKSkpSq1at8oxr1aqVTp8+rcuXLzvG+fr6qnbt2nnGpaen68SJE45xtWrVkr+/f55xknTs2DHHuBuXFzQOgLmGDTY7AQAAAKyixCX27Nmzevnll9W9e3e1b99ekpSSkiKbzZZnrIeHh6TrF30qzriUlBTHf+vVqycXF5cix0nKs83c4wCYa/MasxMAAADAKlxLMvjy5csaOnSoXF1dtWjRIqMyVZjjx4+bHaFAlTkbUFJLO5idwJr4OYH8MC+QG3MCuTEnkFtlmxNFnaNb7BL7+++/68EHH9TJkye1bds2NWnSxHGbzWZz7G29Ue49pTabTadOnSpwXM4eVJvNptTUVGVnZzvtjc1vnHR9T2+jRo0KHFeQynoCc1U8uRrFU12vKrvXz+wE1hS2LUz2KLvZMVCJ8PsDuTEnkBtzArlVxTlRrMOJMzIy9Oijj+rIkSPasGGD2rRp43R7UFCQ4/zUGyUlJcnHx0fu7u6OccnJybpy5UqecTVr1nScAxsUFKS0tDT98MMPecZJ/zsXNygoyGl5QeMAmOvsa2YnAAAAgFUUWWKzsrL0+OOPa9++fVq9erXCwsLyjOnTp4/Onj2r/fv3O5ZdvHhRH374ofr06eNYFh4eroyMDG3atMmxLDMzUxs3blSPHj1Uq1YtSVKvXr3k5uam9evXO93P+vXr1bp1a/n5+UmSOnbsqPr16+c7zsPDQ506dSr6GQBguFsmFT0GpVNd9+4DAIDqq8jDiSdMmKBNmzZpwoQJql27tg4dOuS4zdvbW02aNFHfvn3VsWNHjRkzRtOmTZPNZtPcuXOVnZ2tZ555xjE+JCREERERmjhxojIzM+Xr66vly5crOTlZS5cudYzz9PTUuHHjNG/ePLm7uyskJEQbN27Uvn37tHbtWsc4Nzc3TZ48WdHR0fL29la3bt20b98+rVq1SrNmzVLNmjXL63kCUAaPH5aWhZqdAgAAAFZQZIn9+OOPJUlz5szRnDlznG77y1/+ookTJ6pGjRpat26dpkyZoujoaKWlpSksLExbtmyRj4+P0zqLFi3S9OnTNWPGDKWmpqpt27ZKSEhQu3btnMbFxMSoTp06Wrx4sc6dO6eAgACtWLFC4eHhTuNGjhwpFxcXLVy4UG+88YZ8fHw0e/ZsjRo1qjTPBwADhJ6VlpkdwsJs822cGwsAAKoNF7vdnm12CDiriidXo2gVedhndqzkElthdwcT5H6NKbGQ+P2BvJgTyI05gdyq4pwo8efEAkBJ7XnX7AQAAACwCkosAMPFdjc7AQAAAKyCEgvAcN/WNzuB9XGVYgAAUF1QYgEY7vDSoseg7CiyAACgOqDEAjBckwlmJwAAAIBVUGIBGO65g2YnAAAAgFVQYgEYzvuS2QkAAABgFZRYAIabcK/ZCaoPzosFAABWR4kFYLjDS8xOUL1QZAEAgJVRYgEYbnQ/sxMAAADAKiixAAx3qabZCaon9sgCAAArosQCMNzWNWYnqH4osAAAwKoosQAMF/i02QkAAABgFZRYoAJU971iL+4xOwEAAACsghILABZW3f+AAgAArIcSC8BwL/UwOwEAAACsghILwHDH3jA7AQAAAKyCEgvAcPcPNTsBAAAArIISCxiMcxKluulmJ6jemIMAAMBKKLEADLd0i9kJQJEFAABWQYkFYLjQMWYnAAAAgFVQYgEYbs5HZicAAACAVVBiARjubF2zE0DikGIAAGANlFgAhpt7l9kJkIMiCwAAqjpKLGAgCsN1Z+aYnQAAAABWQYkFYLjQ0WYnwI344woAAKjKKLEADNfyF7MTIDeKLAAAqKoosQAMF7vX7AQAAACwCkosYBD2dP1Pj8fMTgAAAACroMQCMNySzWYnAAAAgFVQYgEY7rC32QmQH44WAAAAVRElFoDhloWanQAAAABWQYkFYLiLL5udAAAAAFZBiQVgOO9osxOgIBxSDAAAqhpKLADDdT9pdgIUhiILAACqEkosAMON/qfZCQAAAGAVlFgAhus/1OwEAAAAsApKLADDrU4wOwGKwiHFAACgqqDEAjDc1pZmJ0BxUGQBAEBVQIkFYLi1t5mdAAAAAFZBiQUMwB4tZ9mxZicAAACAVVBiARjOJdbsBCgu23wbf4QBAACVGiUWgOEeOmp2AgAAAFgFJRYoZ+zFyuv+b81OAAAAAKugxAIw3LDBZicAAACAVVBiARhu8xqzE6CkOKIAAABUVpRYAIZb2sHsBAAAALAKSiwAw+31MzsBSos9sgAAoLKhxALliDf8+Tv7mtkJUBo585l5DQAAKhNKLADD3TLJ7AQAAACwCkosAMM9ftjsBCgr9sYCAIDKolgl9syZM3r++efVu3dvNW7cWDabTcnJyXnGXb16VTExMQoMDFSjRo3Uu3dvHThwIM+4rKwszZ07V8HBwfLy8lLnzp2VmJiY733Hx8crLCxMDRs2VGhoqN555518x23dulVdunSRl5eX2rZtq9mzZ+vatWvFeXhAueBNfsFCz5qdAAAAAFZRrBJ74sQJbdq0STabTXfeeWeB48aPH6/4+HhNmjRJ69atk5eXlwYNGqSjR486jYuLi9Mrr7yi0aNHa8OGDQoLC9OIESO0c+dOp3Hx8fGKiopS//79lZCQoIEDByo6OlrLly93Grdr1y498sgjuv3227VhwwaNHTtWc+bM0bRp04r7PAAw0Jj+ZicAAACAVbjY7fbsogZlZWWpRo3rfXflypV6+umn9eWXX8rX19cx5quvvlKXLl20cOFCDR8+XJKUmZmpTp06KSAgQO+9954k6fz582rTpo2ioqI0adL/TpTr37+/Lly4oIMHDzrWDQoKUq9evbR48WLHuHHjxmnHjh06duyY3NzcJEldunRR3bp1tX37dse4V199VXPmzNF//vMfeXl5lfoJMsPx48fVokULs2OghCrTntjsWMkl1uwU/7PnXanHY2ansBazXmN7lL3i7xTFxu8P5MacQG7MCeRWFedEsfbE5hTYwuzYsUNubm6KiIhwLHN1dVVERIR2796ttLQ0Sdf3mqanpysyMtJp/SFDhuibb77RyZMnJUlffPGFLly4kGdcZGSkfv31V3322WeSpNOnT+urr77Kd1xGRoY+/vjj4jxEAAaK7W52ApSXyvTHGgAAUD2V24WdkpKS5Ovrq9q1azstb9WqldLT03XixAnHuFq1asnf3z/POEk6duyYY9yNy0s6zs/PT7Vr13aMA2Ceb+ubnQAAAABWUW4lNiUlRTabLc9yDw8Px+05/61Xr55cXFyKHCcpzzaLOy5nWc7tAMxzeKnZCQAAAGAVrmYHMNPx48fNjlCgypwNKKkmE8xOgPJkm2/TofsOmR0DBeD3B3JjTiA35gRyq2xzoqhzdMutxNpsNp06dSrP8pw9oTl7UG02m1JTU5Wdne20Nza/cZJkt9vVqFGjYo3LzW63O8blp7KewFwVT64GCvPcQWnuXWanQHniZ1TlxO8P5MacQG7MCeRWFedEuR1OHBQUpOTkZF25csVpeVJSkmrWrOk4BzYoKEhpaWn64Ycf8oyTpMDAQMe4G5eXdFxOlpxxAMzjfcnsBChvtvk2LvIEAABMUW4lNjw8XBkZGdq0aZNjWWZmpjZu3KgePXqoVq1akqRevXrJzc1N69evd1p//fr1at26tfz8/CRJHTt2VP369fMd5+HhoU6dOkmSmjZtqrZt2+Y7zs3NTb179y6vhwiglCbca3YCAAAAWEWxDydOTEyUJB05ckSS9Mknn6hBgwaqX7++7r77boWEhCgiIkITJ05UZmamfH19tXz5ciUnJ2vp0v9d1cXT01Pjxo3TvHnz5O7urpCQEG3cuFH79u3T2rVrHePc3Nw0efJkRUdHy9vbW926ddO+ffu0atUqzZo1SzVr1nSMnTp1qiIjIxUVFaVBgwbp6NGjmjNnjsaOHVvlPiMWVRN7pAp3eIkUOsbsFDCCbb6Nz44FAAAVqtgl9tFHH3X6Ojo6WpLUuXNnbdu2TZK0aNEiTZ8+XTNmzFBqaqratm2rhIQEtWvXzmndmJgY1alTR4sXL9a5c+cUEBCgFStWKDw83GncyJEj5eLiooULF+qNN96Qj4+PZs+erVGjRjmNu+eeexQfH69XX31Va9asUcOGDfXcc89pwgSuJgNUBqP7mZ0ARqLIAgCAiuRit9uzzQ4BZ1Xx5OrqrrLtic2OlVxizU7xPy0uSMcbmJ3CWirba0yJrRz4/YHcmBPIjTmB3KrinCi3c2IBoCBb15idAAAAAFZBiQXKqLLtha2MAp82OwGMxtWKAQBARaHEAjDci3vMTgAAAACroMQCAAAAAKoMSixQBhw+WTwv9TA7ASoK3xMAAMBolFgAhjv2htkJUJE4PxYAABiJEgvAcPcPNTsBzECRBQAARqDEAjBc3XSzEwAAAMAqKLFAKbGXqfiWbjE7AczC9wkAAChvlFgAhgsdY3YCmIkiCwAAyhMlFoDh5nxkdgIAAABYBSUWgOHO1jU7AczGFYsBAEB5ocQCMNzcu8xOAAAAAKugxAIw3Jk5ZicAAACAVVBigVLgsMiSCR1tdgJUFhxWDAAAyooSC8BwLX8xOwEAAACsghILwHCxe81OAAAAAKugxAIwXI/HzE6AyoZDigEAQGlRYoES4s13yS3ZbHYCVEY530t8TwEAgJKgxAIw3GFvsxOgsqLAAgCAkqLEAiXAG+7SWRZqdgIAAABYBSUWgOEuvmx2AlR2fPQOAAAoLkosAMN5R5udAFUFRRYAABSFEgsUE2+uS6/7SbMToCrhew0AABSGEgvAcKP/aXYCVDUUWQAAUBBKLADD9R9qdgIAAABYBSUWgOFWJ5idAFVRzsWe2CsLAABuRIkFioE30WWztaXZCQAAAGAVrmYHAGB9a28zOwGquhv/kGSPspuWAwAAmI89sUAR2AtbdtmxZicAAACAVVBiARjOJdbsBLAS/rAEAED1RokFYLiHjpqdAAAAAFbBObFAIdjjUz7u/5bzYlG+OEcWAIDqiz2xAAw3bLDZCWBl/LEJAIDqhRILFIA3xuVn8xqzE8Dq+H4FAKD6oMQCMNzSDmYnQHVgm2+jzAIAUA1QYgEYbq+f2QlQnVBmAQCwNkosAMOdfc3sBKiOKLIAAFgTVycGcuGNb/m7ZZLZCVBd5Xw/cwVjAACsgz2xAAz3+GGzE6C6449TAABYByUWuAFvdI0RetbsBADnygIAYBWUWACGG9Pf7ATA/1BmAQCo2iixwP+PN7XG2fOu2QmAvCizAABUTZRYAIaL7W52AqBgFFkAAKoWSiwg3sQa7dv6ZicACsdeWQAAqg4+YgfVHm9cjXd4qdRkgtkpgKLl/nnAR/MAAFD5sCcW1RoFtmJQYFFVsYcWAIDKhxKLaos3phXnuYNmJwDKJqfM8nMDAADzcTgxAMN5XzI7AVB+biyyHG4MAEDFo8Si2mFPSsWbcK/ZCQBjcA4tAAAVjxKLaoPyap7DS6TQMWanAIxHqQUAwHiWOSf29OnTeuSRR9SsWTM1bdpUw4cP16lTp8yOhUqCAmuu0f3MTgCY48Zzafk5BABA+bDEntgrV66of//+qlWrlt588025uLgoLi5O/fr104EDB1SnTh2zI8IkvGmsHC7VNDsBUDkU9DOJPbYAABSfJUpsfHy8Tp48qcOHD8vf31+S1KZNG3Xo0EHvvvuunnrqKZMToiJRXCufrWukwKfNTgFUXoX93KLgAgDgzBIldseOHQoLC3MUWEny8/PTHXfcoe3bt1NiLY7SWvlRYIHSK8nPuEP3HTIuCAAAlYSL3W7PNjtEWbVs2VJ9+/bV/PnznZZHR0dr06ZN+v77780JBgAAAAAoV5a4sFNKSopsNlue5R4eHrLb7RWeBwAAAABgDEuUWAAAAABA9WCJEmuz2fLd41rQHloAAAAAQNVkiRIbFBSkpKSkPMuTkpIUGBhoQiIAAAAAgBEsUWL79OmjQ4cO6eTJk45lycnJ+sc//qE+ffqYFyyX06dP65FHHlGzZs3UtGlTDR8+XKdOnSrWulevXlVMTIwCAwPVqFEj9e7dWwcOHDA4MYxWljlhs9ny/Xf06FGDU8MoZ86c0fPPP6/evXurcePGstlsSk5OLta6WVlZmjt3roKDg+Xl5aXOnTsrMTHR4MSoCGWZF8HBwfn+nNi6davBqWGUxMREPfzww2rbtq0aNWqk0NBQvfTSS7p06VKR6/JewprKMid4L2FNu3btUr9+/dSyZUs1bNhQrVu31ogRI/Ld6Zeb3W7X+PHj5e/vL29vbw0YMEBff/11BaQuGUtcnfi3337T3XffrT/84Q+aPHmyXFxcFBcXp8uXL+vAgQNyd3c3O6KuXLmiu+++W7Vq1XLKeOXKFR04cEB16tQpdP3HH39cH330kaZPny4/Pz8tW7ZMn3zyiXbu3Knbbrutgh4FylNZ54TNZtPQoUP12GOPOS1v06aNateubWR0GOTTTz/VyJEj1a5dO127dk27d+/Wl19+KV9f3yLXnT59uhYsWKCYmBiFhITogw8+UHx8vNatW6d77rmnAtLDKGWZF8HBwWrZsqX++te/Oi1v0aIFp9tUUb169ZKPj4/69u0rb29vHT16VK+88opatmypnTt3qkaNgvdP8F7CmsoyJ3gvYU0JCQn68ssvFRoaqvr16+v06dOaP3++zpw5owMHDqhZs2b5rpedna0+ffroxx9/1LRp02Sz2TR37lwlJSXp008/VZMmTSr4kRTMEiVWkk6dOqVJkyZp7969ys7OVteuXTVz5sxi/ZKvCG+99ZYmT56sw4cPOz7P9uTJk+rQoYNeeumlQj/L9quvvlKXLl20cOFCDR8+XJKUmZmpTp06KSAgQO+9916FPAaUr7LMCen6L54JEyZoypQpFREXFSArK8vxZmPlypV6+umni1VWzp8/rzZt2igqKkqTJk1yLO/fv78uXLiggwcPGpobxirtvJCul9g777xTS5cuNTomKsiFCxfUoEEDp2Vr167VE088ocTERHXr1i3f9XgvYV2lnRMS7yWqk+PHjyssLEzTp0/X+PHj8x2zbds2DRs2TJs3b1bXrl0lSampqQoJCdGQIUM0a9asioxcKEscTixJTZs21d/+9jedOnVKp0+f1po1aypNgZWkHTt2KCwszFFWJMnPz0933HGHtm/fXuS6bm5uioiIcCxzdXVVRESEdu/erbS0NMNywzhlmROwpsL+Wl6YXbt2KT09XZGRkU7LhwwZom+++cbpVAtUPaWdF7Cm3GVFkm6//XZJ0k8//VTgeryXsK7SzglUL7feequk69/3BdmxY4caN27sKLCSVK9ePYWHh1e696b8ZqwgSUlJatWqVZ7lrVq10rFjx4pc19fXN89hHa1atVJ6erpOnDhRrllRMcoyJ3IsX75cDRs2VOPGjdWvXz/2uFVTSUlJqlWrltMfRCQ55ldx5xOs6cMPP1Tjxo3VsGFD9erVi/NhLSjnvNbCLmbJe4nqpThzIgfvJazr2rVrSk9P1/fff6+oqCh5eXlp8ODBBY4v7L3p6dOndfnyZSPjlkjBVRzlqqCP+/Hw8Mj344GKu27O7ah6yjInpOt72cLDw9WoUSOdOnVKb7zxhvr376+NGzeqS5cu5R8YlVZKSorq1asnFxcXp+X8jEB4eLhuv/12+fr66vz581q6dKmGDx+uJUuW5Nlzj6rp7Nmzevnll9W9e3e1b9++wHG8l6g+ijsnJN5LWF3Pnj115MgRSZK/v782b94sT0/PAsenpKTke75szs8Ju91eKa41JFFigSor9zluffv21Z133qm4uDh9+OGHJqUCUJnMnj3b6ev7779fvXr10rRp0yixFnD58mUNHTpUrq6uWrRokdlxUAmUdE7wXsLalixZokuXLunkyZNasGCB/vSnP2nHjh2V6pTL0uJw4gpis9ny3btW0F9Gi7uu9L+/jqBqKcucyE/dunV177336l//+lfZw6FKsdlsSk1NVXa283X6+BmB3G666SYNHDhQZ86c0c8//2x2HJTB77//rgcffFAnT57U+++/X+RVQ3kvYX0lnRP54b2EtQQGBio0NFSDBw9WYmKiLl++rPnz5xc4vqifE5XpqvaU2AoSFBSU72czJSUlFXm+QlBQkJKTk3XlypU869asWTPPeXCoGsoyJwqT+5BSWF9QUJDS0tL0ww8/OC3PmV9lmU+wLn5WVF0ZGRl69NFHdeTIEW3YsEFt2rQpch3eS1hbaeZEYfj5YD02m03+/v6Fnv9e2HtTHx+fSnMosUSJrTB9+vTRoUOHnK4SmpycrH/84x/q06dPoeuGh4crIyNDmzZtcizLzMzUxo0b1aNHD9WqVcug1DBSWeZEfi5evKiPPvrIcUVCVB+9evWSm5ub1q9f77R8/fr1at26tfz8/MwJhkonMzNTH3zwgXx8fOTl5WV2HJRCVlaWHn/8ce3bt0+rV69WWFhYsdbjvYR1lXZO5If3EtZ17tw5HT9+XM2bNy9wTJ8+fXT27Fnt37/fsezixYv68MMPS/Xe1EicE1tBHn30US1btkxDhw7V5MmT5eLiori4ODVp0sTpA6Z//PFHtW/fXi+88IL+8pe/SJJCQkIUERGhiRMnKjMzU76+vlq+fLmSk5P57L8qrCxzYsGCBTp+/Li6dOniuBjDwoUL9d///pc5UcUlJiZKkuNCDJ988okaNGig+vXr6+6775Yk1a9fXw899JAWLlwoSfL09NS4ceM0b948ubu7KyQkRBs3btS+ffu0du1aUx4Hyldp5kVCQoK2b9+u3r17q0mTJjp//rzefvttffnll1q+fLkpjwNlN2HCBG3atEkTJkxQ7dq1dejQIcdt3t7eatKkCe8lqpnSzgneS1jXsGHDFBISojZt2qhu3br6/vvv9eabb+qmm27SU089JUnav3+/BgwYoIULF+qhhx6SdP2c6I4dO2rMmDGaNm2abDab5s6dq+zsbD3zzDNmPqQ8KLEVpE6dOtq8ebMmTZqksWPHKjs7W127dtXMmTOdds1nZ2fr2rVrysrKclp/0aJFmj59umbMmKHU1FS1bdtWCQkJateuXQU/EpSXssyJgIAAbd26VVu3btXFixdVt25d3XHHHVqwYIE6dOhgxsNBOXn00Uedvo6OjpYkde7cWdu2bZN0/ZL5165dcxoXExOjOnXqaPHixTp37pwCAgK0YsUKhYeHV0xwGKo08yLnisRTp05VSkqKateurfbt2+v9999Xz549Ky48ytXHH38sSZozZ47mzJnjdNtf/vIXTZw4kfcS1Uxp5wTvJawrLCxMGzdu1MKFC5WRkaEmTZro7rvv1rPPPuu4qFN+c6JGjRpat26dpkyZoujoaKWlpSksLExbtmyRj4+PWQ8nXy52uz276GEAAAAAAJiPc2IBAAAAAFUGJRYAAAAAUGVQYgEAAAAAVQYlFgAAAABQZVBiAQAAAABVBiUWAAAAAFCoM2fO6Pnnn1fv3r3VuHFj2Ww2JScnl2mbhw4d0qBBg9SsWTN5e3vrrrvu0vvvv1/kepRYAAAAAEChTpw4oU2bNslms+nOO+8s8/Y++ugj9e3bVw0bNtTbb7+tNWvW6JFHHtHVq1eLXJfPiQUAAAAAFCorK0s1alzfB7py5Uo9/fTT+vLLL+Xr61vibV26dEnt27fX4MGD9corr5R4ffbEAgAAAAAKlVNgi3LhwgU9++yzatWqlRo2bKiwsDCtWLHCacymTZt04cIFPfXUU6XLUqq1AAAAAAC4wcWLFxUeHq6PP/5Yf/3rX7V+/XqFh4frueee05IlSxzjPv/8c3l4eOibb77RXXfdpfr166tNmzZ65ZVXdO3atSLvx9XIBwEAAAAAqB4WL16sU6dO6eDBg/rjH/8oSerevbtSU1P16quv6s9//rNcXV31888/6/fff9eoUaP0/PPPq127dvr73/+u2bNnKzU1VTNnziz0ftgTCwAAAAAos127dqlDhw7y9fVVZmam41/Pnj3166+/KikpSdL182uvXr2qF154QePHj1eXLl00ZcoUPfroo3r77beVmppa6P2wJxYAAAAAUGbnz5/XiRMn1KBBg3xv//XXXyVJt956qySpR48eTrf36NFD77zzjpKSknTHHXcUeD+UWAAAAABAmd16663y9PQs8IrDAQEBkqSgoKBCt1PURaQosQAAAACAMuvZs6eWLl0qHx8feXp6FjjuvvvuU1xcnHbv3q02bdo4lu/atUs333yzWrVqVej9UGIBAAAAAEVKTEyUJB05ckSS9Mknn6hBgwaqX7++7r77bj355JPauHGj+vTpoyeffFIBAQG6cuWKjh8/roMHD2rt2rWSpNatW2vo0KF6+eWXlZWVpZCQEO3du1crV67U888/L3d390JzuNjt9mxDHykAAAAAoMqz2Wz5Lu/cubO2bdsmSbLb7Xr11Ve1bds2/fTTT6pXr55atGihfv366cknn3Ssk56erlmzZmnt2rU6d+6cmjVrplGjRumJJ54oMgclFgAAAABQZfAROwAAAACAKoMSCwAAAACoMiixAAAAAIAqgxILAAAAAKgyKLEAAAAAgCqDEgsAAAAAqDIosQAAAACAKoMSCwAAAACoMiixAAAAAIAq4/8D7tESFyC1GqsAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_subsample(None, data_sub_adj2)" ] }, { "cell_type": "markdown", "id": "d287335e", "metadata": {}, "source": [ "## 5. Annex: piecewise sampling\n", "\n", "A different, and more direct approach, is to subsample with different ratios on the three regions" ] }, { "cell_type": "code", "execution_count": 62, "id": "0d57d187", "metadata": {}, "outputs": [], "source": [ "def subsample_frac(data: np.ndarray, frac: float) -> np.ndarray:\n", " return data[uniform.rvs(size=len(data)) < frac]\n", "\n", "def subsample_byregion(data: np.ndarray, frac: float, q1: float, q2: float) -> np.ndarray:\n", " data1 = subsample_frac(data[data=qr[0]) & (data<=qr[2])], (1-q1-q2)/0.5*frac)\n", " data3 = subsample_frac(data[data>qr[2]], q2/0.25*frac)\n", " return np.hstack([data1, data2, data3])" ] }, { "cell_type": "code", "execution_count": 63, "id": "1cb0056e", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 2.15 s, sys: 5.13 s, total: 7.28 s\n", "Wall time: 7.29 s\n" ] } ], "source": [ "%%time\n", "data_piece = subsample_byregion(data, 0.20, 0.15, 0.10)" ] }, { "cell_type": "code", "execution_count": 64, "id": "3cd4b533", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "0.20003226" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(data_piece)/len(data)" ] }, { "cell_type": "code", "execution_count": 65, "id": "1ec4f255", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Probability mass below Pa: 0.1500345994191137\n", "Probability mass above Pb: 0.10010635284528606\n" ] } ], "source": [ "check_regions(data_piece)" ] }, { "cell_type": "markdown", "id": "df483672", "metadata": {}, "source": [ "This method obtains also the desired values. However, the resulting distribution is quite different:" ] }, { "cell_type": "code", "execution_count": 66, "id": "f2231d55", "metadata": {}, "outputs": [ { "data": { "image/png": "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tCpUqKAKFSpowIABif7eXLx4Uc8++6xKly6tsmXLavDgwdq5c2ei3x0gN2NkF0CKwsPDlTdvXhUoUEA//vij2rZtq5o1a+qNN97QAw88oHfffVePP/64du/erVq1atnXu3Llivr27auhQ4dq0qRJeuCBB+zPHTx4UD/++KMmTZokFxcXLViwQE8++aQOHjzo8OE/vqioKHXp0kXHjx/X6NGjVa1aNR0+fFhz5szR5cuXFRISogIFCuidd95Ry5YtFRISoilTpuj8+fMaOHCgWrdurf79+ye57TFjxujff//VDz/8oHXr1kmSXFxc5OnpqXbt2mnVqlUOH9Cio6O1Zs0a+4fy5KxevVrjxo1T9+7d1blzZ508eVL9+vXTtWvXUjzmX3/9tQYMGKDnnntO06ZNU0xMjP7zn/8oMjJS0r1pbwMGDFB0dLRef/11SVKhQoUctjFgwAB16dJFq1evTvW8t/nz56t69epavHixLly4oGnTpqlz58765ptv5OzsnOK68aWlrvgGDRqkzZs3a8SIEWrQoIG+/fZbvfbaawoLC9M777zj0HbevHl6+OGHtWjRIl24cEETJ07UgAEDtGPHjlTrOnnypMaOHauXXnpJJUqU0Lvvvqu+ffuqePHiaty4sSSlqW+/9tpr2rBhg+bNm6f33ntPXl5e8vb2VkxMjIKDg/XTTz9p3Lhxqlatmj799FNNmDBB//77r/2Lnjhjx45VixYttGTJEnuAmDJlihYtWmT/mZ89e1YhISH67bfftHv3buXNmzfZ1xcWFqaOHTvqxRdfVJ48eXTo0CG98MILunXrlvr27evQdv369apUqZJmzpypu3fvatKkSerevbsOHz5sH/2cMWOGXnvtNQ0ZMkSPPPKI/u///k9PPfVUqsdZki5fvixXV1dNnjxZ7u7u+vvvv7Vo0SI9+uijOnz4sPLnz68xY8aoVq1aGjt2rObOnSs/Pz/lz59f3377rUaNGqVZs2apTp06kqTKlSun+/i8//77KleunKZNm6YCBQqoZMmSKdackf5/+vRptWjRQiVKlND06dPl7u6ujz76SL169dLatWvVtm1bSfemvT/22GMqX768pk+fLm9vb508edIhgL/77rsaMWKEnn76aY0ZM0bXrl3TzJkz7V8eFSpUSEFBQVq2bJlOnTql0qVLKyIiQseOHdMDDzygAwcO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yZIlFR0drTx58qQYdOJe25tvvploSqwkh1tbBQUF6c0339S3336r3377TY0bN5anp6cqV66sAwcO6MCBAymO6sZt7+WXX9bLL7+sv/76S1u3btUrr7wiFxcXvfLKKypWrJjy58+vXbt2Jbl+Sl8kODk5qU+fPurTp48iIiK0b98+TZw4UX379tXevXslSfnz50/0PpLS++GFCxdUoEABh8eS7H8rUns9e/fu1ZUrV7RixQqVKlXKvp3MGHXOSL2ZydPTUxEREbp7965D4E3r7yqQWxB2AaRJgQIF1KBBA/3888/y8/NLU+BKzpEjR3T69Gn7VOarV69q9+7dKZ7f1bx5c23btk0FChSwTy1LSmxsrAYNGiRXV1dt3bpVs2fP1pQpUxQUFJTiqKirq6tu3ryZ5HOFCxfWk08+qZUrV+r69evq0qVLqvfcLFWqlHx8fLRlyxaHe85u27YtXUGkYMGCat26tcLCwvTSSy/p0qVLcnd3l6urq/799980bycl27Zt07hx4+w/02+++UZnzpxxmPpbunRp/frrrw7rJbyiqaQ01xV3/vOHH36oUaNG2Zdv3LhR0r3R7cxy+vRpHT582P56oqOjtXXrVtWtW1d58uS5774dGBioN954Q1u2bLFPw457LS4uLqpXr16K6zdr1kx58uTRqVOn1KxZs3TtO+5De/wPuxEREdq5c2e6thOnWrVqKlCggLZs2eIwI+Kjjz5Kcz0JL0oWd7Xu1MTdginh7+H9HJ+0SEv/T6h58+Y6fPiwfH19U5wyXb9+fW3YsEFjxoxJsl29evVUqFAhnTx5Ut27d0+xzsDAQOXNm1fTp09X8eLF7VPQGzdurI8//ljHjh3Ts88+m5aXLOneF4RDhw7Vxo0b7dNsmzdvrtdff11Xrly5rxkxNptNnTt31pEjRxy+oEzr+0iczZs328+Ble69XxQsWND+2lN7PUn9fvz+++/69ttvUxxxz6j01Hu/AgICFB0dre3btztMn96yZUum7wvIyQi7ANIsJCRE7dq1U+fOndWzZ095enrq33//1dGjRxUdHZ2mC9hI96ZZde7cWS+99JL9asw3btxI8SqSXbt21dq1a9WxY0cNGTJENWrU0J07d/Tnn39q165dWrt2rdzc3LRo0SLt379f27Ztk81m05QpU3Tw4EH169dPn3/+ebIfTCtXrqzLly9r+fLlql27tlxdXVWtWjX7888++6z91j99+vRJ9TXmyZNHY8aM0QsvvKDBgwerS5cuOnnypF5//fVUg3JISIguXLigoKAgeXl56ezZs1qyZIlq1Khhn8ZduXJlLV++XB999JHKly+vggULpjh9MSXXrl1T9+7d1adPH128eFFTp07Vgw8+6DDK2blzZ82dO1dz585VQECAvvrqK3344YeJtpXWuqpWraonnnhCM2fOVFRUlB5++GF99913mjNnjp544gmHY3+/PDw81KdPH40bN07u7u5699139fvvv+u1116zt7mfvt2yZUs1aNBAI0aM0MWLF1WlShXt3r1bq1ev1ogRI1I9X7x8+fIaPny4xowZo99//12BgYHKnz+/Tp8+rf3796tnz572C2kl9PDDD6tw4cIaNWqUxo0bpxs3bmjOnDkqXry4rly5ku5jZbPZNGjQIL322msqWLCgHnnkEf3www8pXoU3vhYtWuj111/Xa6+9prp16+rAgQPaunVrmtatWLGi8uXLpzVr1qho0aJydXVVxYoV7+v4pEVa+n9C48ePV/PmzdW2bVv1799fZcqUUUREhH777TeFhYXZLzb16quvql27dmrZsqWef/55eXt7KywsTMeOHdOcOXNUuHBhTZ06VaNGjdK///6rFi1aqHDhwjp37pwOHTqkRo0a2WeRFC5cWH5+fvriiy/0+OOP20ewGzVqZL+tWmrHoWXLlmrTpo2qVq2qAgUK6NChQ/r555/trzUoKEhPPPGEevXqpSFDhti/EPrrr7+0e/duvfLKK6pYsWKS2x42bJgKFiyoevXqyd3dXX/88YfWr1/v8AVF586d9fzzz2vcuHFq3bq1jh07luRtsuKsWrVKMTExqlOnjvbu3avVq1frpZdeUpEiRdL0epo2bap8+fJp4MCBev755/X3339rxowZ8vHxSfWWQBmRWr2Z6ZFHHlH9+vU1bNgw/fvvv6pQoYK2bt1qv9L3/XwhDVgJYRdAmtWqVUv79u3TrFmzNHbsWF25ckXu7u6qWbNmqlcYji8wMFCNGjXS1KlTdfbsWVWuXFkbN25M9kOUdO+b+Y8++kjz58/XqlWrFB4eLjc3N5UvX16tWrWSi4uLfvzxR02bNk0jRoywjwzGnb/YpEkTTZgwIdH9LeP06tVLR44c0dSpUxUZGanSpUvr2LFj9uerV6+uihUrqlChQg63WEpJr169dP36dS1evFgffvihqlSponfeeUcDBgxIcT1/f38tWbJE48eP1+XLl1WiRAk1a9ZMEyZMsLcZPny4fv/9d73wwgu6du2aAgMD03QbnqS8+OKLOnnypAYPHqwbN24oKChIs2fPdhgNGTFihCIjI7Vs2TK9/vrratmypZYsWeJw4Zb01vXmm2+qXLlyWrNmjebOnSsvLy8NHz7c4WqumaFChQp64YUXNG3aNP3xxx8qU6aMli9f7hAM7qdv58mTR+vXr9e0adO0YMECXbp0SWXKlFFISIj9vrypmTx5sh566CG98847euedd+Tk5KRSpUqpSZMmevDBB5Ndz93dXe+9954mTpyoZ555Rl5eXho4cKAuX77scFXk9Ii7Ovbq1au1bNky1a1bVx988IHq16+f6rpjxoxRZGSk3nzzTd2+fVuBgYH68MMP0/Q7U6xYMc2ZM0evv/662rVrp+joaH388ccKCgrK8PFJi7T0/4RKly6tzz//XDNnztS0adN08eJFFStWTFWqVHEIyXXq1NEnn3yi6dOna8yYMbpz545Kly5tv2q3dO/Ls1KlSumNN97Qpk2bFBUVpZIlS6pBgwaJplIHBQXphx9+cOi7jRs3lpOTk3x8fOxXC09Ow4YNtXnzZr3++uuKiopSuXLlNH36dA0cONDeZunSpVqyZInWrFmj1157Ta6uripdurSaN2+e5PnvcR5++GGtXbtW69ev15UrV+Tl5aWuXbs63Hane/fuOnPmjN577z2tXLlSDRo00Nq1a5M9H/v999/XmDFj7F8MjBo1yuFL0dReT5UqVbRs2TJNnz5dTz31lMqXL68pU6bos88+08GDB1M8VhmRWr2Zbc2aNRozZoymTJmiPHnyqE2bNho/frwGDx6c6peqQG7hFBEREZt6MwDIHDVq1FCDBg2SvcWQWYWGhqpevXpasGBBum7HA8CcwsPD5efnpzfeeIPfadyXGTNmaNasWbp48WKqV9vPaqNHj9batWv1559/2k8NAHIzRnYBIAVnzpzRyZMnNWPGDHl5eaV6YSoAALLD2rVrdeXKFVWpUkV37tzRZ599puXLl+uFF14g6AL/RdgFgBSsXr1as2fPVsWKFbVs2bJ03b8TAICsUqBAAb311lsKCwvT7du3VbZsWU2ePFkvvPCC0aUBpsE0ZgAAAACA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hw/zXgEH/P1AQvQJ64uMjHS4zU1qbt26pfz582dhRdazcOFCTZo0SXv27FFAQIDR5WQ6o/pEevtufIzsArmImW4zlJSCzZoZXQIAAECK7ty5o+joaIdl165d0zvvvKNixYox4moiaQq7e/fuVfv27fXQQw/Jw8NDVatWVe/evXX8+HGHdqdPn1avXr1UpkwZlS5dWj169NCpU6cSbS8iIkJDhw5VhQoV5O3trY4dO+qXXxKPLt26dUuTJk1S5cqV5eXlpZYtW+rQoUOJ2sXExGjevHmqUaOGPD09FRgYqK1btyb5WlatWqWAgAB5eHjI398/S04kB6wiu8Px1QTvKQAAAGYTFham2rVr65VXXtHKlSs1c+ZMBQYGKjw8XBMnTpSLi4vRJeK/0hR2L1++rFq1amnOnDn66KOPNHnyZB0/flwtW7bUX3/9JUm6ceOGOnTooNDQUL355pt6++23dfLkSbVv317Xr1+3bys2NlbdunXT3r17NXv2bK1evVp3795V+/btdeaM4wfroUOHatWqVRo/frzWr18vT09PdenSRUePHnVoFxISopkzZ2rAgAHauHGjAgIC1Lt3b+3evduh3apVqzR8+HB16NBBmzZt0uOPP66RI0dq+fLlGTp4ADKXy8KFRpcAAACQInd3dwUEBGjjxo0aO3asFi5cKA8PD61YsUJ9+/Y1ujzEk6arMT/xxBN64oknHJbVrVtXAQEB2rp1qz2UhoWF6ciRI6pQoYIkqVq1aqpbt65WrFih559/XpK0c+dOffPNN9q2bZsaN24sSQoICJCfn58WLFig2bNnS5KOHTumjRs3OtxTKjAwUPXr19f06dP1wQcfSJIuXLighQsXavjw4Ro6dKgkqXHjxjp58qSmTJmiVq1aSbp3X61p06YpODhYkyZNsrc7d+6cQkJC1KtXLzk7O2f8SAK4b3n+/tvoEgAAAFJUrFgxBstyiAyfs1usWDFJst+oedeuXQoICLAHXeneDZ0ffvhh7dy5075s165dKlmypD3oSveumNa6detE7ZydndW5c2f7snz58qlz587at2+fbt++LeneFOs7d+4oODjYob6uXbvq119/VVhYmCTpu+++08WLFxO1Cw4O1qVLl/T1119n9FAAOYLZz9eVpFshIUaXAAAAAItIV9iNjo7WnTt39Mcff2j48OHy9PS0j/geP35cVapUSbROlSpVdOLECfvjlNqdPn1a165ds7crW7as3NzcErW7c+eOTp48aW/n6urqELLj2kmy7zvu/OKE+07YDoAj24oz2RaUCzZpki37AQAAgPWlaRpznObNm+vHH3+UJFWoUEHbtm1TiRIlJN07r9dmsyVap2jRooqIiLA/vnz5ssqUKZNkO+nexasKFiyY4vbithP3b5EiRRLdvDmpdpISbTNhO8CKcsKoriTdWLDA6BIAAABgEekKu0uWLNHVq1cVFhamhQsXqlOnTtq1a5fKli2bVfWZRmhoqNElJMmsdcFYifuFW5Lt7m+bmc/14kXdpk9nKv///st7BRKiTyAh+oS15c+fX66urula59atW1lUDXIqI/rElStXdP78+WSfT+ke4ekKu5UrV5Yk+fv7q0WLFqpZs6Zef/11zZ8/XzabzWEEN07CEdqU2sU9H/dvUrctimsXNyJrs9kUGRmp2NhYh9HdpNpJ90aOvby8km2XHDPeaJ0bwCMpSfaLg/c/shtw0E0RfUrd93ZSUrBbN137/vss3UduxXsF4uPvBxKiT1hfZGSk8ufPn+b2t27dSld7WJ9RfaJw4cIqXbp0htbN8AWqbDabKlSoYD931tfXN9F9d6V758rGheTU2vn4+KhgwYL2duHh4bpx40aidi4uLvZzdH19fXX79m39+eefidpJ/wvovr6+DsuTawfAOARdAAAAZJYMh93z588rNDRU5cuXlyS1adNGhw8ftl/9WJLCw8P17bffqk2bNvZlbdq00dmzZ3Xw4EH7sitXruiTTz5xaNe6dWvdvXtXW7ZssS+LiorS5s2b1axZM/s0jBYtWsjZ2VkbNmxwqG/Dhg2qWrWqypUrJ0mqV6+eihcvnmS7okWLqn79+hk9FICp5ZTzdSXJdcYMo0sAAACARaRpGvPTTz8tPz8/VatWTYUKFdIff/yhN998U3nz5rXfP/eZZ57RsmXL1L17d02YMEFOTk4KCQlRqVKl1KdPH/u22rZtq3r16um5557T1KlTZbPZNG/ePMXGxmrYsGH2dn5+furcubPGjRunqKgolS1bVsuXL1d4eLiWLl1qb1eiRAkNGTJE8+fPV8GCBeXn56fNmzfrwIEDWrdunb2ds7OzJkyYoJEjR8rb21tNmjTRgQMHtGbNGs2ePVsuLi73fTABAAAAAOaQprAbEBCgzZs3a9GiRbp7965KlSqlRo0a6cUXX7RfnKpAgQLatm2bxo8fr4EDByo2NlaNGzfWjBkz7FOTJSlPnjxav369Jk6cqJEjR+r27dsKCAjQxx9/LB8fH4f9Ll68WNOmTdOrr76qyMhIVa9eXZs2bVKtWrUc2k2aNEkFChTQ22+/rfPnz6tixYpauXKlWrdu7dCub9++cnJy0qJFi/TGG2/Ix8dHc+bMUb9+/TJy7ABkstvjxhldAgAAQCKDBg3SunXrkrz2kFXNmDFDs2bN0k8//ZTpFySuUaOGypQpox07dmTqdhNKU9gdPny4hg8fnmq70qVL67333ku1XdGiRbV48WItXrw4xXYPPPCApk+frunTp6fYLm/evBo9erRGjx6d6r779OnjMNIMIO1sK85k6UWqCtaty3m7AAAYwPa6zegSHEQMjzC6BFhAhs/ZBYDMdmP9eqNLAAAAgEUQdgGYx7VrRlcAAAAAiyDsAkiXrLy6s1u8i9QBAABk1K1btzRjxgz5+/urZMmSKlOmjBo2bKhJkyZJunfXGJvNphlJ3AlixowZstlsCg8PT/TcxYsX9dxzz6l8+fLy9vZWhw4d9OOPPyZqt27dOj3yyCMqU6aMvL295efnp/79++vixYv2Nt9//70GDRqkunXrqmTJkvLx8dGjjz6qjz/+ONH2Bg0aJJvNpkuXLmnQoEGqUKGCfHx81L17d/3zzz+SpJUrV6pevXry9PRUQEBAovNh47/mTZs2qWHDhvL09FT16tU1Y8YMRUVFpenYRkZG6uWXX1bt2rXl4eGhBx98UM8++6zDXXninD59Wr1791aZMmVUunRpBQcHJ7plbFZK0zm7AHKmnHTbIUm69sUXRpcAAAAsYNSoUVqzZo26deumIUOGKCoqSn/88YcOHDhwX9vt0qWLihYtqpdeeknnz5/XsmXL9Nhjj2n37t2qWrWqJOmDDz7QoEGD1KBBA40fP14PPPCATp8+rT179ujChQtyd3eXJG3fvl2hoaHq1KmTSpcurUuXLmndunXq2bOnli1bpieffDLJ/Xt7e2v8+PE6efKklixZoh49eqh9+/ZauXKlevbsKVdXVy1ZskTPPPOMjhw5Yr8Va5xdu3bprbfeUv/+/eXh4aFdu3Zp1qxZOnXqlN58880UX39kZKQeffRRnT59Wk8//bSqVKmiv//+W8uXL1fz5s31+eefq0yZMpKkiIgItW3bVmfOnFHfvn1VuXJlHTp0SO3bt9fNmzfv6+eQVoRdAKaRf8IE3QoJMboMAACQw23fvl0tW7bU22+/nanbjbsgr5OTkySpffv2atasmSZNmqQPP/zQvu9ChQrp448/Vr58/4tbEyZMcNjWqFGj9PLLLzsse+6559S4cWPNnTs3ybBbt25dzZ0712HZm2++qXPnzumrr75S4cKFJUmNGzdWo0aNtGrVqkT7+Pnnn7Vv3z77HW4GDBigHj166P3331efPn0UEBCQ7OufPn26wsLCtGfPHtWoUcO+vHv37goMDNSMGTP01ltvSZLeeOMN/fXXX1q0aJF69OghSerXr59eeumlTP+5JIdpzABMI8bLy+gSAACABRQuXFi//fabfv3110zd7rBhw+xBV5Jq1aqlZs2aaf/+/br232uPFC5cWDdu3NCnn36q2NjYZLdVoEAB+//fuHFDly5d0s2bN9W4cWOdOHFCV65cSbTOoEGDHB43aNBAktStWzd70JWk6tWrq3Dhwvrjjz8SbaNZs2YOt3J1cnLSsP+eSrZ9+/Zk642NjdXGjRvVsGFDeXt7699//7X/V6BAAfn7++vzzz+3t9+xY4c8PDz01FNPOWwnLXf5ySyM7AIWldOmMEvSnaFDjS4BAABYwIwZMzRw4EA1bNhQ5cqVU1BQkFq3bq02bdooT56Mj/c99NBDiZZVrlxZ+/bt06lTp1SlShWNHDlSX331lZ5++mkVK1ZMgYGBatmypTp16qRChQrZ17tw4YJeffVV7dy5UxcuXEi03cjISIcAKynRlGSbzSZJ9qnD8RUpUkSXLl1K82uQlOR5t3EuXryoS5cuad++fXrwwQeTbBP/2IaFhalOnTrKmzevQxsvLy8VKVIk2f1kJsIugHTLqvvtFvL11dXjxzN9uwAAIHdp166djh49qt27d+vQoUPav3+/3nvvPTVo0EBbt251GJ1NKDo6+r72/eCDD+rbb7/VF198oS+++EKHDh3SCy+8oBkzZmjnzp0qX768YmNj1alTJ/3nP//RwIEDVbt2bRUuXFh58+bV2rVrtXHjRsXExCTadsLgmNrylEaWM6pp06bZOjp7Pwi7AEzjWrypLwAAAPejaNGiCg4OVnBwsGJjYzVlyhQtWLBAO3fuVPPmzSVJly9fTrReSqOb//nPfxKd03rixAnlzZtXpUuXti9zdXVVq1at1KpVK0nS7t271bVrVy1evFhz587Vzz//rJ9//lljxozR+PHjHba3evXqjL7kNPnPf/6TaNmJEyckJR45jq948eIqUqSIrl69qqZNm6a6n3LlyumPP/5QdHS0Qxj/+++/FRkZme66M4JzdgFkSFZMk87z+++Zvk0AAJC7REdHKyIiwmGZk5OTatasKelewC1UqJA8PT315ZdfOox+hoWFJbplT3wLFixwaP/jjz9q//79atKkiQoWLChJ+vfffxOt5+fnZ9+39L+R2IQjr7/++muK581mhs8//9zhdkmxsbFasGCBpHsj4snJkyePunbtqu+//15bt25Nsk386dht27bV+fPntW7dOoc2r7/+esaLTydGdgELyonn60pS/pkzdT0oyOgyAABADnb16lX5+vqqTZs2qlmzptzd3RUeHq53331XNptNrVu3liT1799fr776qp544gm1a9dO586d04oVK1SlShX98MMPSW771KlT6ty5s9q0aaN//vlHy5Yt0wMPPKCpU6fa23Tq1ElFihRRgwYN5OPjo8jISL3//vtycnJScHCwpHvnyFapUkVvvPGGbt68qUqVKun333/XypUrVbVq1STv3ZtZqlevrg4dOqh///7y9PTUzp07tX//fgUHB6tevXoprjtx4kR988036t27tzp16iR/f3+5uLjo1KlT2rNnj/z8/OxXYx42bJg2btyoYcOG6aeffpKvr68OHjyow4cPq3jx4ln2+uIj7AIwjespfJMKAACQFm5ubho0aJC++OIL7d+/X9evX5enp6fatGmjESNGqGTJkpLuXRX4ypUrWr9+vQ4ePKjKlStr4cKF+vHHH5MNux9++KHGjx+vGTNm6NatW/L399e0adNUvXp1e5tnn31Wmzdv1sqVK3X58mUVK1ZMNWvW1KxZs9S4cWNJ90Z2169fr0mTJmndunW6ceOGqlSpojfffFM///xzlobdNm3aqFKlSpo3b55+//13lShRQqNHj9aYMWNSXbdIkSL69NNPtWjRIm3ZskU7d+5Uvnz55O3trfr166tXr172tjabTbt27dKECRP0wQcfSJIaNmyojz/+WB06dMiy1xefU0REROaftYxsERoaqkqVKhldBkwmNDRUAQfd0tQ29sVqcpr/S4b3ldkXqXpg2DDd/O80GmSOIjab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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_subsample(data, data_piece, 'piecewise subsampling')" ] }, { "cell_type": "markdown", "id": "4692bdb9", "metadata": {}, "source": [ "The main differences with Gaussian subsampling are:\n", " * There are discontinuities at the region boundaries, so that perplexity values at both sides of the boundary get quite different sampling ratios. We lose the gradual transitions of Gaussian sampling\n", " * Inside each region the pattern is roughly equivalent to the original shape, though obviously subsampled. This means that we keep the long tail behaviour of the original distribution. While for Gaussian weighting the shape of the weighting function cuts down the long tails, concentrating the distribution near the quartile boundaries" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.12" } }, "nbformat": 4, "nbformat_minor": 5 }