{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Fitting a GMM to approximate posterior distributions.\n", "\n", "---\n", "\n", "In approxposterior, we fit build a GMM model to approximate the joint posterior distribution inferred by emcee. We use sklearn's GMM implementation (https://scikit-learn.org/stable/modules/generated/sklearn.mixture.GaussianMixture.html#sklearn.mixture.GaussianMixture) and select the optimal number of components using the BIC. This notebook demonstrates this procedure." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dflemin3/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:34: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n", " from ._conv import register_converters as _register_converters\n" ] } ], "source": [ "%matplotlib inline\n", "\n", "from approxposterior import gmmUtils\n", "import numpy as np\n", "from scipy import linalg\n", "\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "mpl.rcParams.update({'font.size': 18})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, let's generate a disjoint bimodal Gaussian distribution (2 components)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "np.random.seed(42)\n", "\n", "# Spherical gaussian centered on (5, 10)\n", "shiftG = np.random.randn(500, 2) + np.array([5, 10])\n", "\n", "# Save mean\n", "muShiftG = np.mean(shiftG, axis=0)\n", "\n", "# Zero centered Gaussian data\n", "c = np.array([[0., -0.7], [3.5, .7]])\n", "stretchG = np.dot(np.random.randn(300, 2), c)\n", "\n", "# Save mean\n", "muStetchG = np.mean(stretchG, axis=0)\n", "\n", "# Combine dataset, randomize points\n", "data = np.vstack([shiftG, stretchG])\n", "np.random.shuffle(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What does it look like?" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(9,8))\n", "\n", "ax.scatter(data[:,0], data[:,1], s=20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's fit a GMM model to approximate the true density. Clearly, there are two Gaussian components, but here we'll explore GMMs with up to 10 components to demonstrate how we can use the BIC (https://en.wikipedia.org/wiki/Bayesian_information_criterion) within fitGMM to select the optimal number of components, given the data." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Fit!\n", "gmm = gmmUtils.fitGMM(data, maxComp=6, covType=\"full\", useBic=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot the data and our fit to see how we did.\n", "\n", "Code based on https://scikit-learn.org/stable/auto_examples/mixture/plot_gmm_selection.html#sphx-glr-auto-examples-mixture-plot-gmm-selection-py example." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(9,8))\n", "\n", "# Plot data\n", "ax.scatter(data[:,0], data[:,1], s=20)\n", "\n", "# Now plot GMM components\n", "colors = [\"C%d\" % ii for ii in range(len(gmm.means_))]\n", "for i, (mean, cov, color) in enumerate(zip(gmm.means_, gmm.covariances_, colors)):\n", " v, w = linalg.eigh(cov)\n", " \n", " # Plot an ellipse to show the Gaussian component\n", " angle = np.arctan2(w[0][1], w[0][0])\n", " angle = 180. * angle / np.pi # convert to degrees\n", " v = 2. * np.sqrt(2.) * np.sqrt(v)\n", " ell = mpl.patches.Ellipse(mean, v[0], v[1], 180. + angle, color=color)\n", " ell.set_clip_box(ax.bbox)\n", " ell.set_alpha(.5)\n", " ax.add_artist(ell)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looks good!\n", "\n", "Let's compare the true means with the inferred means." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Component 0 true, inferred: [ 0.15545514 -0.04124897] [ 0.15545514 -0.04124897]\n", "Component 1 true, inferred: [ 5.0036012 10.03506291] [ 5.0036012 10.03506291]\n" ] } ], "source": [ "print(\"Component 0 true, inferred:\",muStetchG, gmm.means_[1])\n", "print(\"Component 1 true, inferred:\",muShiftG, gmm.means_[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Perfect!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.8" } }, "nbformat": 4, "nbformat_minor": 4 }