{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Naive Bayes and logistic regression\n", "\n", "> In this post, we will develop the naive bayes classifier for iris dataset using Tensorflow Probability. This is the Program assignment of lecture \"Probabilistic Deep Learning with Tensorflow 2\" from Imperial College London.\n", "\n", "- toc: true \n", "- badges: true\n", "- comments: true\n", "- author: Chanseok Kang\n", "- categories: [Python, Coursera, Tensorflow_probability, ICL]\n", "- image: images/naive_bayes_tfp.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Packages" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "import tensorflow_probability as tfp\n", "\n", "from sklearn.metrics import accuracy_score\n", "from sklearn import datasets, model_selection\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "tfd = tfp.distributions\n", "\n", "plt.rcParams['figure.figsize'] = (10, 6)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensorflow Version: 2.5.0\n", "Tensorflow Probability Version: 0.13.0\n" ] } ], "source": [ "print(\"Tensorflow Version: \", tf.__version__)\n", "print(\"Tensorflow Probability Version: \", tfp.__version__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Iris Dataset" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "\"Drawing\"\n", "\"Drawing\"\n", "\"Drawing\"\n", "

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You will use the [Iris dataset](https://scikit-learn.org/stable/auto_examples/datasets/plot_iris_dataset.html). It consists of 50 samples from each of three species of Iris (Iris setosa, Iris virginica and Iris versicolor). Four features were measured from each sample: the length and the width of the sepals and petals, in centimeters. For a reference, see the following papers:\n", "\n", "- R. A. Fisher. \"The use of multiple measurements in taxonomic problems\". Annals of Eugenics. 7 (2): 179–188, 1936.\n", "\n", "Your goal is to construct a Naive Bayes classifier model that predicts the correct class from the sepal length and sepal width features. Under certain assumptions about this classifier model, you will explore the relation to logistic regression." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load and prepare the data\n", "\n", "We will first read in the Iris dataset, and split the dataset into training and test sets. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Load the dataset\n", "\n", "iris = datasets.load_iris()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Use only the first two features: sepal length and width\n", "\n", "data = iris.data[:, :2]\n", "targets = iris.target" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Randomly shuffle the data and make train and test splits\n", "\n", "x_train, x_test, y_train, y_test = model_selection.train_test_split(data, targets, test_size=0.2)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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V1ZW+iuvvNLjtauuusqvuOIKd3ffsmWLv/322z2289RTT3lVVZUfeuihPn36dH/xxRfdPdjHk046yT/88EN3d29sbPSbbrqpy/bd3ZcsWeI1NTW+adMmf+edd/yAAw7wZcuW+bx58/z888/vWO+tt95yd/f169d3tJ1zzjl+zz335NcRIWQ6bgR/mt0jJ+pMXKRIRo0K1y5STMW4UjRp0qQefzoFMHHiRG688UZmzJjB8uXL2WmnntNt1NbW8sorr3DxxRfz5ptvMnHiRJ5//nkWLlzI0qVLmThxIrW1tSxcuJBXXnmlx/sfffRRTjvtNHbccUeGDRvG5z//eR555BHGjBnDgw8+yCWXXMIjjzzC8OHDAXjooYc45JBDGDNmDH/4wx947rnnCtcRBaQkLlIkTU1QWdm1rbIyaBcZaGvWhGvvjx133DFj+1FHHcWiRYsYMWIEU6dO5eabb+auu+6itraW2trajkmv2pPv7NmzOeecc/j973+Pu/PFL36Rp59+mqeffpoXXniBGTNm5BzTJz/5SZYtW8aYMWP4/ve/z8yZM3n//feZNm0a8+bNY/ny5VxwwQWxLZijJC5SJPX10NwMqRSYBc/NzUG7yEAbyCtFra2t7L777lxwwQWcf/75LFu2jNNOO60jMU+YMIHHHnuMDRs2APDhhx+ycuVKUqkUdXV1zJs3j9dffx2AN998k9bWYMKviooKNm/eDMCRRx7J3XffTVtbG++++y533XUXRx55JH//+9+prKzknHPO4eKLL2bZsmUdCXu33XZj06ZNzJs3L/pO6Keil10VGczq65W0JZ6amoK/luh8Sb1YV4oefvhhfvrTn1JRUcGwYcO4+eabe6zz8ssv09jYiLvz0UcfceKJJ3L66adjZlxxxRV8+tOf5qOPPqKiooJf/OIXpFIpGhoaOOiggxg3bhwtLS1MnTqVSZMmAXD++edz8MEHc//993PxxRczZMgQKioqmDNnDjvvvDMXXHABNTU17LHHHkycODH6TugnlV0VESlRzz//PJ/61KdyXr+lJbgHvmZNcAbe1KRfOgdCpuOWreyqzsRFRATQlaIk0j1xERGRhFISFxERSSglcRERkYRSEhcREUkoJXEREZGEUhIXEZHIFGIq0vPOO49f/epXXdruvvtuTjjhhLxiW7JkCd/4xjf69d7q6mreeOONvD6/EJTERUSkqMJORXr22Wdz2223dWm77bbbOPvss0N9XncTJkzg5z//eU7biEq22HKlJC4iIoFVLXB3NdwyJHheVbi5SPOZirSuro6//OUvrF27FgimD12wYAGnnnoqS5cu5eijj2b8+PF85jOf6VhnypQpXHTRRUyYMIFrrrmGO++8k5qaGsaOHctRRx3VEdNJJ50EwKZNmzjvvPMYM2YMBx10EL/5zW8AuPXWWxkzZgw1NTVccsklGfct0xSnq1evpqampmOdq666qqOme/fY8qFiLyIiEiTsxQ2wNV13ta01WAYYXZgKMMuWLWPFihU9ZjK75ZZb+MxnPsP06dPZunUrbd2mUysrK+P000/njjvu4MILL2T+/PlMmTKFHXbYga9//ev893//N1VVVdx+++1Mnz6dG264AQhqrLdX+BwzZgz3338/I0aM4K233uoR2w9/+EOGDx/O8uXLAdiwYQN///vfueSSS1i6dCm77LILn/70p7n77rs59dRTO963dOlSbrzxRp588kncnUMOOYSjjz6aXXbZpde+6BxbPnQmLiIi8Mz0bQm83da2oL1A8pmKtPMl9fZL6S+88AIrVqzg+OOPp7a2liuuuILXXnut4z1nnnlmx8+TJ09m6tSpXHvttWzdurXH9hcsWMBXv/rVjuVddtmFP//5z0yZMoWqqirKy8upr69n0aJFXd6XbYrTvnSOLR86ExcREWjLMudotvZ+6Gsq0nvvvZepU6fyrW99i5122onLL78cgOuuu47DDz+ctWvX8swzz/D4449z22238de//pUDDzyQJ554os/P++Uvf8mTTz7Jvffey/jx41m6dGnB9iuT8vJyPvroo47l7lOZZuuLsHQmLiIiUJllztFs7QWUy1SkZsaZZ57JF7/4RU444QSGDh3Kfvvtx7p16zqS+ObNm3nuuecyfsbLL7/MIYccwsyZM6mqquLVV1/t8vrxxx/PL37xi47lDRs2MGnSJP74xz/yxhtvsHXrVm699VaOPvroLu/LNsXp7rvvzuuvv8769ev54IMP+N3vflfgXgsoiYuICIxtgrLKrm1llUF7xB5++GHGjh3LwQcfzO23386FF16Ycb2zzz6bZ555pmNU+nbbbce8efO45JJLGDt2LLW1tVlHvF988cUdA9QOP/xwxo4d2+X173//+2zYsKFj8NtDDz3Ennvu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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the training data\n", "\n", "labels = {0: 'Iris-Setosa', 1: 'Iris-Versicolour', 2: 'Iris-Virginica'}\n", "label_colours = ['blue', 'orange', 'green']\n", "\n", "def plot_data(x, y, labels, colours):\n", " for c in np.unique(y):\n", " inx = np.where(y == c)\n", " plt.scatter(x[inx, 0], x[inx, 1], label=labels[c], c=colours[c])\n", " plt.title(\"Training set\")\n", " plt.xlabel(\"Sepal length (cm)\")\n", " plt.ylabel(\"Sepal width (cm)\")\n", " plt.legend()\n", " \n", "plt.figure(figsize=(8, 5))\n", "plot_data(x_train, y_train, labels, label_colours)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Naive Bayes classifier\n", "\n", "We will briefly review the Naive Bayes classifier model. The fundamental equation for this classifier is Bayes' rule:\n", "\n", "$$\n", "P(Y=y_k | X_1,\\ldots,X_d) = \\frac{P(X_1,\\ldots,X_d | Y=y_k)P(Y=y_k)}{\\sum_{k=1}^K P(X_1,\\ldots,X_d | Y=y_k)P(Y=y_k)}\n", "$$\n", "\n", "In the above, $d$ is the number of features or dimensions in the inputs $X$ (in our case $d=2$), and $K$ is the number of classes (in our case $K=3$). The distribution $P(Y)$ is the class prior distribution, which is a discrete distribution over $K$ classes. The distribution $P(X | Y)$ is the class-conditional distribution over inputs.\n", "\n", "The Naive Bayes classifier makes the assumption that the data features $X_i$ are conditionally independent give the class $Y$ (the 'naive' assumption). In this case, the class-conditional distribution decomposes as\n", "\n", "$$\n", "\\begin{aligned}\n", "P(X | Y=y_k) &= P(X_1,\\ldots,X_d | Y=y_k)\\\\\n", "&= \\prod_{i=1}^d P(X_i | Y=y_k)\n", "\\end{aligned}\n", "$$\n", "\n", "This simplifying assumption means that we typically need to estimate far fewer parameters for each of the distributions $P(X_i | Y=y_k)$ instead of the full joint distribution $P(X | Y=y_k)$.\n", "\n", "Once the class prior distribution and class-conditional densities are estimated, the Naive Bayes classifier model can then make a class prediction $\\hat{Y}$ for a new data input $\\tilde{X} := (\\tilde{X}_1,\\ldots,\\tilde{X}_d)$ according to\n", "\n", "$$\n", "\\begin{aligned}\n", "\\hat{Y} &= \\text{argmax}_{y_k} P(Y=y_k | \\tilde{X}_1,\\ldots,\\tilde{X}_d) \\\\\n", "&= \\text{argmax}_{y_k}\\frac{P(\\tilde{X}_1,\\ldots,\\tilde{X}_d | Y=y_k)P(Y=y_k)}{\\sum_{k=1}^K P(\\tilde{X}_1,\\ldots,\\tilde{X}_d | Y=y_k)P(Y=y_k)}\\\\\n", "&= \\text{argmax}_{y_k} P(\\tilde{X}_1,\\ldots,\\tilde{X}_d | Y=y_k)P(Y=y_k)\n", "\\end{aligned}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define the class prior distribution\n", " \n", "We will begin by defining the class prior distribution. To do this we will simply take the maximum likelihood estimate, given by\n", "\n", "$$\n", "P(Y=y_k) = \\frac{\\sum_{n=1}^N \\delta(Y^{(n)}=y_k)}{N},\n", "$$\n", "\n", "where the superscript $(n)$ indicates the $n$-th dataset example, $\\delta(Y^{(n)}=y_k) = 1$ if $Y^{(n)}=y_k$ and 0 otherwise, and $N$ is the total number of examples in the dataset. The above is simply the proportion of data examples belonging to class $k$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You should now write a function that builds the prior distribution from the training data, and returns it as a [`Categorical`](https://www.tensorflow.org/probability/api_docs/python/tfp/distributions/Categorical) Distribution object.\n", "\n", "* The input to your function `y` will be a numpy array of shape `(num_samples,)`\n", "* The entries in `y` will be integer labels $k=0, 1,\\ldots, K-1$\n", "* Your function should build and return the prior distribution as a `Categorical` distribution object\n", " * The probabilities for this distribution will be a length-$K$ vector, with entries corresponding to $P(Y = y_k)$ for $k=0,1,\\ldots,K-1$\n", " * Your function should work for any value of $K\\ge 1$\n", " * This Distribution will have an empty batch shape and empty event shape" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def get_prior(y):\n", " \"\"\"\n", " This function takes training labels as a numpy array y of shape (num_samples,) as an input.\n", " This function should build a Categorical Distribution object with empty batch shape \n", " and event shape, with the probability of each class given as above. \n", " Your function should return the Distribution object.\n", " \"\"\"\n", " probs = np.unique(y, return_counts=True)[1] / len(y)\n", " distribution = tfd.Categorical(probs=probs)\n", " return distribution" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# Run your function to get the prior\n", "\n", "prior = get_prior(y_train)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the prior distribution\n", "\n", "labels = ['Iris-Setosa', 'Iris-Versicolour', 'Iris-Virginica']\n", "plt.bar([0, 1, 2], prior.probs.numpy(), color=label_colours)\n", "plt.xlabel(\"Class\")\n", "plt.ylabel(\"Prior probability\")\n", "plt.title(\"Class prior distribution\")\n", "plt.xticks([0, 1, 2], labels)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define the class-conditional densities\n", "\n", "We now turn to the definition of the class-conditional distributions $P(X_i | Y=y_k)$ for $i=0, 1$ and $k=0, 1, 2$. In our model, we will assume these distributions to be univariate Gaussian:\n", "\n", "$$\n", "\\begin{aligned}\n", "P(X_i | Y=y_k) &= N(X_i | \\mu_{ik}, \\sigma_{ik})\\\\\n", "&= \\frac{1}{\\sqrt{2\\pi\\sigma_{ik}^2}} \\exp\\left\\{-\\frac{1}{2} \\left(\\frac{x - \\mu_{ik}}{\\sigma_{ik}}\\right)^2\\right\\}\n", "\\end{aligned}\n", "$$\n", "with mean parameters $\\mu_{ik}$ and standard deviation parameters $\\sigma_{ik}$, twelve parameters in all. We will again estimate these parameters using maximum likelihood. In this case, the estimates are given by\n", "\n", "$$\n", "\\begin{aligned}\n", "\\hat{\\mu}_{ik} &= \\frac{\\sum_n X_i^{(n)} \\delta(Y^{(n)}=y_k)}{\\sum_n \\delta(Y^{(n)}=y_k)} \\\\\n", "\\hat{\\sigma}^2_{ik} &= \\frac{\\sum_n (X_i^{(n)} - \\hat{\\mu}_{ik})^2 \\delta(Y^{(n)}=y_k)}{\\sum_n \\delta(Y^{(n)}=y_k)}\n", "\\end{aligned}\n", "$$\n", "\n", "Note that the above are just the means and variances of the sample data points for each class." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You should now write a function the computes the class-conditional Gaussian densities, using the maximum likelihood parameter estimates given above, and returns them in a single, batched `MultivariateNormalDiag` Distribution object. \n", "\n", "* The inputs to the function are \n", " * a numpy array `x` of shape `(num_samples, num_features)` for the data inputs\n", " * a numpy array `y` of shape `(num_samples,)` for the target labels\n", "* Your function should work for any number of classes $K\\ge 1$ and any number of features $d\\ge 1$" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "def get_class_conditionals(x, y):\n", " \"\"\"\n", " This function takes training data samples x and labels y as inputs.\n", " This function should build the class-conditional Gaussian distributions above. \n", " It should construct a batch of distributions for each feature and each class, using the \n", " parameter estimates above for the means and standard deviations.\n", " The batch shape of this distribution should be rank 2, where the first dimension corresponds\n", " to the number of classes and the second corresponds to the number of features.\n", " Your function should then return the Distribution object.\n", " \"\"\"\n", " counts = np.zeros(3)\n", " loc = np.zeros((3, 2))\n", " scale_diag = np.zeros((3, 2))\n", " for i in range(2):\n", " for c_k in range(3):\n", " counts[c_k] = np.sum(np.where(y==c_k))\n", " loc[c_k, i] = np.mean(x[np.where(y==c_k), i])\n", " scale_diag[c_k, i] = np.std(x[np.where(y==c_k), i])\n", " distribution = tfd.MultivariateNormalDiag(loc=loc, scale_diag=scale_diag)\n", " \n", " return distribution" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Run your function to get the class-conditional distributions\n", "\n", "class_conditionals = get_class_conditionals(x_train, y_train)\n", "class_conditionals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can visualise the class-conditional densities with contour plots by running the cell below. Notice how the contours of each distribution correspond to a Gaussian distribution with diagonal covariance matrix, since the model assumes that each feature is independent given the class." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the training data with the class-conditional density contours\n", "\n", "def get_meshgrid(x0_range, x1_range, num_points=100):\n", " x0 = np.linspace(x0_range[0], x0_range[1], num_points)\n", " x1 = np.linspace(x1_range[0], x1_range[1], num_points)\n", " return np.meshgrid(x0, x1)\n", "\n", "def contour_plot(x0_range, x1_range, prob_fn, batch_shape, colours, levels=None, num_points=100):\n", " X0, X1 = get_meshgrid(x0_range, x1_range, num_points=num_points)\n", " Z = prob_fn(np.expand_dims(np.array([X0.ravel(), X1.ravel()]).T, 1))\n", " Z = np.array(Z).T.reshape(batch_shape, *X0.shape)\n", " for batch in np.arange(batch_shape):\n", " if levels:\n", " plt.contourf(X0, X1, Z[batch], alpha=0.2, colors=colours, levels=levels)\n", " else:\n", " plt.contour(X0, X1, Z[batch], colors=colours[batch], alpha=0.3)\n", "\n", "plt.figure(figsize=(10, 6))\n", "plot_data(x_train, y_train, labels, label_colours)\n", "x0_min, x0_max = x_train[:, 0].min(), x_train[:, 0].max()\n", "x1_min, x1_max = x_train[:, 1].min(), x_train[:, 1].max()\n", "contour_plot((x0_min, x0_max), (x1_min, x1_max), class_conditionals.prob, 3, label_colours)\n", "plt.title(\"Training set with class-conditional density contours\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Make predictions from the model\n", "\n", "Now the prior and class-conditional distributions are defined, you can use them to compute the model's class probability predictions for an unknown test input $\\tilde{X} = (\\tilde{X}_1,\\ldots,\\tilde{X}_d)$, according to\n", "\n", "$$\n", "P(Y=y_k | \\tilde{X}_1,\\ldots,\\tilde{X}_d) = \\frac{P(\\tilde{X}_1,\\ldots,\\tilde{X}_d | Y=y_k)P(Y=y_k)}{\\sum_{k=1}^K P(\\tilde{X}_1,\\ldots,\\tilde{X}_d | Y=y_k)P(Y=y_k)}\n", "$$\n", "\n", "The class prediction can then be taken as the class with the maximum probability:\n", "\n", "$$\n", "\\hat{Y} = \\text{argmax}_{y_k} P(Y=y_k | \\tilde{X}_1,\\ldots,\\tilde{X}_d)\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You should now write a function to return the model's class probabilities for a given batch of test inputs of shape `(batch_shape, 2)`, where the `batch_shape` has rank at least one. \n", "\n", "* The inputs to the function are the `prior` and `class_conditionals` distributions, and the inputs `x`\n", "* Your function should use these distributions to compute the probabilities for each class $k$ as above\n", " * As before, your function should work for any number of classes $K\\ge 1$\n", "* It should then compute the prediction by taking the class with the highest probability\n", "* The predictions should be returned in a numpy array of shape `(batch_shape)`" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "def predict_class(prior, class_conditionals, x):\n", " \"\"\"\n", " This function takes the prior distribution, class-conditional distribution, and \n", " a batch of inputs in a numpy array of shape (batch_shape, 2).\n", " This function should compute the class probabilities for each input in the batch, using\n", " the prior and class-conditional distributions, according to the above equation.\n", " Note that the batch_shape of x could have rank higher than one!\n", " Your function should then return the class predictions by taking the class with the \n", " maximum probability in a numpy array of shape (batch_shape,).\n", " \"\"\"\n", " class_probs = class_conditionals.log_prob(x[:, None])\n", " joint_likelihood = tf.add(tf.cast(class_probs, dtype=tf.float64), tf.math.log(prior.probs)[tf.newaxis, ...])\n", " norm_factor = tf.math.reduce_logsumexp(joint_likelihood, axis=-1, keepdims=True)\n", " log_prob = joint_likelihood - norm_factor\n", " y = np.argmax(np.exp(log_prob), axis=-1)\n", " return y" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# Get the class predictions\n", "\n", "predictions = predict_class(prior, class_conditionals, x_test)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test accuracy: 0.7667\n" ] } ], "source": [ "# Evaluate the model accuracy on the test set\n", "\n", "accuracy = accuracy_score(y_test, predictions)\n", "print(\"Test accuracy: {:.4f}\".format(accuracy))" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the model's decision regions\n", "\n", "plt.figure(figsize=(10, 6))\n", "plot_data(x_train, y_train, labels, label_colours)\n", "x0_min, x0_max = x_train[:, 0].min(), x_train[:, 0].max()\n", "x1_min, x1_max = x_train[:, 1].min(), x_train[:, 1].max()\n", "contour_plot((x0_min, x0_max), (x1_min, x1_max), \n", " lambda x: predict_class(prior, class_conditionals, x), \n", " 1, label_colours, levels=[-0.5, 0.5, 1.5, 2.5],\n", " num_points=500)\n", "plt.title(\"Training set with decision regions\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Binary classifier\n", "\n", "We will now draw a connection between the Naive Bayes classifier and logistic regression.\n", "\n", "First, we will update our model to be a binary classifier. In particular, the model will output the probability that a given input data sample belongs to the 'Iris-Setosa' class: $P(Y=y_0 | \\tilde{X}_1,\\ldots,\\tilde{X}_d)$. The remaining two classes will be pooled together with the label $y_1$." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "# Redefine the dataset to have binary labels\n", "\n", "y_train_binary = np.array(y_train)\n", "y_train_binary[np.where(y_train_binary == 2)] = 1\n", "\n", "y_test_binary = np.array(y_test)\n", "y_test_binary[np.where(y_test_binary == 2)] = 1" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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wQKvqanx119/fYfnrrvuOr/66qvd3X3r1q3+0Ucf7bCd5557zmtra/3www/36dOn+8svv+zuwT6eeuqp/tlnn7m7+9SpU33WrFkdtu/u3tzc7PX19b5x40bfsGGDDx482BctWuTz5s3z8847r229Dz/80N3d161b17Zs0qRJPn/+/MIaQooi2+80wVezd8iJ+iQuUiIDB0ZbLsVXiqsho0aN2uHrQQAjR47ktttu46qrrmLJkiXsttuOQ0o0NDTw+uuvc8kll/D+++8zcuRIXnzxRR599FEWLlzIyJEjaWho4NFHH+X111/f4fVPPfUUp59+Orvuuit9+/bl7/7u73jyyScZOnQoDz/8MJdeeilPPvkku+++OwALFixg9OjRDB06lD/84Q8sW7aseA0hJaEkLlIi11wDNTUdl9XUBMulNN58M9ry7th1112zLj/mmGN44okn2G+//Zg8eTK3334799xzDw0NDTQ0NLQN7NSafGfOnMmkSZN44IEHcHfOOeccFi9ezOLFi1mxYgVXXXVV3jF94QtfYNGiRQwdOpTLL7+cGTNmsHnzZqZNm8a8efNYsmQJ559/vgrmpJCSuEiJTJwITU1QVwdmwc+mpmC5lEY5r4asWrWKffbZh/PPP5/zzjuPRYsWcfrpp7cl5sbGRv74xz/ywQcfAPDZZ5+xfPly6urqGDNmDPPmzePdd98F4P3332fVqmBQq969e7NlyxYAjj76aO699142bdrExx9/zD333MPRRx/NO++8Q01NDZMmTeKSSy5h0aJFbQl77733ZuPGjcybNy/+RpCiK3nZVZGebOJEJe1yuuaa4BsB7S+pl+pqyGOPPcaPfvQjevfuTd++fbn99tt3WOe1115j6tSpuDvbtm3jlFNO4YwzzsDMuPrqqznxxBPZtm0bvXv35oYbbqCuro4pU6Zw6KGHMnz4cObMmcPkyZMZNWoUAOeddx6HHXYYDz30EJdccgm9evWid+/e3Hjjjeyxxx6cf/751NfX8/nPf56RI0fG3whSdCq7KiKp9uKLL3LIIYfkvf6cOcE98DffDD6BX3ON/rGSZMn2O52r7Ko+iYtIj6KrIVJJdE9cREQkpZTERUREUkpJXEREJKWUxEVERFJKSVxERCSllMRFRApUjKFIzz33XH7+8593WHbvvfdy8sknFxRbc3MzF154YbdeO2jQIN57772C3j+XLVu2MHz48Ejv+eUvf5kPP/ywy21/73vf47LLLuuwbPHixRxyyCG88847nHnmmZHjzee9r7jiCh555JHI2y6EkriISAyiDkU6YcIE7rzzzg7L7rzzTiZMmBDp/TI1Njbys5/9LK9txCVbbE899RRHHnlkXq9vLX7zwAMPsMcee3S5/oQJE9pGamvV2pb77rtv1up0udqvVT7vPWPGDMaOHdtlfMWkJC4iPUuMY5EWMhTpmDFjeOmll1izZg0QDB/6yCOP8JWvfIWFCxdy7LHHMmLECE466aS2dY477jguvvhiGhsbuf766/nNb35DfX09w4YN45hjjmmL6dRTTwVg48aNnHvuuQwdOpRDDz2Uu+++G4A77riDoUOHUl9fz6WXXpp137INcbpy5Urq6+vb1rnuuuvaarpnxpbpwQcf7PQqw8qVKzn44IP5+te/Tn19PW+99Vbbp/RcQ6u2+sIXvkC/fv145pln2pbdddddTJgwoUPMv/zlLxk/fjwnnHACY8aMYdOmTXzta19j8ODBnH766YwePbqtpn3re69cuZJDDjmE888/nyFDhnDiiSfyySefADB58uS2fxCeffZZjjjiCIYNG8aoUaPYsGEDK1eu5Oijj2b48OEMHz480ljzuajYi4j0HHPmdKy7umpVMA9FqwCzaNEili5dusNIZr/+9a856aSTmD59Oi0tLWzKGE6tqqqKM844g7vuuouLLrqI++67j+OOO45ddtmFCy64gN/97nfU1tYyd+5cpk+fzi9+8QsgqLHemmiGDh3KQw89xH777Zf10u/3v/99dt99d5YsWQLABx98wDvvvMOll17KwoUL6devHyeeeCL33nsvX/nKV9pet3DhQm677TaeeeYZ3J3Ro0dz7LHH0q9fv07bon1smRYsWMCVV17Z6etfeeUVZs2axeGHH95h+YMPPsi+++7Lf/3XfwGwfv36HV7bemVj9OjR/PnPf2bPPffkoIMOYuXKlR3WW7RoES+88AJ77rkn1113Hf369WP58uUsXbqUhoaGnHHdcccd3HzzzXzta1/j7rvvZtKkSR32+6yzzmLu3LmMHDmSjz76iF122YW/+qu/4uGHH6ZPnz688sorTJgwIWf75EufxEWk5yjBWKSFDEXa/pJ66+XfFStWsHTpUsaNG0dDQwNXX301q1evbnvNWWed1fb4yCOPZPLkydx88820tLTssP1HHnmEb33rW23z/fr149lnn+W4446jtraW6upqJk6cyBNPPNHhdbmGOO1K+9jae/vtt9lzzz2pyRzWL0NdXd0OCRzIObRq5nvPmzePbdu2dXpbYty4cey5555AsJ9nn302APX19Rx66KFZX3PAAQe0JfgRI0bs8I/BihUr6N+/f1s9+s997nNUV1ezZcsWzj//fIYOHcpXv/pVli9f3un+50NJXER6jhKMRVrIUKRHHHEEa9as4fnnn+fpp5/mlFNOwd0ZMmRI22hnS5Ys4fe//33W97vpppu4+uqreeuttxgxYgTr1q0r2n5lU11dzbZt29rmM4cyzdUWDz74ICeddFKX28/1+mxDqz7zzDNtbTl//nz2339/DjjgAB5//HHuvvvunP9Q5HqPzuy8885tj6uqqrq8n97qJz/5Cfvssw/PP/88zc3NfPbZZ5HfO5OSuIj0HGUcizSfoUjNjLPOOotzzjmHk08+mT59+nDwwQezdu1a/vSnPwFBr+5ly5ZlfY/XXnuN0aNHM2PGDGpra3nrrbc6PD9u3DhuuOGGtvkPPviAUaNG8fjjj/Pee+/R0tLCHXfcwbHHHtvhdbmGON1nn3149913WbduHZ9++in3339/Xm3R1f3wrmQbWnX06NFtbTl+/HgguLLx7W9/m7/+679mwIABXW73yCOP5K677gJg+fLlbbcdojr44INZs2YNzz77LAAbNmxg69atrF+/nv79+9OrVy9+9atfZb1aEpWSuIj0HNdcE4w92l6JxiJ97LHHGDZsGIcddhhz587loosuyrrehAkTeP7559su/+60007MmzePSy+9lGHDhtHQ0JCzQ9Qll1zS1kGttVNVe5dffjkffPBBW+e3BQsW0L9/f37wgx9w/PHHM2zYMEaMGMFpp53W4XXDhw9vG+J09OjRbUOc9u7dmyuuuIJRo0Yxbtw4/vZv/7bLdmhpaeHVV1/Na91clixZwqhRo2hoaOB73/sel19+edb1vvrVr7Js2bK8e/hPmzaNtWvXMnjwYC6//HKGDBmS9VJ9V3baaSfmzp3LBRdcwLBhwxg3bhybN29m2rRpzJo1i2HDhvHSSy916ypAJg1FKiKpFnUoUo1FWl5PPfUUs2fP5qabbip3KDtoaWlhy5Yt9OnTh9dee42xY8eyYsUKdtpp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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the training data\n", "\n", "labels_binary = {0: 'Iris-Setosa', 1: 'Iris-Versicolour / Iris-Virginica'}\n", "label_colours_binary = ['blue', 'red']\n", "\n", "plt.figure(figsize=(8, 5))\n", "plot_data(x_train, y_train_binary, labels_binary, label_colours_binary)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will also make an extra modelling assumption that for each class $k$, the class-conditional distribution $P(X_i | Y=y_k)$ for each feature $i=0, 1$, has standard deviation $\\sigma_i$, which is the same for each class $k$. \n", "\n", "This means there are now six parameters in total: four for the means $\\mu_{ik}$ and two for the standard deviations $\\sigma_i$ ($i, k=0, 1$). \n", "\n", "We will again use maximum likelihood to estimate these parameters. The prior distribution will be as before, with the class prior probabilities given by\n", "\n", "$$\n", "P(Y=y_k) = \\frac{\\sum_{n=1}^N \\delta(Y^{(n)}=y_k)}{N},\n", "$$\n", "\n", "We will use your previous function `get_prior` to redefine the prior distribution." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "# Redefine the prior\n", "\n", "prior_binary = get_prior(y_train_binary)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the prior distribution\n", "\n", "plt.bar([0, 1], prior_binary.probs.numpy(), color=label_colours_binary)\n", "plt.xlabel(\"Class\")\n", "plt.ylabel(\"Prior probability\")\n", "plt.title(\"Class prior distribution\")\n", "plt.xticks([0, 1], labels_binary)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the class-conditional densities, the maximum likelihood estimate for the means are again given by\n", "\n", "$$\n", "\\hat{\\mu}_{ik} = \\frac{\\sum_n X_i^{(n)} \\delta(Y^{(n)}=y_k)}{\\sum_n \\delta(Y^{(n)}=y_k)} \\\\\n", "$$\n", "\n", "However, the estimate for the standard deviations $\\sigma_i$ is updated. There is also a closed-form solution for the shared standard deviations, but we will instead learn these from the data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You should now write a function that takes the training inputs and target labels as input, as well as an optimizer object, number of epochs and a TensorFlow Variable. This function should be written according to the following spec:\n", "\n", "* The inputs to the function are:\n", " * a numpy array `x` of shape `(num_samples, num_features)` for the data inputs\n", " * a numpy array `y` of shape `(num_samples,)` for the target labels\n", " * a `tf.Variable` object `scales` of length 2 for the standard deviations $\\sigma_i$\n", " * `optimiser`: an optimiser object\n", " * `epochs`: the number of epochs to run the training for\n", "* The function should first compute the means $\\mu_{ik}$ of the class-conditional Gaussians according to the above equation\n", "* Then create a batched multivariate Gaussian distribution object using `MultivariateNormalDiag` with the means set to $\\mu_{ik}$ and the scales set to `scales`\n", "* Run a custom training loop for `epochs` number of epochs, in which:\n", " * the average per-example negative log likelihood for the whole dataset is computed as the loss\n", " * the gradient of the loss with respect to the `scales` variables is computed\n", " * the `scales` variables are updated by the `optimiser` object\n", "* At each iteration, save the values of the `scales` variable and the loss\n", "* The function should return a tuple of three objects:\n", " * a numpy array of shape `(epochs,)` of loss values\n", " * a numpy array of shape `(epochs, 2)` of values for the `scales` variable at each iteration\n", " * the final learned batched `MultivariateNormalDiag` distribution object\n", " \n", "_NB: ideally, we would like to constrain the `scales` variable to have positive values. We are not doing that here, but in later weeks of the course you will learn how this can be implemented._" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "def learn_stdevs(x, y, scales, optimiser, epochs):\n", " \"\"\"\n", " This function takes the data inputs, targets, scales variable, optimiser and number of\n", " epochs as inputs.\n", " This function should set up and run a custom training loop according to the above \n", " specifications, by setting up the class conditional distributions as a MultivariateNormalDiag\n", " object, and updating the trainable variables (the scales) in a custom training loop.\n", " Your function should then return the a tuple of three elements: a numpy array of loss values\n", " during training, a numpy array of scales variables during training, and the final learned\n", " MultivariateNormalDiag distribution object.\n", " \"\"\"\n", " n_classes = len(np.unique(y))\n", " n_features = x.shape[-1]\n", " loc = np.zeros((n_classes, n_features), dtype=np.float32)\n", " \n", " for f in range(n_features):\n", " for c in range(n_classes):\n", " samples = x[y==c][:, f]\n", " loc[c, f] = np.mean(samples)\n", " \n", " distribution = tfd.MultivariateNormalDiag(loc=loc, scale_diag=scales)\n", " x_reshape = np.expand_dims(x.astype(np.float32), 1)\n", " \n", " def nll(x, y, distribution):\n", " predictions = - distribution.log_prob(x)\n", " probs = []\n", " for c_k in range(n_classes):\n", " probs.append(tf.reduce_sum(predictions[y == c_k][:, c_k]))\n", " return tf.reduce_sum(probs)\n", " \n", " @tf.function\n", " def get_loss_and_grads(x, distribution):\n", " with tf.GradientTape() as tape:\n", " tape.watch(distribution.trainable_variables)\n", " loss = nll(x, y, distribution)\n", " \n", " grads = tape.gradient(loss, distribution.trainable_variables)\n", " return loss, grads\n", " \n", " train_loss_results = []\n", " train_scale_results = []\n", " \n", " for epoch in range(epochs):\n", " loss, grads = get_loss_and_grads(x_reshape, distribution)\n", " optimiser.apply_gradients(zip(grads, distribution.trainable_variables))\n", " train_loss_results.append(loss)\n", " train_scale_results.append(distribution.parameters['scale_diag'].numpy())\n", " \n", " if epoch % 100 == 0:\n", " print(f'epoch: {epoch}, Loss: {loss}')\n", " \n", " return np.array(train_loss_results), np.array(train_scale_results), distribution" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "# Define the inputs to your function\n", "\n", "scales = tf.Variable([1., 1.])\n", "opt = tf.keras.optimizers.Adam(learning_rate=0.001)\n", "epochs = 1000" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "epoch: 0, Loss: 248.52313232421875\n", "epoch: 100, Loss: 229.68798828125\n", "epoch: 200, Loss: 210.25640869140625\n", "epoch: 300, Loss: 191.16299438476562\n", "epoch: 400, Loss: 173.79574584960938\n", "epoch: 500, Loss: 159.8612518310547\n", "epoch: 600, Loss: 152.19459533691406\n", "epoch: 700, Loss: 150.69192504882812\n", "epoch: 800, Loss: 150.63607788085938\n", "epoch: 900, Loss: 150.63558959960938\n" ] } ], "source": [ "# Run your function to learn the class-conditional standard deviations\n", "\n", "nlls, scales_arr, class_conditionals_binary = learn_stdevs(x_train, y_train_binary, scales, opt, epochs)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Class conditional means:\n", "[[5.0214286 3.4095237]\n", " [6.25 2.853846 ]]\n", "\n", "Class conditional standard deviations:\n", "[[0.5859885 0.35059664]\n", " [0.5859885 0.35059664]]\n" ] } ], "source": [ "# View the distribution parameters\n", "\n", "print(\"Class conditional means:\")\n", "print(class_conditionals_binary.loc.numpy())\n", "print(\"\\nClass conditional standard deviations:\")\n", "print(class_conditionals_binary.stddev().numpy())" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "image/png": "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dX7HKJIoSoSkKNiV97GSIRERkcBLQLdslncH6ofTecBT+RCTSFIoXbp0lss6d+4c937Wrl1L3759adasGU2bNmX//fdn9erV2W5z1113xb1/KXqUDImIiADuPhr4K5tVegKveGAsUN7MqudPdCLJZ/PmzQB88803cW/zyCOPUK1aNaZOncq0adN4/vnnc7yZXslQckvaZOivNRt5YcwvuHvUoYiISOFQE5gf83xBWJYQa5euZdSR97Fl45ZEvYRIgTNq1Ci6dOnCMcccQ+PGjYF/ao0WLVrEAQccQMuWLWnatClfffXVv7ZftGgRNWv+82/ZsGFDihUrBsBrr71G+/btadmyJeeffz5btmzhhhtuYN26dbRs2ZK+ffsC8OCDD9K0aVOaNm3Kww8/DMCaNWs48sgjadGiBU2bNmXIkCEA3HbbbbRr146mTZty3nnn6XtlIZS0ydCbExdw27szGDn596hDERGRIsTMzjOz8WY2fsmSJbu8n0m3v8NB71/H6E7X5WF0IgXfxIkTeeSRR/j555+3K3/99dc54ogjmDRpEpMnT6Zly5b/2vass87innvuoVOnTvTv359Zs2YB8OOPPzJkyBC+/vprJk2aRGpqKgMHDuTuu++mRIkSTJo0iYEDBzJhwgRefPFFxo0bx9ixY3n22Wf54Ycf+PDDD6lRowaTJ09m2rRpdOsWtKi95JJL+P7775k2bRrr1q3j3XffTfj5kbyVtF1r9+tcl/enLuL/3ppGh3qV2KNc8ahDEhGRgm0hUDvmea2wbDvuPgAYANC2bdtd/pm48yMnMfrLrzl44oN80XdfDh547q7uSiRuV1wBkybl7T5btoSwgiUu7du332nXyO3ateOss85i06ZN9OrVa6fJUMuWLZk7dy4ff/wxn376Ke3atePbb7/ls88+Y8KECbRr1w6AdevWUbVq1X9tP2bMGHr37k2pUqUAOPbYY/nqq6/o1q0bV199Nddffz1HHXUUXbp0AeCLL77g3nvvZe3atfz11180adKEo48+Ov6Dlcglbc1QWmoKD57Ykk1bnGuHTVa1poiI5GQkcHrYq1xHYIW7L0rkC+437kHGV+nG/q9fxHd3f57IlxIpMDITkR0dcMABjB49mpo1a9KvXz9eeeUVRowYQcuWLWnZsiXjx48HgmZ1xx57LE8++SSnnnoq77//Pu7OGWecwaRJk5g0aRIzZ87klltuiTumBg0aMHHiRJo1a0b//v257bbbWL9+PRdddBHDhg1j6tSpnHvuuRq4thBK2pohgLqVS3HTkY3o/9Y0Xhv7K6d1qht1SCIiEhEzGwQcBFQ2swXAf4F0AHd/Gngf6AHMBtYCZyY6ptRiaTScOJhf6+9H/RuP4+em42hwVINEv6wksdzU4OS3X3/9lVq1anHuueeyYcMGJk6cyMMPP0zv3r23rfP111/TuHFjKlSowMaNG5kxYwYHHXQQjRs3pmfPnlx55ZVUrVqVv/76i1WrVlGnTh3S09PZtGkT6enpdOnShX79+nHDDTfg7owYMYJXX32V33//nYoVK3LqqadSvnx5nnvuuW2JT+XKlVm9ejXDhg3j+OOPj+r0yC5K6mQIoG+HPfl4xp/c+f6P7LdPZfaqknXXjiIiUnS5e58cljtwcT6Fs02ZWuVY9ek7bD2gPWm9j+LPKWOp1qhifochErlRo0Zx3333kZ6eTunSpXnllVf+tc6cOXO48MILcXe2bt3KkUceyXHHHYeZcccdd3D44YezdetW0tPTeeKJJ6hTpw7nnXcezZs3p3Xr1gwcOJB+/frRvn17AM455xxatWrFRx99xLXXXktKSgrp6ek89dRTlC9fnnPPPZemTZuyxx57bGuCJ4WLFebmYW3btvXMKtHd8efK9Rz+0GjqVS7FsAs6kZaatK0HRURyzcwmuHvbqOMoiPLqOgXw0/NfU++cQ5haZj+azP+QEuUy8mS/Ij/++CONGjWKOgyRPLGz93N21yl96weqlS3OHb2aMmn+cp7+ck7U4YiIiPzLvmfvx9TLn6ftqi/4ptXFbN1SeH/MFBEpKJQMhY5uUYOjW9Tg4U9nMW3hiqjDERER+Ze2D5/Kt4fexKG/PMeHRzwUdTgiIoWekqEYt/dsQqXSGVw5ZBLrN2mQOxERKXg6fnQbE+odT7fPruHTK96JOhwRkUJNyVCM8iUzuPf4FsxavJoHPp4ZdTgiIiL/YqkpNP/hZWaVaUPHR/rw/XOTow5JRKTQUjK0gwMbVOHUjnvy3JhfGDt3WdThiIiI/Et6uZLsMe5tVqeVp/p5RzPn6z+iDklEpFBSMrQT/+nRiDoVS3L10MmsWr8p6nBERET+pVyjGmx+8x0q+DJWH9qTZQvWRR2SiEiho2RoJ0pmpPHAiS1ZtGIdt787I+pwREREdqrW0a2Y/7+BNNvwPZNan8mG9ephTgqn0qWzHuexc+fOce3jzDPP5Jlnntmu7K233qJ79+67Fdv48eO57LLLdmnbunXrsnTp0t16/axs2rSJ1q1b5+o1e/TowfLly3Pc96233sqNN964XdmkSZNo1KgRv//++y4NLhvPa9988818+umnud737lAylIU2dSpw4UF7M3T8Aj6eruYHIiJSMO17Qy+m9LmbQ5cM4YOOt1KIhw8U2c7mzZsB+Oabb+Jav0+fPgwePHi7ssGDB9OnT7bjKf/r9XbUtm1bHn300bj2kSg7i23MmDHst99+cW2fOQjt+++/T/ny5XNcv0+fPgwZMmS7ssxzWaNGDYYNGxZXjLHiee3bbruNww47LMf48pKSoWxcfmgDGlcvy41vTmXp6g1RhyMiIrJTLQdeyw+tzqTX5Ft5++RBUYcjsstGjRpFly5dOOaYY2jcuDHwT63RokWLOOCAA2jZsiVNmzblq6++2m7bQw89lJ9++olFixYBsGbNGj799FN69erFhAkTOPDAA2nTpg1HHHHEtnUOOuggrrjiCtq2bcsjjzzCG2+8QdOmTWnRogUHHHDAtpiOOuooAFavXs2ZZ55Js2bNaN68OcOHDwdg0KBBNGvWjKZNm3L99dfv9NgefPBBmjZtStOmTXn44YcBmDdvHk2bNt22zv33388tt9yy09h29OGHH2Zb6zVv3jwaNmzI6aefTtOmTZk/f/62WqM1a9Zw5JFH0qJFC5o2bfqvxKdBgwZUqFCBcePGbSsbOnQoffr02S7ml156iWOOOYZDDjmEQw89lLVr13LiiSfSuHFjevfuTYcOHcgceDrztefNm0ejRo0499xzadKkCYcffjjr1gXNfPv167ct0fr+++/p3LkzLVq0oH379qxatYp58+bRpUsXWrduTevWreNOlLOTttt7KMIy0lJ46KSWHP3YGG4aMZWnT22DmUUdloiIyPbMaPnt0/y05xy6DT2TT5vV47D+HaOOSmSXTJw4kWnTplGvXr3tyl9//XWOOOIIbrrpJrZs2cLatWu3W56amspxxx3H0KFDufzyy3nnnXc46KCDKFGiBJdeeilvv/02VapUYciQIdx000288MILAGzcuHHbF/ZmzZrx0UcfUbNmzZ026br99tspV64cU6dOBeDvv//m999/5/rrr2fChAlUqFCBww8/nLfeeotevXpt227ChAm8+OKLjBs3DnenQ4cOHHjggVSoUCHbcxEb246++OIL/vvf/2a7/axZs3j55Zfp2HH7z4MPP/yQGjVq8N577wGwYsW/x9jMrGnr0KEDY8eOpWLFitSvX5958+Ztt97EiROZMmUKFStW5P7776dChQrMmDGDadOm0bJlyyzjGjRoEM8++ywnnngiw4cP59RTT93uuE866SSGDBlCu3btWLlyJSVKlKBq1ap88sknFC9enFmzZtGnT58sz0+8lAzloOEeZbj2iIbc+f6PDJ+4kOPb1Io6JBERkX+xYhnUmzicJft0pNn/9WRik+9o3btO1GFJYXPFFTBpUt7us2VLCGtC4tG+fft/JUIA7dq146yzzmLTpk306tVrp1+0+/TpwzXXXMPll1/O4MGDOe2005g5cybTpk2ja9euAGzZsoXq1atv2+akk07aNr/ffvvRr18/TjzxRI499th/7f/TTz/drilehQoVGD16NAcddBBVqlQBoG/fvowePXq7ZGjMmDH07t2bUqVKAXDsscfy1Vdfccwxx2R7LmJji7Vw4UIqVqxIyZIls92+Tp06/0qEIEj6rr76aq6//nqOOuoounTpstPX7ty5Mw888EC2zQ27du1KxYoVtx3n5ZdfDkDTpk1p3rz5TrepV6/etr9fmzZt/pVgzZw5k+rVq9OuXTsAypYtCwS1fZdccgmTJk0iNTWVn3/+Odvjj4eaycXhrP3r0b5eRW4dOZ0Ff6/NeQMREZEIFKtZmVKfv0uJlA0UP+Fofp22KuqQRHItM2HY0QEHHMDo0aOpWbMm/fr145VXXmHEiBG0bNmSli1bMn78eDp37syiRYuYPHky33zzDUceeSTuTpMmTZg0aRKTJk1i6tSpfPzxxzt9vaeffpo77riD+fPn06ZNG5YtS+wwK2lpaWzdunXb8/Xr12+3PKtz8eGHH3LEEUfkuP+stm/QoAETJ06kWbNm9O/fn9tuu41x48ZtO5cjR46kdu3a1KtXjy+//JLhw4dnmZhl9RrZKVas2Lb51NTUHO83yvTQQw9RrVo1Jk+ezPjx49m4cWOuX3tHCasZMrPawCtANcCBAe7+SMzyq4H7gSruvtSC9mePAD2AtUA/d5+YqPhyIzXFeOCEFnR7eDTXvjGFged0ICVFzeVERKTgqdBpX34b8AYNzunO1536UP7XtylXMTXqsKSwyEUNTn779ddfqVWrFueeey4bNmxg4sSJPPzww/Tu3Xu79U466STOOOMMunfvTvHixWnYsCFLlizh22+/pVOnTmzatImff/6ZJk2a/Os15syZQ4cOHejQoQMffPAB8+fP3255165deeKJJ7bd8/P333/Tvn17LrvsMpYuXUqFChUYNGgQl1566XbbdenShX79+nHDDTfg7owYMYJXX32VatWqsXjxYpYtW0bp0qV599136datW47n4sMPP+T222/P5Rn8x++//07FihU59dRTKV++PM899xw333wzk3aoFezTpw9XXnkle+21F7Vq5dw6ar/99mPo0KEcfPDBzJgxY1tzwtxq2LAhixYt4vvvv6ddu3asWrWKEiVKsGLFCmrVqkVKSgovv/wyW7Zs2aX9x0pkzdBm4Gp3bwx0BC42s8awLVE6HPgtZv3uQP1wOg94KoGx5VrtiiX579FN+HbuMl78Zl7U4YiIiGRpz7O7MvuKxzlw9Xt82vo64vzRVaRAGzVqFC1atKBVq1YMGTJkW3OsHfXp04fJkydva9aVkZHBsGHDuP7662nRogUtW7bM8sb7a6+9dltHCJk378fq378/f//997ZOFr744guqV6/O3XffzcEHH0yLFi1o06YNPXv23G671q1b069fP9q3b0+HDh0455xzaNWqFenp6dx88820b9+erl27su++++Z4HrZs2cLs2bPjWjcrU6dOpX379rRs2ZJbb72V/v3773S9E044genTp8fdI99FF13EkiVLaNy4Mf3796dJkyaUK1cu1/FlZGQwZMgQLr30Ulq0aEHXrl1Zv349F110ES+//DItWrTgp59+2qVaqR2Z51MfnGb2NvC4u39iZsOA24G3gbZhzdAzwCh3HxSuPxM4yN0XZbXPtm3b+u7eNJUb7s65r4xn9KylvH9ZF/apmnWf+CIiycLMJrh726jjKIjy+zq1o+mHXU6Tzx5l4AHPcMqo81AfQLIzP/74I40aNYo6DInTmDFjeO2113j66aejDuVftmzZwqZNmyhevDhz5szhsMMOY+bMmWRkZORbDDt7P2d3ncqXe4bMrC7QChhnZj2Bhe4+eYfVagKxdZELwrICw8y469hmlMxI5eo3JrN5y9acNxIREYlIkw8f4Ke9unPi6IsZfsnnUYcj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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the loss and convergence of the standard deviation parameters\n", "\n", "fig, ax = plt.subplots(1, 2, figsize=(14, 5))\n", "ax[0].plot(nlls)\n", "ax[0].set_title(\"Loss vs epoch\")\n", "ax[0].set_xlabel(\"Epoch\")\n", "ax[0].set_ylabel(\"Average negative log-likelihood\")\n", "for k in [0, 1]:\n", " ax[1].plot(scales_arr[:, k], color=label_colours_binary[k], label=labels_binary[k])\n", "ax[1].set_title(\"Standard deviation ML estimates vs epoch\")\n", "ax[1].set_xlabel(\"Epoch\")\n", "ax[1].set_ylabel(\"Standard deviation\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also plot the contours of the class-conditional Gaussian distributions as before, this time with just binary labelled data. Notice the contours are the same for each class, just with a different centre location." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "image/png": "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/bjllluwZ88etLa24tlnn13w+/7+ftTV1V37e8uWLcjJyQEAfOc738HBgwexZ88efPCDH0QgEMCf//mfY25uDnv27ME9odwwf/M3f4PW1la0trbii1/8IgDA5XLhLW95C3bv3o3W1lY8+uijAICHH34Y1113HVpbW3H//fdDSmneYGgsH6SUK6rt379famhoaGisfJw7dy7u737nO1Lm5UkJGC0vj5+ngvz8fCmllE8++aTMy8uTV69eXfC/L3zhC/Izn/mMlFJKv98vp6amFhzntddek5WVlfL666+XDz74oLx06ZKUktf41re+VXq9XimllB/60IfkN7/5zYjjSynlsWPHZGtrq5yZmZHT09Ny+/bt8sSJE/L73/++vO+++659b2JiQkop5ejo6LXP3ve+98kf//jHqQ2EhimINqcBHJMxOI3WhGloaGhoZDwefBCYnY38bHaWn5uFgwcPRk0vcN111+Eb3/gGHnroIZw+fRqFhYULvrNnzx5cvXoVH/3oRzE2NobrrrsO58+fx+OPP47jx4/juuuuw549e/D444/j6tWrC37/3HPP4W1vexvy8/NRUFCAt7/97Xj22Wexc+dO/PrXv8bHPvYxPPvssyguLgYAPPnkkzh06BB27tyJJ554AmfPnjVvIDSWDTpPmIaGhoZGxqOrK7HPk0F+fn7Uz2+55RY888wz+OlPf4p7770XH/nIR1BYWIhPf/rTAIB/+qd/woEDB66Rp7e//e2w2Wz42c9+huzsbPze7/0e/vIv/zKpPm3evBknTpzAz372M3ziE5/A7bffjj/7sz/DAw88gGPHjqGhoQEPPfSQTni7QqE1YRoaGhoaGY/GxsQ+NxOdnZ2oqqrCBz7wAdx33304ceIE3va2t+HkyZM4efIkDhw4gOeffx7j4+MAAK/Xi3PnzqGpqQm33347vv/972NoaAgAMDY2hs7OTgCAw+GAz+cDABw+fBg/+tGPMDs7C5fLhR/+8Ic4fPgw+vr6kJeXh/e973346Ec/ihMnTlwjXBUVFZiZmcH3v/996wdBwxJoTZiGhoaGRsbjkUeA+++PNEnm5fFzq/HUU0/hr/7qr+BwOFBQUIBvfetbC77T1taGD33oQ5BSIhgM4i1veQve8Y53QAiBz3zmM3jjG9+IYDAIh8OBr3zlK2hqasL999+PXbt2Yd++fTh69CjuvfdeHDx4EABw3333Ye/evfjlL3+Jj370o7DZbHA4HPjqV7+KkpISfOADH0Brayuqq6tx3XXXWT8IGpZAyBUWUXHgwAF57NixdHdDQ0NDQyNFnD9/Htu2bYv7+0eP0gesq4sasEce0UXnNTIL0ea0EOK4lPJAtO9rTZiGhoaGxorAPfdo0qWxuqB9wjQ0NDQ0NDQ00gBNwjQ0NDQ0NDQ00gBNwjQ0NDQ0NDQ00gBNwjQ0NDQ0NDQ00gBNwjQ0NDQ0NDQ00gBNwjQ0NDQ01ixUke5ouPHGG+M6xvvf/3784z/+Y8RnP/rRj/DmN785pb4dO3YMf/zHf5zUb5ubmzEyMpLS+WPB5/Nh3759CZ3zN37jNzAxMbHksT/96U/j4x//eMRnJ0+exLZt29DX14ff+Z3fSbi/8Zz7k5/8JB577LGEj50qNAnT0NDQ0NAIg9/vBwC88MILcX3/ve99L/7t3/4t4rN/+7d/w3vf+96EzjcfBw4cwN/93d/FdQyrEK1vzz33HG666aa4fq+S1/7sZz9DSUnJkt9/73vfi0cffTTiMzWWtbW1UasDxBo/hXjO/fDDD+OOO+5Ysn9mQ5MwDQ0NDY2VgaNHgeZmwGbj69Gjph36qaeewuHDh3H33Xdj+/btAAwtWX9/P2655Rbs2bMHra2tePbZZyN+e/vtt+PChQvo7+8HALhcLjz22GP47d/+bRw/fhxHjhzB/v37cdddd137zq233or//t//Ow4cOIAvfelL+Pd//3e0trZi9+7duOWWW6716a1vfSsAYGZmBu9///uxc+dO7Nq1Cz/4wQ8AAN/97nexc+dOtLa24mMf+1jUa/ubv/kbtLa2orW1FV/84hcBAB0dHWhtbb32nS984Qt46KGHovZtPn7xi18squXr6OjAli1b8F//639Fa2sruru7r2nJXC4X3vKWt2D37t1obW1dQLg2b96M0tJSvPzyy9c++973vof3vve9EX3+l3/5F9x99914wxvegNtvvx2zs7N417vehe3bt+Ntb3sbDh06BJXYXZ27o6MD27Ztwwc+8AHs2LEDb3zjGzE3NwcAuPfee68RvFdffRU33ngjdu/ejYMHD2J6ehodHR04fPgw9u3bh3379sVN0JeCTtaqoaGhoZH5OHo0sm5RZyf/BkzL4HrixAmcOXMGLS0tEZ//67/+K+666y48+OCDCAQCmA2vnQQgKysL73jHO/C9730Pf/Inf4L//M//xK233orc3Fx8+MMfxn/8x3+gsrISjz76KB588EH83//7fwGwxqQiCjt37sQvf/lL1NXVRTWd/cVf/AWKi4tx+vRpAMD4+Dj6+vrwsY99DMePH0dpaSne+MY34kc/+hF++7d/+9rvjh8/jm984xt4+eWXIaXEoUOHcOTIEZSWli46FuF9m48nn3wSn/rUpxb9/eXLl/HNb34T119/fcTnv/jFL1BbW4uf/vSnAIDJyckFv1WaxUOHDuGll15CWVkZNm3ahI6OjojvnThxAqdOnUJZWRm+8IUvoLS0FOfOncOZM2ewZ8+emP367ne/i69//et417vehR/84Ad43/veF3Hd7373u/Hoo4/iuuuuw9TUFHJzc7Fu3Tr8+te/htPpxOXLl/He97435vgkAq0J09DQ0NDIfDz4YGThSIB/P/igaac4ePDgAgIGANdddx2+8Y1v4KGHHsLp06dRWFi44DvhJkllPrt48SLOnDmDO++8E3v27MFnPvMZ9PT0XPvNu9/97mvvb7rpJtx77734+te/jkAgsOD4jz32GP7wD//w2t+lpaV49dVXceutt6KyshJ2ux333HMPnnnmmYjfPffcc3jb296G/Px8FBQU4O1vf/sCTV40hPctHL29vSgrK0NeXt6iv29qalpAwACSzV//+tf42Mc+hmeffRbFxcVRz/39738fwWBwUbPunXfeibKyMgC8zve85z0AgNbWVuzatSvqb1paWq4RtP379y8gdhcvXkRNTc21epxFRUWw2+3w+Xz4wAc+gJ07d+Kd73wnzp07t+j1xwtNwjQ0NDQ0Mh9dXYl9ngTy8/Ojfn7LLbfgmWeeQV1dHe69915861vfwg9/+EPs2bMHe/bswbFjx3DjjTeiv78fr7/+Ol544QW85S1vgZQSO3bswMmTJ3Hy5EmcPn0av/rVr6Ke7x/+4R/wmc98Bt3d3di/fz9GR0dNu65osNvtCAaD1/52u90R/481Fr/4xS9w1113LXn8WL/fvHkzTpw4gZ07d+ITn/gEHn74Ybz88svXxvLHP/4xGhoa0NLSgqeffho/+MEPYhLCWOdYDDk5OdfeZ2VlLelPpvC3f/u3qKqqwuuvv45jx47B6/UmfO5o0CRMQ0NDQyPz0diY2OcmorOzE1VVVfjABz6A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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the training data with the class-conditional density contours\n", "\n", "plt.figure(figsize=(10, 6))\n", "plot_data(x_train, y_train_binary, labels_binary, label_colours_binary)\n", "x0_min, x0_max = x_train[:, 0].min(), x_train[:, 0].max()\n", "x1_min, x1_max = x_train[:, 1].min(), x_train[:, 1].max()\n", "contour_plot((x0_min, x0_max), (x1_min, x1_max), class_conditionals_binary.prob, 2, label_colours_binary)\n", "plt.title(\"Training set with class-conditional density contours\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also plot the decision regions for this binary classifier model, notice that the decision boundary is now linear." ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "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fexY5s6bB6xuoXvzrbfYcfhwTj3jDHZKJDhg/Hg+D5dgOOn005lx++0AzGltZY9992XXkSNpGjOGzz77jDffeou99t+f4aNHM3z0aJ546qms158PjQkTEZGKt9b0G1nnjNOwz5cDYG+/xTpnnIrxReEzuIbmPfssL8yezTaDB3cq/8stt/CN/fbj/HPOYeXKlSxfvrxzbGutxZGHHcYtt93GDydN4q6//52xe+1Fnz59OPPss/nrzTczcOBAps+YwfkXX8yfrrwSCNaYnDtrFgA7NzVx71//yuaDBmXsOvvPX/6S9ddbj+dnzwbg448/5t3Fi/npRRfROmsWAwYM4IDx47njrrv45qGHrjqu9ZlnuG7aNJ5++GHcnd3HjmXMnnsyoJuWodTY0j306KP87Lzzujz+n6++yvVXXcXIpqZO5ffcfz+DNtuMv4WtXUuWLFnj2GTL4u6NjTw1ezYbDhjAdttuy5tvvdVpv3nz5/PcU0+x4YYb8uvLL2fABhvwYmsrLyxYwLA99sgc12uvcdOf/8wfr7iCb51wArf99a8cf8wxna776BNPZPr119M4YgSffvopffr0YZOBA7n/rruor6/nn6++yrEnn5y1fvKhljAREal4a08+f1UClmSff97zxSMzaBoxYo0EDKBx+HCuu+EGJk+ZwvMLFtC/f/819jl2wgRuDhOLm2+7jWMnTODlV17hhRdfZP/x4xk2ahQ//9WvWPTOO6uOOfrII1c9Hj1yJCedfjp/vO46Vq5cucbrP/DQQ0w67bRV2wMGDGBOaytj99qLgQMH0qtXL447+mgeTWule+yJJzj80ENZd9116devH0eMH79GS14mqbGleufdd9lwwAD69u3b5fFbb7XVGgkYwM477cT9Dz7ITy+8kFmPP87666+f8dwz7riDjo6OLrt19//619lwww0BeOzJJzkmbDUcutNO7DJ0aMZjthk8mGG77ALAiN12WyOxe/mVV9isoWHVepzrrbcevXr1YsWKFZx6xhns3NTEhBNO4MWXXury+nOlljAREal4tuhfmZ9YtKho51h33XUzlu+95548eu+9/O2eezjp9NP5jzPPpH+/flx86aUAXNPczB4jR7K4rY1nn3+eJ556ipv//Gf++eqr7LTjjjz54IPdnu8Pv/sdT8+Zw9/uuYcRe+1FaxFaWbrSq1cvOjo6Vm23t7dnjS3VPfffzzf226/b1183S5K2/XbbMe+xx/j7ffdxwSWXsO/YsXxjv/04/Qc/AOCSCy5g/CGHsM3WW/PIrFnc9te/Zq+/bhLBTNZZe+1Vj9daa61V3ZHd+e0VV7DpJpvw7FNP0dHRQf1GG+V97kzUEiYiIhXPN98i8xNbZCkvorf+9S823WQTTj35ZE458UTmzZ/P4ePHM//JJ5n/5JMkhg/HzDj6yCM58bTTOOiAA6ivr2eH7bfn/Q8+4MmnnwaCbxUuePHFjOd47fXX2b2xkUsuvJCBG2/M2yktZhC0+jRfffWq7Y8//pimRIJHHnuMDz74gJUrV3LTrbcyZs89Ox231+jR3HH33Sxfvpxly5Zx+113sdfo0Wy6ySa89/77fPjhh3zxxRfcfc89OdXFPfffz0H7759P9XXy7uLF9O3bl+OPOYafnHUW8559lt0bG1fV5fhDDgGClsUfnXsu/zZ4MFtsvnm3rzt65EhumTkTgBcXLuT5BQt6FN8O22/P4rY25rS2AvDZZ5/x1VdfseTTT9msoYG6ujqm3XRTxtbKnlASJiIiFa2ufRlfXTAZ+vTp/ESfPkXtjszm4Vmz2HXkSHbbYw+m33YbP/z+9zPud+yECTz7/POrus/WXnttZtxwAz+98EJ2HTmSYaNG8USYkKX7yfnnrxpgv8fuu7Przjt3ev6Cc87h408+WTV4/6FHH2WzhgamXnwx+xx8MLuOHMmI3XbjsHHjOh03fNgwTjr+eJrGjGH3sWM55aST2G3XXenduzcXnXsuTWPHsv+hh/Lv22/fbT2sXLmSV19/nX/fYYdcqi2j5xcsoGnMGIaNGsXFl17KBeeck3G/CYcfzoKFC3P+hun3Tz2V9z/4gCEjRnDBJZew0447sv566+Ud39prr83066/nzLPPZteRI9l//Hja29v5/qmncv2NN7LryJG89MorWVsK82XuXpQXKpchQxI+bdrcqMMQEZEC9eq1kG233bHLfTpNPTF9epB0LVoUtIBNnly0QfnSvceeeIIbbr6ZP/zud1GHsoaVK1eyYsUK6uvree3119nv0EN5+ZlnWDul+7EcFr76KjumTZlhiUSruycy7a8xYSIiUnEyzvt19NFKuiK05x57sGeWbx1Gbfny5exz8MGsWLECd+f3v/1t2ROwnlASJiIiFUPrPkpP9O/fvyhTRpSbkjAREakIxZz1XiQONDBfREQi4R4sawNKwCT+PLih8zpGSZhUpZYWGDcOEongZ0tL1BGJSDr3ej59/13s86WAEjCJL3fnwyVLqM8zCVN3pFSdlhaYMgWScw+2tQXbAAcdFF1cIrJa34Wt+Frw4RZ1LOn/PphFHZJIz7lT784WKRPg5kJJmFSd5ubVCVhSe3tQriRMJHp9FwYTYQ7ZHqADijPvpUjsqDtSqk5bW37lIlI+yQRsx66nBxOpCWoJk6rT0JA54WpoKH8sIhJIJl+gBEwkSS1hUnUmTYL6tAG+9fVBuYiUX2rrlxIwkdXUEiZVJznuq7k5aBFraAgSMI0HEym/vgtblXiJZKEkTKrSQQcp6RKJUmr3o4hkpiRMRESKSoPvRXKjJExERIpCyZdIfpSEiYhIQfTNR5GeURImIiIFU/Ilkj8lYSIi0iPqfhQpjJIwERHJi7ofRYqj5JO1mtlaZvaMmd2d4bl1zGy6mb1qZk+b2eBSxyMipdHSAuPGQSIR/GxpiToiKQVNvCpSPOVoCfshsBBYL8Nz3wU+dvdtzewY4JfA0WWISUSKqKUFpkxZvXB6W1uwDZqvrZpo4lWR4ippS5iZbQEcAlyTZZfDgOvDxzOAfc3MShmTiBRfc/PqBCypvT0ol/jru7BVk6+KlECpW8IuA84B+md5fnPgbQB3/8rMlgAbAR+k7mRmpwGnATQ0bFWqWEWkhzItmN5VucSDxn6JlFbJWsLMbBzwnrsX/N8nd7/a3RPunhgwYGARohORYmpoyK9cKp/GfomUXim7I0cD483sTeBm4OtmdkPaPu8AWwKYWS9gfeDDEsYkIiUwaRLU13cuq68PyiV+NPWESHmUrDvS3c8DzgMws7HA2e5+fNpudwInAk8CRwEPuruXKiYRKY3k4Pvm5qALsqEhSMA0KD9e1P0oUl5lnyfMzC4B5rr7ncC1wDQzexX4CDim3PGISHEcdJCSrjhT65dI+ZUlCXP3h4GHw8cXpZS3AxPKEYOIiKxJrV8i0dGM+SIiNUqtXyLRKvmM+SIiUnmUgIlETy1hIiI1RN2PIpVDSZiISA1Q8iVSeZSEiYjUCCVfIpVFY8JEiqylBcaNg0Qi+NnSEnVEUsu07qNI5VJLmEgRtbTAlCmrF7Nuawu2QXNoSXmp+1Gk8qklTKSImptXJ2BJ7e1BuUi5aN1HkXhQS5hIEbW15VcuUmx9F7Yq8RKJCSVhIkXU0JA54WpoKH8sUls07kskftQdKVJEkyZBfX3nsvr6oFykVNT9KBJPagkTKaLk4Pvm5qBFrKEhSMA0KF9KQbPei8SbkjCRIjvoICVdUlr65qNIdVASJiISQ0q+ROJPSZiISEyo+1GkuigJExGpcOp+FKlOSsJERCqYWr9EqpemqBARqVBKwESqm5IwqUgTJwYLYCf/TZwYdUTVTwuPV47URbeVgIkUIMoPtvDcI2BEtl3UHSkVZ+JEmDOnc9mcOUH5lVdGE1O108LjlUFjv0SKKMoPtvRzZ6GWMKk46QlYd+VSOC08Hj3Nei9SZFF+sGU6dwZqCRMRLTweMS26LVICUX6w5XgOtYSJSNYFxrXweGmljv0SkSKL8oMtx3MoCZOK09iYX7kUTguPl5+6H0VKLMoPtkznzkDdkVJxrrxyzcH5jY0alF9KWni8fPStR5EyifKDLf3cWZi7lz6YIhoyJOHTps2NOgwRkbwpAROpPZZItLp7ItNz6o4UESkDJWAikk7dkSIiJaTkS0SyURImIlICmnhVRLqjJExEpESUfIlIV5SEiYgUkbofRSRXSsJERIpA3Y8iki99O1IkTbjwPYlE8LOlpbzHS/xo4lUR6Qm1hImkSF/4vq0t2Ibc5vcr9HiJF3U9ikgh1BImkiLTwvft7UF5OY6X+FACJiKFUhImkiLb6hJdrDpR1OMlHpSAiUgxqDtSJEVDQ+aEqaGhPMdLZVPyJSLFpJYwkRSZFr6vrw/Ky3G8VC4lYCJSbGoJE0mRvvB9Q0OQQOU6qL7Q46UyKQETkVJQEiaS5qCDCkuaCj1eKoeSLxEpJSVhIiJpNPGqiJSDkjARkRRq/RKRctHAfBGRkBIwESkntYSJSM1T96OIREFJmIjULCVfIhIldUdKVlrIWqqZFt2W2NGHatVRS5hkpIWspZr1XdiqxEviRR+qVUktYZKRFrKWatR3YWunLkiR2NCHalVSS5hkpIWspdrom48Sa/pQrUpKwiQjLWQt1ULJl1QFfahWJXVHSkZayFqqgRIwqRr6UK1KagmTjLSQtcSdEjCpKvpQrUrm7lHHkJchQxI+bdrcqMMQkQql5EtEKoklEq3unsj0nFrCRKQqaOJVEYkbJWEiUjWUfIlInCgJE5FYU/ejiMSVkjARiSV1P4pI3CkJE5FYUfIlItVCSZiIxIa6HkWkmpRsslYzqzez2Wb2rJktMLOLM+xzkpm9b2bzw3+nlCoeKb+WFhg3DhKJ4GdLS+7HTp0KTU3BsU1NwXa5zh2luMZdDkrARKTalLIl7Avg6+6+1Mx6A4+ZWYu7P5W233R3P6OEcUgEWlpgypTV6822tQXb0P3cglOnwowZq7c7OlZvn3tuac8dpbjGXWrqfhSRalWyljAPLA03e4f/4jUzrPRYc/PqZCKpvT0o787MmfmVF/PcUYpr3KWU2vqlBExEqk23LWFmlgD2AgYBnwMvAPe7+8c5HLsW0ApsCzS7+9MZdjvSzPYGXgF+5O5vZ3id04DTABoaturutFIBMq0z21V5qo6O/MqLee4oxTXuUlH3o4hUu6wtYWZ2spnNA84D+gAvA+8BewIPmNn1ZtZlRuTuK919GLAF0GRmQ9N2uQsY7O67APcD12d5navdPeHuiQEDBuZ4aRKlhob8ylPVZbkrs5UX89xRimvcxdZ3YasSMBGpCV39WesLjHb3I939F+5+jbtf4e4/cPcRwG+B7XI5ibt/AjwEHJhW/qG7fxFuXgOMyPsKpCJNmgT19Z3L6uuD8u4ccUR+5cU8d5TiGncxqftRRGpJ1u5Id+9yJIq7z+/qeTMbCKxw90/MrA+wP/DLtH02c/fF4eZ4YGEuQUvlSw4kb24OutMaGoJkIpcB5snB9zNnBl2QdXVBApbLoPxCzx2luMZdDBp8LyK1yNy7HitvZtsAZwKDSUna3H18N8ftQtC9uBZBi9st7n6JmV0CzHX3O83sUoLk6yvgI2Ciu7/U1esOGZLwadPmdnddIhIT6noUkWpmiUSruycyPZfLFBV3ANcSjN/KcWg0uPtzwG4Zyi9KeXwewZgzEalBSsBEpJblkoS1u/vvSh6JiNQMJV8iIrklYZeb2c+A+wgmYAXA3eeVLCoRqUoa+yUislouSdjOwAnA11ndHenhtohITtT6JSLSWS5J2ATg39z9y1IHIyLVqe/CViVfIiJpcknCXgA2IJioVUQkZ6ndjyIi0lkuc5BvALxkZvea2Z3JfyWOq6q0tMC4cZBIBD9bWsp37qlToakpOHdTU7Adh3MXWme1WueVRBOv5iDKG1VEIpdLS9jPSh5FFWtpgSlTVi/M3NYWbEPpJ+GcOhVmzFi93dGxejvXiU+jOHehdVardV4pNPYrR1HeqCJSEXKdrHWxu7eH232ATd39zdKHt6a4TdY6blzmBZgbGuDuu0t77qamzIte19XB7NmVe+5C66xW67wSKAHLQ5Q3qoiUTVeTtebSHXkrnSdpXRmWSQ4yfcZ2VV5MmZKBrsor5dyF1lmt1nnUlIDlKcobVUQqQi5JWK/Ub0aGj9cuXUjVpaEhv/Jiqsvy7mYrr5RzF1pntVrnUem7sHXVtx+VgOUhyhtVRCpCLn8a3jezVetEmtlhwAelC6m6TJoE9fWdy+rrg/JSO+KI/Mor5dyF1lmt1nm5JZMvUPLVI1HeqCJSEXIZmP894EYzuyLcXkQweavkIDm+trk56GVoaAg+Y8sx7jY5EHzmzKA7rK4uSAbKMUC8kHMXWme1WudRUPJVgChvVBGpCN0OzF+1o1k/AHdfWtKIuhG3gfki1UatXyIiuetqYH7WljAzOx74i7t3wJrJl5l9DdjM3R8rZrAiUpm07qOISHF11R25EfCMmbUCrcD7QD2wLTCGYFxYlXayiEiSki8RkdLImoS5++XhOLCvA6OBXYDPgYXACe7+r/KEKCJRU/IlIlJ8XQ7Md/eVwP3hPxGpIVr3UUSktHL5dqSI1BB1P4qIlEcVTyEpUStkbWKtaxwNLbpdZlrtXaSmqSVMSqKQtYm1rnE0krPeS5lotXeRmpfLAt7rAEcCg0lJ2tz9kpJGloXmCYuHQtYm1rrG5aXux4jU+mrvIjWiR/OEpfgrsIRgmoovihmYVK9C1ibWusblo4lXI1TLq72LCJBbEraFux9Y8kikqjQ0ZG/NKuWxkhslXxWgri57S5iI1IRcftufMLOdSx6JVJVC1ibWusalpQSsQtTSau8iklFXyxY9D3i4z8lm9jpBd6QB7u67lCdEiaNC1ibWusalowSsgtTaau8isoasA/PNbOuuDnT3t0oSUTc0MF8kf0q+RESi0aOB+ckky8ymufsJnV7QbBpwQsYDRaRi6JuPIiKVK5eB+TulbpjZWsCI0oQjIsWi1i8RkcqWdWC+mZ1nZp8Bu5jZp+G/z4D3CKatEJEKpQRMRKTyddUdeSlwqZld6u7nlTEmEekhdT+KiMRHV9+OHB4+vDXl8SruPq9kUYlI3tT6JSISL12NCfvv8Gc9kACeJZieYhdgLjCqtKGJSC6UfImIxFPWMWHuvo+77wMsBoa7e8LdRwC7Ae+UK8Bq0NISrIeYSAQ/W1pyP3bq1GCJuUQi+Dl1aunilPipmgSskF+SWlbIB0Sc67yQ2Au97ijrLc7vmWSUy7cjd3D355Mb7v6CmcX9I79sWlpgyhRobw+229qCbeh+8tGpU2HGjNXbHR2rtzWfY22rqrFfhfyS1LJCPiDiXOeFxF7odUdZb3F+zySrrJO1rtrB7CZgGXBDWHQc0M/djy1xbBnFbbLWceOyr4N4991dH9vUlH1pudmzixOfxE/VtH4lFfJLUssK+YCIc50XEnuh1x1lvcX5PatxPZqsNcXJwETgh+H2o8CVRYqt6mX6nemqPFWmz9euyqW6VVXrV6pCfklqWSEfEHGu80JiL/S6o6y3OL9nklW3C3i7e7u7/9bdDw///dbd28sRXDVoaMivPFVdlncnW7lUr9TWr6pKwKCwX5JaVsgHRJzrvJDYC73uKOstzu+ZZNXVZK23hD+fN7Pn0v+VL8R4mzQJ6us7l9XXB+XdOeKI/MqlOlVd92O6Qn5JalkhHxBxrvNCYi/0uqOstzi/Z5JVV92Rye7HceUIpFolx0s2Nwetxg0Nwe9MLuMok2NrZ84Mehjq6oLPVw3Krw1V2/2YrpBfklpWyAdEnOu8kNgLve4o6y3O75lklcvA/O8Cj7r7P8sTUtfiNjBfJF81k3yJiNSAQgfmbwVcZWaDgVaCgfmz3H1+0SIUkU6UfImIVL9ukzB3/xmAmfUBTgV+AlwGrFXSyERqTGoLmIiIVL9ukzAzuwAYDfQDngHOBmaVOC6RmqHuRxGR2pRLd+QRwFfA34BHgCfd/YuSRiVSI6r+m48iIpJVLt2Rw81sPYLWsP2Bq83sPXffs+TRiVSxvgtblXyJiNSwbmf1M7OhBEsVnQgcTbB494MljquqxHW9Vy0eXhp9F7Zq/JfUtokTgw+W5L+JE8t3bi2CLRUkl+7IqQTfiPwdMMfdV5Q2pOoS1/VetXh4aaj7UWrexIkwZ07nsjlzgvIrS7winhbBlgrT7TxhlSZu84TFdb1XLR5eXEq+REKJjNMlBeaW+LNdi2BLBLqaJ0yrEJZYXNd71eLhxaMETKRCaBFsqTBKwkosruu9avHw4lACJlJBtAi2VBj9SS2xuK73qsXDC5McfL/jjkrARDppbMyvvJi0CLZUmKwD883sLiDrgDF3H1+SiKpMXNd71eLhPaOJV0W6ceWVaw7Ob2ws/aB80CLYUnGyDsw3szFdHejuj5Qkom7EbWC+1A51PYqISLoeLeAdVZIlEkdKwEREJF+5rB25HXApMARY1Znu7v9WwrhEYkHdjyIi0lO5TNZ6HfAz4LfAPsDJaEC/1DglXyIiUqhckqk+7v4PgvFjb7n7ZOCQ0oYlUrlSux6VgImISE/l0hL2hZnVAf80szMI1o7sV9qwRCqTxn6JiEix5NIS9kOgL/ADYARwAsFi3l0ys3ozm21mz5rZAjO7OMM+65jZdDN71cyeNrPBecYvUhapi24rARMRkWLoNglz9znuvhT4FPiBux/h7k/l8NpfAF93912BYcCBZjYybZ/vAh+7+7YEY85+2d2LLlzYs4XvW1qC4xKJnh0fV1OnButAJhLBz6lTcz+20DqrljqPVfdjIW94lKK8WeJaZ4WaODG45uS/iRPzO76Q96xWP1ziGnfUorzXSqzbBbzNLEEwOL9/WLQE+I67t2Y/ao3X6As8Bkx096dTyu8FJrv7k2bWC2gDBnoXQZklHOZSXw/nn5/bHHstLTBlCrS3ry7L5/i4mjoVZsxYs/yoo7qfdLXQOquWOk/Oeh8LhbzhUYryZolrnRUqfbLUpFwnTS3kPavVD5e4xh21KO+1IulqnrBckrDngEnuPivc3hP4vbvv0u2JzdYCWoFtgWZ3/2na8y8AB7r7onD7NWB3d/8g+2sGSRjkvvD9uHGZ12fN9fi4amrKvOB2XR3Mnt31sYXWWdzrPJbffizkDY9SlDdLXOusUImMfw8Cc3OYDLuQ96xWP1ziGnfUorzXiqRHk7WmWJlMwADc/TEz+yqXE7v7SmCYmW0A3G5mQ939hVyOTWVmpwGnBVtbrSrPdeH7bPvlenxcZfrb0lV5qkLrLM51HtuxX4W84VGK8maJa51FrZD3rFY/XOIad9SivNfKIJeB+Y+Y2VVmNtbMxpjZ74GHzWy4mQ3P5STu/gnwEHBg2lPvAFsChN2R6wMfZjj+andPBJnkwFXluS58n22/XI+Pq7os72628lSF1lkc6zz2i24X8oZHKcqbJa51FrVC3rNa/HCB+MYdtSjvtTLI5ZNmV2B7gglbJwM7ArsB/w38OttBZjYwbAHDzPoA+wMvpe12J6u/aXkU8GBX48FS5bPw/aRJwf49PT6ujjgiv/JUhdZZnOq8ar75WMgbHqUob5a41lmhGhvzK09XyHtWSx8uqeIad9SivNfKoNvuSHffp4evvRlwfTgurA64xd3vNrNLgLnufidwLTDNzF4FPgKOyeWF8134Prlfc3PQCpnv8XGVHFc8c2bQu1JXF/xtyWW8caF1Frc6j3XylVTIGx6lKG+WuNZZoa68cs3B+bkOyofC3rNa+3BJimvcUYvyXiuDXAbmbwr8Ahjk7geZ2RBglLtfW44A0w0ZkvBp03IYOCrSjapo/RIRkYrW1cD8XLoj/wzcCwwKt18BzipKZCIRqJruRxERibVckrCN3f0WoAPA3b8CVpY0KpESidXEqyIiUtVymaJimZltBDhAOOv9kpJGJVICsZp4VUREql4uSdh/EHyL8Wtm9jjBHBFHlTQqkSJKnXhVRESkUuTy7ch5ZjYG2AEw4GV3X1HyyESKQGO/RESkUmUdE2ZmjWbWAKvGgY0ApgD/bWYblik+kR6J/cSrPVXFC912Ka7XHeeFrON8v9QivV8VqauWsKuA/QDMbG9gKnAmMAy4GnVJSoWq2dav9MVq29qCbch/odt8jo1aXK+70HPHOXYpL71fFaurb0eu5e4fhY+PBq5299vc/UKCBblFKk7NJmAQTEiY/JBNam8Pykt5bNTiet2FnjvOsUt56f2qWF21hK1lZr3Crsh9WbWAdrfHiZRdTSdfSVW+0G1Wcb3uOC9kHef7pRbp/apYXbWE3USwePdfgc+BWQBmti2aokIqhCZeTVHlC91mFdfrjvNC1nG+X2qR3q+KlTUJc/cpwI8JZszfM2Vh7TqCsWEikdLEq2mqfKHbrOJ63XFeyDrO90st0vtVsbrsVnT3pzKUvVK6cERyo9avDKp8odus4nrdcV7IOs73Sy3S+1Wxul3Au9JoAe/aljrxqhIwERGpdF0t4K0B9hILSr5ERKTaKAmT2FDyJSIi1URJmFQ0jf0SEZFqpSRMKpK6H0VEpNopCZOKo9YvERGpBUrCpKIkF90WERGpdl3NmC9SNqkz30sBWlpg3DhIJIKfLS25Hzt1KjQ1Bcc2NQXb5Tp3lAqNO8rrLuQ9i+v7BfGOXcqrwu8VtYRJ5NT9WCQtLTBlyuqFetvagm3oflLGqVNhxozV2x0dq7fPPbe0545SoXFHed2FvGdxfb8g3rFLecXgXtFkrRIZJV9FNm5c5gV5Gxrg7ru7PrapKfgjnq6uDmbPLu25o1Ro3FFedyHvWVzfL4h37FJeFXKvaLJWqSj65mOJZPqw6ao8VaY/5l2VF/PcUSo07iivu5D3LK7vF8Q7dimvGNwrGhMmkdCi2yXQ0JBfeaq6LB8F2cqLee4oFRp3lNddyHsW1/cL4h27lFcM7hUlYVI2ycH3Sr5KZNIkqK/vXFZfH5R354gj8isv5rmjVGjcUV53Ie9ZXN8viHfsUl4xuFfUHSklp+7HMkkONG1uDprbGxqCD5tcBqAmB3LPnBl0Z9XVBX/McxmUX+i5o1Ro3FFedyHvWVzfL4h37FJeMbhXNDBfSkqD70VEpJZ1NTBf3ZFSMkrAREREslN3pBSduh9FRES6pyRMikbJl4iISO6UhElRqOtRREQkPxoTJgVTAiYiIpI/tYRJj6n7UUREpOfUEiY9ktr6VZEJWEtLsG5YIhH8bGmJOqLyiPK6J0wIzpv8N2FC+c6t97u2rlukSqglTPISi9avlhaYMgXa24PttrZgGypqkr6ii/K6J0yAN97oXPbGG0H5rbeW9tx6v4PtWrlukSqiljDJWcW3fiU1N6/+w5TU3h6UV7Morzs9AeuuvJj0fq9WC9ctUkWUhElOYjX4vq0tv/JqoevOrbxa1Op1i1QRJWHSpeSi2xCTBAyC9cHyKa8Wuu7cyqtFrV63SBVREiYZpSdfsUnAIFigtb6+c1l9fVBezaK87m22ya+8mPR+r1YL1y1SRTQwX7KKVeKVKjkoubk56JppaAj+MFX7YOUor/vWW9ccnL/NNqUflA96v2vtukWqiLl71DHkZciQhE+bNjfqMKpWLL79KCIiEhOWSLS6eyLTc2oJE0DJl4iISLkpCZP4DbwXERGpAkrCapiSLxERkejo25E1SgmYiIhItJSE1SAlYCIiItFTElZDknN/xW7er1oS5wWZ4xp7XOMWke5V+O+3xoTVAH3zMSbivCBzXGOPa9wi0r0Y/H6rJaxGqPUrBuK8IHNcY49r3CLSvRj8fqslrIpp7FfMxHlB5rjGHte4RaR7Mfj9VktYFYrlotsS7wWZ4xp7XOMWke7F4PdbSViVie2i2xLvBZnjGntc4xaR7sXg91vdkVVErV8xF+cFmeMae1zjFpHuxeD3Wwt4VwF9+1FERKQyaQHvKqXkS0REJL6UhMWUuh5FRETiTUlYDCVnvRcREZH4UhIWI6ndjyIiIhJvSsJiQt2PIiIi1aVkSZiZbQn8L7Ap4MDV7n552j5jgb8Cb4RFM939klLFFEdKvkRERKpTKSdr/Qr4sbsPAUYCk8xsSIb9Zrn7sPCfErAUkSdgUa4+H+W5o1TodRdyfK3WeZRU5yI1rWQtYe6+GFgcPv7MzBYCmwMvluqc1aQiErCoVp+P8txRKvS6Czm+Vus8SqpzkZpXlmWLzGwwsBvwdIanR5nZs2bWYmY7lSOeSpZc9zHyZYeiXH0+ynNHqdDrLuT4Wq3zKKnORWpeyQfmm1k/4DbgLHf/NO3pecDW7r7UzA4G7gC2y/AapwGnATQ0bFXagCNScROvRrn6fJTnjlKh113I8bVa51FSnYvUvJK2hJlZb4IE7EZ3n5n+vLt/6u5Lw8d/B3qb2cYZ9rva3RPunhgwYGApQ45U5K1fqaJcfT7Kc0ep0Osu5PharfMoqc5Fal7JkjAzM+BaYKG7/ybLPg3hfphZUxjPh6WKqRKldj9WlChXn4/y3FEq9LoLOb5W6zxKqnORmlfK7sjRwAnA82Y2Pyz7f8BWAO7+B+AoYKKZfQV8DhzjcVtRvIcqrvsxXZSrz0d57igVet2FHF+rdR4l1blIzbO45TxDhiR82rS5UYdRkMi/+SgiIiJlYYlEq7snMj2nGfPLSMmXiIiIJJVligpRAiYiIiKdKQkrAyVgIiIikk7dkSWk5EtERESyUUtYiSgBExERka4oCSuBqknAtLhw+U2dCk1NQZ03NQXbIiJSldQdWURVk3yBFheOwtSpMGPG6u2OjtXb554bTUwiIlIyagkrguSs91AlCRhoceEozFxjZa+uy0VEJNbUElagqku+krS4cPl1dORXLiIisaaWsAJUbQIGWlw4CnVZfh2zlYuISKzp070HqrL7MZ0WFy6/I47Ir1xERGJN3ZF5qPhFt4tJiwuXX3Lw/cyZQRdkXV2QgGlQvohIVdIC3jmq+pYvERERKTot4F2gvgtblXyJiIhIUSkJ60Jq96OIiIhIMSkJy0LdjyIiIlJKSsLSKPkSERGRctAUFSmUgImIiEi5KAkLKQETERGRcqr5JCw58eqOO2ZPwFpaYNw4SCSCny0t5Y1Raohuttqi91ukptXsmLBcJ15taYGfT1m9lvXitmAbNG+pFFlLC0xJudna2oJt0M1WjfR+i9S8mm4J66r1K6m5efVnZFJ7e1AuUlS62WqL3m+RmldzLWH5jv1qa8uvXKTHdLPVFr3fIjWvZlrCerrodkNDfuUiPaabrbbo/RapeVWfhKUnX/l++3HSJKiv71xWXx+UixSVbrbaovdbpOZVdXdkMaadSI6PbW4OegkaGoLPSI2blaLTzVZb9H6L1Dxz96hjyMuQIQmfNm1ut/tp3i8RERGJmiUSre6eyPRc1bWE5Tr1hIiIiEiUqioJU+uXiIiIxEXVDMxXAiYiIiJxEvuWMHU/ioiISBzFOglT65eIiIjEVSyTMLV+iYiISNzFbkxYXftyoGcTr4pIlZo6FZqaIJEIfk6dWr5zt7TAuHHBuceNC7ZFRHIQy5YwJV8issrUqTBjxurtjo7V2+eeW9pzt7TAlCmrF+Juawu2QZOuiki3YtcSlr7Kh4jUuJkz8ysvpubm1QlYUnt7UC4i0o3YJWEiIp10dORXXkxtbfmVi4ikUBImIvFWl+VjLFt5MTU05FcuIpJCSZiIxNsRR+RXXkyTJq05RqK+PigXEelGLAfmi4iskhx8P3Nm0AVZVxckYKUelA+rB983NwddkA0NQQKmQfkikgNz96hjyEtiyBCfO21a1GGIiIiIdMsSiVZ3T2R6Tt2RIiIiIhFQEiYiIiISASVhIiIiIhFQEiYiIiISASVhIiIiIhFQEiYiIiISASVhIiIiIhFQEiYiIiISASVhIiIiIhFQEiYiIiISASVhIiIiIhFQEiYiIiISASVhIiIiIhFQEiYiIiISASVhIiIiIhFQEiYiIiISASVhIiIiIhFQEiYiIiISgZIlYWa2pZk9ZGYvmtkCM/thhn3MzH5nZq+a2XNmNrxU8YiIiIhUklK2hH0F/NjdhwAjgUlmNiRtn4OA7cJ/pwFXljAeKbeWFhg3DhKJ4GdLS9QRiYiIVIySJWHuvtjd54WPPwMWApun7XYY8L8eeArYwMw2K1VMUkYtLTBlCrS1BdttbcG2EjERERGgTGPCzGwwsBvwdNpTmwNvp2wvYs1ETeKouRna2zuXtbcH5SIiIkKvUp/AzPoBtwFnufunPXyN0wi6KwGWWiLxcrHiy9PGwAcRnTtWRsCI5OP3gYHJjbY2WhOJ1kiCihfdaz2jesuf6qxnVG/5q9U62zrbEyVNwsysN0ECdqO7z8ywyzvAlinbW4Rlnbj71cDVJQkyD2Y2190TUccRN2Y29y3VW150r/WM6i1/qrOeUb3lT3W2plJ+O9KAa4GF7v6bLLvdCXw7/JbkSGCJuy8uVUwiIiIilaKULWGjgROA581sflj2/4CtANz9D8DfgYOBV4HlwMkljEdERESkYpQsCXP3xwDrZh8HJpUqhhKIvEs0plRv+VOd9YzqLX+qs55RveVPdZbGgjxIRERERMpJyxaJiIiIREBJWBZmtpaZPWNmd2d47iQze9/M5of/TokixkpjZm+a2fNhnczN8LyWqUqTQ52NNbMlKffaRVHEWWnMbAMzm2FmL5nZQjMblfa87rU0OdSZ7rU0ZrZDSn3MN7NPzeystH10r6XIsc50r4VKPk9YjP2QYJb/9bI8P93dzyhjPHGxj7tnmwcmdZmq3QmWqdq9XIFVsK7qDGCWu48rWzTxcDlwj7sfZWZrA33Tnte9tqbu6gx0r3Xi7i8DwyD4jznBFEq3p+2mey1FjnUGutcAtYRlZGZbAIcA10QdS5XRMlVSMDNbH9ibYAoc3P1Ld/8kbTfdaylyrDPp2r7Aa+7+Vlq57rXsstWZhJSEZXYZcA7Q0cU+R4ZNzzPMbMsu9qslDtxnZq3hKgfptEzVmrqrM4BRZvasmbWY2U7lDK5CbUOwEMN14ZCBa8xs3bR9dK91lkudge61rhwD3JShXPdadtnqDHSvAUrC1mBm44D33L2rpXXuAga7+y7A/cD1ZQmu8u3p7sMJmucnmdneUQcUA93V2Txga3ffFfgf4I4yx1eJegHDgSvdfTdgGXButCFVvFzqTPdaFmH37Xjg1qhjiYtu6kz3WkhJ2JpGA+PN7E3gZuDrZnZD6g7u/qG7fxFuXkPKOom1zN3fCX++RzAGoCltl5yWqaol3dWZu3/q7kvDx38HepvZxmUPtLIsAha5+9Ph9gyCBCOV7rXOuq0z3WtdOgiY5+7/l+E53WuZZa0z3WurKQlL4+7nufsW7j6YoCn1QXc/PnWftP7+8QQD+Guama1rZv2Tj4EDgBfSdtMyVSlyqTMzazAzCx83EfzOfljuWCuJu7cBb5vZDmHRvsCLabvpXkuRS53pXuvSsWTvVtO9llnWOtO9tpq+HZkjM7sEmOvudwI/MLPxwFfAR8BJUcZWITYFbg9/r3oBf3H3e8zse6BlqrLIpc6OAiaa2VfA58AxrhmWAc4Ebgy7PF4HTta91q3u6kz3Wgbhf5D2B05PKdO91oUc6kz3Wkgz5ouIiIhEQN2RIiIiIhFQEiYiIiISASVhIiIiIhFQEiYiIiISASVhIiIiIhFQEiYiJWNm55vZgnCJr/lmVtSFjc1srJndnWt5Ec73TTMbkrL9sJklcjhus2LEY2YDzeyeQl9HRCqDkjARKQkzGwWMA4aHS3ztR+c19uLom8CQ7nbK4D+APxZ6cnd/H1hsZqMLfS0RiZ6SMBEplc2AD5JLfLn7B+7+LoCZjTCzR8KFy+9NrkIRtixdHraavRDOpo2ZNZnZk+Hi00+kzPzerXBlgj+Z2ezw+MPC8pPMbKaZ3WNm/zSzX6Uc810zeyU85o9mdoWZ7UGwQsZ/hfF9Ldx9QrjfK2a2V5YwjgTuCV97LTP7dXh9z5nZmWH5m2Z2afjac81seFg3ryUnugzdARyX6/WLSOVSEiYipXIfsGWYnPzezMYAmFlvgkV7j3L3EcCfgCkpx/V192HA98PnAF4C9goXn74I+EUecZxPsPxYE7APQRK1bvjcMOBoYGfgaDPb0swGARcCIwnWkv13AHd/gmCJmp+4+zB3fy18jV7ha58F/Cz95Ga2DfBxynqzpwGDgWFhC+GNKbv/K7z2WcCfCWYWHwlcnLLPXCBbsiciMaJli0SkJNx9qZmNIEgY9gGmm9m5BEnEUOD+cMmmtYDUtfZuCo9/1MzWM7MNgP7A9Wa2HeBA7zxCOQAYb2Znh9v1wFbh43+4+xIAM3sR2BrYGHjE3T8Ky28Ftu/i9WeGP1sJkqt0mwHvp2zvB/zB3b8Kr/OjlOfuDH8+D/Rz98+Az8zsCzPbwN0/Ad4DBnV5xSISC0rCRKRk3H0l8DDwsJk9D5xIkKwscPdR2Q7LsP2fwEPufriZDQ5fM1cGHOnuL3cqDL4k8EVK0Up69pmYfI1sx39OkPjl81odabF1pLx2ffiaIhJz6o4UkZIwsx3ClqukYcBbwMvAwHDgPmbW28x2Stnv6LB8T2BJ2FK1PvBO+PxJeYZyL3Cmhc1uZrZbN/vPAcaY2QAz60UwnivpM4JWuXy8QucWsvuB08PXxsw2zPP1tgdeyPMYEalASsJEpFT6EXQhvmhmzxF8q3Cyu39JMNbpl2b2LDAf2CPluHYzewb4A/DdsOxXwKVheb6tVf9J0H35nJktCLezcvd3CMaczQYeB94EloRP3wz8JBzg/7XMr7DG6y0DXjOzbcOia4B/hfE8C/x/+V0O+wB/y/MYEalA5p7e8i8iEg0zexg4293nRhxHv3BMWy/gduBP7n57Aa93ODDC3S8oQmyPAoe5+8eFvpaIREstYSIia5psZvMJuv3eIJgWosfCBO7NQoMys4HAb5SAiVQHtYSJiIiIREAtYSIiIiIRUBImIiIiEgElYSIiIiIRUBImIiIiEgElYSIiIiIRUBImIiIiEoH/HxsWXvpr9FxmAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the model's decision regions\n", "\n", "plt.figure(figsize=(10, 6))\n", "plot_data(x_train, y_train_binary, labels_binary, label_colours_binary)\n", "x0_min, x0_max = x_train[:, 0].min(), x_train[:, 0].max()\n", "x1_min, x1_max = x_train[:, 1].min(), x_train[:, 1].max()\n", "contour_plot((x0_min, x0_max), (x1_min, x1_max), \n", " lambda x: predict_class(prior_binary, class_conditionals_binary, x), \n", " 1, label_colours_binary, levels=[-0.5, 0.5, 1.5],\n", " num_points=500)\n", "plt.title(\"Training set with decision regions\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Link to logistic regression\n", "\n", "In fact, we can see that our predictive distribution $P(Y=y_0 | X)$ can be written as follows:\n", "\n", "\n", "$$\n", "\\begin{aligned}\n", "P(Y=y_0 | X) =& ~\\frac{P(X | Y=y_0)P(Y=y_0)}{P(X | Y=y_0)P(Y=y_0) + P(X | Y=y_1)P(Y=y_1)}\\\\\n", "=& ~\\frac{1}{1 + \\frac{P(X | Y=y_1)P(Y=y_1)}{P(X | Y=y_0)P(Y=y_0)}}\\\\\n", "=& ~\\sigma(a)\n", "\\end{aligned}\n", "$$\n", "\n", "where $\\sigma(a) = \\frac{1}{1 + e^{-a}}$ is the sigmoid function, and $a = \\log\\frac{P(X | Y=y_0)P(Y=y_0)}{P(X | Y=y_1)P(Y=y_1)}$ is the _log-odds_.\n", "\n", "With our additional modelling assumption of a shared covariance matrix $\\Sigma$, it can be shown (using the Gaussian pdf) that $a$ is in fact a linear function of $X$: \n", "\n", "$$\n", "a = w^T X + w_0\n", "$$\n", "\n", "where\n", "\n", "$$\n", "\\begin{aligned}\n", "w =& ~\\Sigma^{-1} (\\mu_0 - \\mu_1)\\\\\n", "w_0 =& -\\frac{1}{2}\\mu_0^T \\Sigma^{-1}\\mu_0 + \\frac{1}{2}\\mu_1^T\\Sigma^{-1}\\mu_1 + \\log\\frac{P(Y=y_0)}{P(Y=y_1)}\n", "\\end{aligned}\n", "$$\n", "\n", "The model therefore takes the form $P(Y=y_0 | X) = \\sigma(w^T X + w_0)$, with weights $w\\in\\mathbb{R}^2$ and bias $w_0\\in\\mathbb{R}$. This is the form used by logistic regression, and explains why the decision boundary above is linear. \n", "\n", "In the above we have outlined the derivation of the generative logistic regression model. The parameters are typically estimated with maximum likelihood, as we have done. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we will use the above equations to directly parameterise the output Bernoulli distribution of the generative logistic regression model.\n", "\n", "You should now write the following function, according to the following specification:\n", "\n", "* The inputs to the function are:\n", " * the prior distribution `prior` over the two classes\n", " * the (batched) class-conditional distribution `class_conditionals`\n", "* The function should use the parameters of the above distributions to compute the weights and bias terms $w$ and $w_0$ as above\n", "* The function should then return a tuple of two numpy arrays for $w$ and $w_0$" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [], "source": [ "def get_logistic_regression_params(prior, class_conditionals):\n", " \"\"\"\n", " This function takes the prior distribution and class-conditional distribution as inputs.\n", " This function should compute the weights and bias terms of the generative logistic\n", " regression model as above, and return them in a 2-tuple of numpy arrays of shapes\n", " (2,) and () respectively.\n", " \"\"\"\n", " mu0 = class_conditionals.parameters['loc'][0]\n", " mu1 = class_conditionals.parameters['loc'][1]\n", " \n", " cov = np.linalg.inv(class_conditionals.covariance())\n", " \n", " # TODO: Why this covariance matrix has shape of (2, 2, 2), not (2, 2)\n", " # In tfp.__version__ == 0.9.0, it has (2, 2)\n", " # But tfp.__version__ == 0.13.0, (2, 2, 2)\n", " print(cov.shape)\n", " w = np.matmul(cov, (mu0 - mu1))\n", " w0 = - 0.5 * (np.matmul(np.transpose(mu0), np.matmul(cov, mu0)))\\\n", " + 0.5 * (np.matmul(np.transpose(mu1), np.matmul(cov, mu1)))\\\n", " + np.log(prior.parameters['probs'][0] / prior.parameters['probs'][1])\n", " return w, w0" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(2, 2, 2)\n" ] } ], "source": [ "# Run your function to get the logistic regression parameters\n", "\n", "w, w0 = get_logistic_regression_params(prior_binary, class_conditionals_binary)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now use these parameters to make a contour plot to display the predictive distribution of our logistic regression model." ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [ { "ename": "ValueError", "evalue": "cannot reshape array of size 20000 into shape (100,100)", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mlogits\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mX0\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mw\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mw0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0mZ\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msigmoid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlogits\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mlr_contour\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcontour\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mZ\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mX0\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlevels\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 12\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlr_contour\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minline\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfontsize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 13\u001b[0m contour_plot((x0_min, x0_max), (x1_min, x1_max), \n", "\u001b[0;31mValueError\u001b[0m: cannot reshape array of size 20000 into shape (100,100)" ] }, { "data": { "image/png": "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mZm33HJLdnR05MMPP7zTaxdffHFeeOGFmZm5ZcuWfO6553bazi9+8YscO3ZsHnnkkXnuuefmr371q8wsHeMpp5ySr7zySmZmLly4MC+//PIdtp+ZuXz58uzs7MwXXnghn3/++Zw4cWKuXLkyr7rqqjzzzDO3LffMM89kZuamTZu2zTvjjDPyuuuuG1xDaEhUuqYpjQhRMafxTpikXp17LmzevOO8zZtL86VGasS1OHPmzIrDC8yYMYPLLruM888/n9WrV7PHHnvstMyUKVN4+OGHOfvss3nqqaeYMWMGDzzwADfffDMrVqxgxowZTJkyhZtvvpmHH354p/XvuOMOTj31VHbbbTd233133vve93L77bczadIkbrzxRs455xxuv/129txzTwBuueUWZs2axaRJk/i3f/s37r///qFrCDVMw8cJk9Q81q8f2HypXhpxLe62224V5x977LHcdttt/OhHP2L+/Pl86lOfYo899uDzn/88AN/85jeZPn36tuTpve99L6NGjeL6669nl1124UMf+hBf+MIXaorpLW95CytXruT666/nvPPOY86cOfzlX/4lixYtYvny5Rx88MGcf/75DnjbpLwTJqlX48YNbL5UL0Vei+vWrWO//fbjrLPO4swzz2TlypWceuqprFq1ilWrVjF9+nT+/d//naeffhqAV155hTVr1jB+/HjmzJnDVVddxRNPPAHAU089xbp16wAYPXo0r776KgCzZ8/m2muvZfPmzbz44otcc801zJ49m8cff5yOjg7OOOMMzj77bFauXLkt4dp333154YUXuOqqq+rfCKoL74RJ6tVFF8GCBTt+DdTRUZovNVKR1+Ktt97KF7/4RUaPHs3uu+/Od77znZ2Weeihh1i4cCGZyWuvvcbJJ5/M+973PiKCCy+8kHe84x289tprjB49mq997WuMHz+eBQsWcPjhhzN16lSWLl3K/PnzmTlzJgBnnnkmRxxxBD/+8Y85++yzGTVqFKNHj+bSSy9lr7324qyzzqKzs5M3vvGNzJgxo/6NoLqIbLJfVEyfPj2XL19edBjSiLF0aanfzfr1pbsOF10E5R9zSYPywAMP8Na3vrXq5b0WNdxVuqYjYkVmTq+0vHfCJPVp3jz/odPw4LWoVmOfMEmSpAKYhEmSJBXAJEySJKkAJmGSJEkFMAmTJEkqgEmYJGnE6irSXclRRx1V1TY+/OEP84//+I87zLv22mt517veNajYli9fzsc//vGa1p0wYQJPPvnkoPbfm1dffZWpU6cOaJ9/8Ad/wDPPPNPvtj//+c/zmc98Zod5q1at4q1vfSuPP/4473//+wccbzX7/uxnP8tNN9004G0PlkmYJEndbNmyBYA777yzquVPP/10vvvd7+4w77vf/S6nn376gPbX0/Tp0/mHf/iHqrZRL5Viu+OOOzj66KOrWr9r8Nrrr7+evfbaq9/lTz/9dJYtW7bDvK62POCAAypWB+it/bpUs+8LLriAE088sd/4hppJmCSpOSxdChMmwKhRpb9Llw7Zpm+99VZmz57N3LlzmThxIrD9LtmGDRs49thjmTJlCp2dndx+++07rDtnzhx++ctfsmHDBgBefPFFbrrpJt7znvewYsUKjjvuOKZNm8Y73/nObcscf/zxfPKTn2T69Ol85Stf4Xvf+x6dnZ1MnjyZY489dltMp5xyCgAvvPACH/7wh5k0aRKHH344V199NQBXXHEFkyZNorOzk3POOafisX3pS1+is7OTzs5OvvzlLwOwdu1aOjs7ty1z8cUXc/7551eMracbbrihz7t8a9eu5dBDD+WP//iP6ezs5JFHHtl2l+zFF1/k5JNPZvLkyXR2du6UcL3lLW9h77335q677to278orr+T000/fIeZ/+qd/Yu7cubz97W9nzpw5bN68mT/8wz9k4sSJnHrqqcyaNYuugd279r127Vre+ta3ctZZZ3HYYYfxjne8g5deegmA+fPnb0vw7r77bo466igmT57MzJkzef7551m7di2zZ89m6tSpTJ06teoEvT8O1ipJGv6WLt2xbtG6daVpGLIRXFeuXMl9993HIYccssP8f/mXf+Gd73wn5557Llu3bmVz99pJQFtbG+973/u48sor+cQnPsEPfvADjj/+eHbddVc+9rGP8a//+q+MHTuWZcuWce655/Ltb38bKNWY7EoUJk2axI9//GMOPPDAil+d/fVf/zV77rknq1evBuDpp5/m8ccf55xzzmHFihXsvffevOMd7+Daa6/lPe95z7b1VqxYwWWXXcZdd91FZjJr1iyOO+449t577z7bontsPd1yyy187nOf63P9X//611x++eUceeSRO8y/4YYbOOCAA/jRj34EwLPPPrvTul13FmfNmsXPf/5z9tlnH9785jezdu3aHZZbuXIl9957L/vssw8XX3wxe++9N2vWrOG+++5jypQpvcZ1xRVX8I1vfIM//MM/5Oqrr+aMM87Y4bhPO+00li1bxowZM3juuefYdddd+W//7b9x4403MmbMGH79619z+umn99o+A+GdMEnS8HfuuTsWjoTS9LnnDtkuZs6cuVMCBjBjxgwuu+wyzj//fFavXs0ee+yx0zLdv5Ls+vrswQcf5L777uOkk05iypQpXHjhhTz66KPb1jnttNO2PT/66KOZP38+3/jGN9i6detO27/pppv46Ec/um1677335u677+b4449n7NixtLe3M2/ePG677bYd1rvjjjs49dRT2W233dh9991573vfu9OdvEq6x9bdY489xj777ENHR0ef648fP36nBAxKyeaNN97IOeecw+23386ee+5Zcd9XXXUVr732Wp9f65500knss88+QOk4P/jBDwLQ2dnJ4YcfXnGdQw45ZFuCNm3atJ0SuwcffJD9999/Wz3O17/+9bS3t/Pqq69y1llnMWnSJD7wgQ+wZs2aPo+/WiZhkqThb/36gc2vwW677VZx/rHHHsttt93GgQceyPz58/nOd77DNddcw5QpU5gyZQrLly/nqKOOYsOGDdxzzz3ceeednHzyyWQmhx12GKtWrWLVqlWsXr2an/zkJxX39/Wvf50LL7yQRx55hGnTprFp06YhO65K2tvbee2117ZNv/zyyzu83ltb3HDDDbzzne/sd/u9rf+Wt7yFlStXMmnSJM477zwuuOAC7rrrrm1ted1113HwwQdzyCGH8NOf/pSrr76614Swt3305XWve922521tbf32J+vy93//9+y3337cc889LF++nFdeeWXA+67EJEySNPyNGzew+UNo3bp17Lfffpx11lmceeaZrFy5klNPPXVbcjV9+nQigtNOO40PfehDvOtd72LMmDEceuihbNy4kZ/97GdA6VeF999/f8V9PPTQQ8yaNYsLLriAsWPH8sgjj+zw+kknncTXvva1bdNPP/00M2fO5Kc//SlPPvkkW7du5YorruC4447bYb3Zs2dz7bXXsnnzZl588UWuueYaZs+ezX777ccTTzzBpk2b+O1vf8sPf/jDqtqiv/5g/Xn88cfp6OjgjDPO4Oyzz2blypXMmjVrW1vOnTsXKN1Z/LM/+zN+53d+h4MOOqjf7R599NFceeWVAKxZs2bb17YDdeihh7JhwwbuvvtuAJ5//nm2bNnCs88+y/7778+oUaP453/+54p3K2thEiZJGv4uugh6fgXW0VGaX2e33norkydP5ogjjmDZsmV84hOfqLjc6aefzj333LPt67NddtmFq666inPOOYfJkyczZcqUXjt0n3322ds62Hd1Cu/uvPPO4+mnn97Wef+WW25h//3352//9m854YQTmDx5MtOmTePd7373DutNnTqV+fPnM3PmTGbNmsWZZ57JEUccwejRo/nsZz/LzJkzOemkk/i93/u9ftth69at/OY3v6lq2d6sXr2amTNnMmXKFD7/+c9z3nnnVVzuAx/4APfff3/VvzBdtGgRGzduZOLEiZx33nkcdthhFb/q7M8uu+zCsmXL+NjHPsbkyZM56aSTePnll1m0aBGXX345kydP5pe//GVNd+Eqicwckg01yvTp03MoOsNJkor1wAMP8Na3vrX6FZYuLfUBW7++dAfsoouGrFO++nfHHXewZMkSvv71rxcdyk62bt3Kq6++ypgxY3jooYc48cQTefDBB9lll10aGkelazoiVmTm9ErL++tISVJzmDfPpKtAxxxzDMccc0zRYVS0efNmTjjhBF599VUyk0suuaThCVgtTMIkSVJT22OPPYZkyIhGs0+YJElSAUzCJEmFabZ+yVJvarmWTcIkSYUYM2YMmzZtMhFT08tMNm3axJgxYwa0nn3CJEmFOOigg3j00UfZuHFj0aFIgzZmzJiqxjTrziRMklSI0aNHVywTJI0Ufh0pSZJUAJMwSZKkApiESZIkFcAkTJIkqQAmYZIkSQUwCZMkSSqASZgkSVIBTMIkSZIKYBImSZJUAJMwCVi6FCZMgFGjSn+XLi06IklSq7NskUa8pUthwQLYvLk0vW5daRpg3rzi4pIktTbvhGnEO/fc7QlYl82bS/MlSaoXkzCNeOvXD2y+JElDwSRMI964cQObL0nSUDAJ04h30UXQ0bHjvI6O0nxJkurFJEwj3rx5sHgxjB8PEaW/ixfbKV+SVF/+OlKilHCZdEmSGsk7YZIkSQUwCZMkSSqASZgkSVIB6p6ERURbRPwiIn5Y4bXXRcSyiPhNRNwVERPqHY8kSdJw0Ig7YZ8AHujltT8Bns7MNwF/D/zPBsQjqQGsxylJfatrEhYRBwEnA9/sZZF3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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the training data with the logistic regression prediction contours\n", "\n", "fig, ax = plt.subplots(1, 1, figsize=(10, 6))\n", "plot_data(x_train, y_train_binary, labels_binary, label_colours_binary)\n", "x0_min, x0_max = x_train[:, 0].min(), x_train[:, 0].max()\n", "x1_min, x1_max = x_train[:, 1].min(), x_train[:, 1].max()\n", "X0, X1 = get_meshgrid((x0_min, x0_max), (x1_min, x1_max))\n", "\n", "logits = np.dot(np.array([X0.ravel(), X1.ravel()]).T, w) + w0\n", "Z = tf.math.sigmoid(logits)\n", "lr_contour = ax.contour(X0, X1, np.array(Z).T.reshape(*X0.shape), levels=10)\n", "ax.clabel(lr_contour, inline=True, fontsize=10)\n", "contour_plot((x0_min, x0_max), (x1_min, x1_max), \n", " lambda x: predict_class(prior_binary, class_conditionals_binary, x), \n", " 1, label_colours_binary, levels=[-0.5, 0.5, 1.5],\n", " num_points=300)\n", "plt.title(\"Training set with prediction contours\")\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.10" } }, "nbformat": 4, "nbformat_minor": 4 }