{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. Probability Distributions" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "from prml.rv import (\n", " Bernoulli,\n", " Beta,\n", " Categorical,\n", " Dirichlet,\n", " Gamma,\n", " Gaussian,\n", " MultivariateGaussian,\n", " MultivariateGaussianMixture,\n", " StudentsT,\n", " Uniform\n", ")\n", "\n", "np.random.seed(1234)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.1 Binary Variables" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Bernoulli(\n", " mu=0.75\n", ")\n" ] } ], "source": [ "model = Bernoulli()\n", "model.fit(np.array([0., 1., 1., 1.]))\n", "print(model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.1.1 The beta distributions" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.linspace(0, 1, 100)\n", "for i, [a, b] in enumerate([[0.1, 0.1], [1, 1], [2, 3], [8, 4]]):\n", " plt.subplot(2, 2, i + 1)\n", " beta = Beta(a, b)\n", " plt.xlim(0, 1)\n", " plt.ylim(0, 3)\n", " plt.plot(x, beta.pdf(x))\n", " plt.annotate(\"a={}\".format(a), (0.1, 2.5))\n", " plt.annotate(\"b={}\".format(b), (0.1, 2.1))\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "beta = Beta(2, 2)\n", "plt.subplot(2, 1, 1)\n", "plt.xlim(0, 1)\n", "plt.ylim(0, 2)\n", "plt.plot(x, beta.pdf(x))\n", "plt.annotate(\"prior\", (0.1, 1.5))\n", "\n", "model = Bernoulli(mu=beta)\n", "model.fit(np.array([1]))\n", "plt.subplot(2, 1, 2)\n", "plt.xlim(0, 1)\n", "plt.ylim(0, 2)\n", "plt.plot(x, model.mu.pdf(x))\n", "plt.annotate(\"posterior\", (0.1, 1.5))\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Maximum likelihood estimation\n", "10000 out of 10000 is 1\n", "Bayesian estimation\n", "6649 out of 10000 is 1\n" ] } ], "source": [ "print(\"Maximum likelihood estimation\")\n", "model = Bernoulli()\n", "model.fit(np.array([1]))\n", "print(\"{} out of 10000 is 1\".format(model.draw(10000).sum()))\n", "\n", "print(\"Bayesian estimation\")\n", "model = Bernoulli(mu=Beta(1, 1))\n", "model.fit(np.array([1]))\n", "print(\"{} out of 10000 is 1\".format(model.draw(10000).sum()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.2 Multinomial Variables" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Categorical(\n", " mu=[0.5 0.25 0.25]\n", ")\n" ] } ], "source": [ "model = Categorical()\n", "model.fit(np.array([[0, 1, 0], [1, 0, 0], [1, 0, 0], [0, 0, 1]]))\n", "print(model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.2.1 The Dirichlet distribution" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Categorical(\n", " mu=Dirichlet(\n", " alpha=[1. 1. 1.]\n", " )\n", ")\n", "Categorical(\n", " mu=Dirichlet(\n", " alpha=[3. 2. 1.]\n", " )\n", ")\n" ] } ], "source": [ "mu = Dirichlet(alpha=np.ones(3))\n", "model = Categorical(mu=mu)\n", "print(model)\n", "\n", "model.fit(np.array([[1., 0., 0.], [1., 0., 0.], [0., 1., 0.]]))\n", "print(model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.3 The Gaussian Distribution" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "uniform = Uniform(low=0, high=1)\n", "plt.figure(figsize=(10, 5))\n", "\n", "plt.subplot(1, 3, 1)\n", "plt.xlim(0, 1)\n", "plt.ylim(0, 5)\n", "plt.annotate(\"N=1\", (0.1, 4.5))\n", "plt.hist(uniform.draw(100000), bins=20, density=True)\n", "\n", "plt.subplot(1, 3, 2)\n", "plt.xlim(0, 1)\n", "plt.ylim(0, 5)\n", "plt.annotate(\"N=2\", (0.1, 4.5))\n", "plt.hist(0.5 * (uniform.draw(100000) + uniform.draw(100000)), bins=20, density=True)\n", "\n", "plt.subplot(1, 3, 3)\n", "plt.xlim(0, 1)\n", "plt.ylim(0, 5)\n", "sample = 0\n", "for _ in range(10):\n", " sample = sample + uniform.draw(100000)\n", "plt.annotate(\"N=10\", (0.1, 4.5))\n", "plt.hist(sample * 0.1, bins=20, density=True)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.3.4 Maximum Likelihood for the Gaussian" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MultivariateGaussian(\n", " mu=[0.91852581 1.17919155]\n", " cov=[[4.29224408 0.1551223 ]\n", " [0.1551223 3.58170912]]\n", ")\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "X = np.random.normal(loc=1., scale=2., size=(100, 2))\n", "gaussian = MultivariateGaussian()\n", "gaussian.fit(X)\n", "print(gaussian)\n", "\n", "x, y = np.meshgrid(\n", " np.linspace(-10, 10, 100), np.linspace(-10, 10, 100))\n", "p = gaussian.pdf(\n", " np.array([x, y]).reshape(2, -1).T).reshape(100, 100)\n", "plt.scatter(X[:, 0], X[:, 1], facecolor=\"none\", edgecolor=\"steelblue\")\n", "plt.contour(x, y, p)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.3.6 Bayesian inference for the Gaussian" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mu = Gaussian(0, 0.1)\n", "model = Gaussian(mu, 0.1)\n", "\n", "x = np.linspace(-1, 1, 100)\n", "plt.plot(x, model.mu.pdf(x), label=\"N=0\")\n", "\n", "model.fit(np.random.normal(loc=0.8, scale=0.1, size=1))\n", "plt.plot(x, model.mu.pdf(x), label=\"N=1\")\n", "\n", "model.fit(np.random.normal(loc=0.8, scale=0.1, size=1))\n", "plt.plot(x, model.mu.pdf(x), label=\"N=2\")\n", "\n", "model.fit(np.random.normal(loc=0.8, scale=0.1, size=8))\n", "plt.plot(x, model.mu.pdf(x), label=\"N=10\")\n", "\n", "plt.xlim(-1, 1)\n", "plt.ylim(0, 5)\n", "plt.legend()\n", "plt.show()" ] }, { "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": [ "x = np.linspace(0, 2, 100)\n", "for i, [a, b] in enumerate([[0.1, 0.1], [1, 1], [2, 3], [4, 6]]):\n", " plt.subplot(2, 2, i + 1)\n", " gamma = Gamma(a, b)\n", " plt.xlim(0, 2)\n", " plt.ylim(0, 2)\n", " plt.plot(x, gamma.pdf(x))\n", " plt.annotate(\"a={}\".format(a), (1, 1.6))\n", " plt.annotate(\"b={}\".format(b), (1, 1.3))\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Gaussian(\n", " mu=0\n", " tau=Gamma(\n", " a=1\n", " b=1\n", " )\n", " var=None\n", ")\n", "Gaussian(\n", " mu=0\n", " tau=Gamma(\n", " a=51.0\n", " b=94.73272357871433\n", " )\n", " var=None\n", ")\n" ] } ], "source": [ "tau = Gamma(a=1, b=1)\n", "model = Gaussian(mu=0, tau=tau)\n", "print(model)\n", "\n", "model.fit(np.random.normal(scale=1.414, size=100))\n", "print(model)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### 2.3.7 Student's t-distribution" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Gaussian(\n", " mu=2.2695020512383577\n", " var=46.95748684941486\n", " tau=0.02129585859666723\n", ")\n", "StudentsT(\n", " mu=-0.1946342109447806\n", " tau=1.4665461746068318\n", " dof=0.9028354354811657\n", ")\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "X = np.random.normal(size=20)\n", "X = np.concatenate([X, np.random.normal(loc=20., size=3)])\n", "plt.hist(X.ravel(), bins=50, density=1., label=\"samples\")\n", "\n", "students_t = StudentsT()\n", "gaussian = Gaussian()\n", "\n", "gaussian.fit(X)\n", "students_t.fit(X)\n", "\n", "print(gaussian)\n", "print(students_t)\n", "\n", "x = np.linspace(-5, 25, 1000)\n", "plt.plot(x, students_t.pdf(x), label=\"student's t\", linewidth=2)\n", "plt.plot(x, gaussian.pdf(x), label=\"gaussian\", linewidth=2)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### 2.3.9 Mixture of Gaussians" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MultivariateGaussianMixture(\n", " mu=[[ 5.06087392 -5.07813706]\n", " [-4.9724865 -5.09928156]\n", " [-0.05584106 4.99523381]]\n", " cov=[[[ 1.11567912 -0.01717074]\n", " [-0.01717074 1.04457722]]\n", "\n", " [[ 0.89251355 -0.0138146 ]\n", " [-0.0138146 1.07986159]]\n", "\n", " [[ 0.81797404 0.03778106]\n", " [ 0.03778106 0.93690783]]]\n", " coef=[0.33333333 0.33333333 0.33333333]\n", ")\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x1 = np.random.normal(size=(100, 2))\n", "x1 += np.array([-5, -5])\n", "x2 = np.random.normal(size=(100, 2))\n", "x2 += np.array([5, -5])\n", "x3 = np.random.normal(size=(100, 2))\n", "x3 += np.array([0, 5])\n", "X = np.vstack((x1, x2, x3))\n", "\n", "model = MultivariateGaussianMixture(n_components=3)\n", "model.fit(X)\n", "print(model)\n", "\n", "x_test, y_test = np.meshgrid(np.linspace(-10, 10, 100), np.linspace(-10, 10, 100))\n", "X_test = np.array([x_test, y_test]).reshape(2, -1).transpose()\n", "probs = model.pdf(X_test)\n", "Probs = probs.reshape(100, 100)\n", "plt.scatter(X[:, 0], X[:, 1])\n", "plt.contour(x_test, y_test, Probs)\n", "plt.xlim(-10, 10)\n", "plt.ylim(-10, 10)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "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.3" } }, "nbformat": 4, "nbformat_minor": 1 }