Files
2026-07-13 13:30:25 +08:00

630 lines
195 KiB
Plaintext
Executable File

{
"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": [
"<Figure size 432x288 with 4 Axes>"
]
},
"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": [
"<Figure size 432x288 with 2 Axes>"
]
},
"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": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\r0735\\Anaconda3\\lib\\site-packages\\matplotlib\\axes\\_axes.py:6571: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n",
" warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAEzCAYAAAARqFYSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAEthJREFUeJzt3Xus5GddBvDnWw6Wi8UCbQ1lwVW6BQuppZ5wCUEtGFPZxoaEQkmhCI0bEA3FBqjxn6r80QoWJSExG0u6RYTWikgoFxFoKoRSd2W5lIsgrLHQyLZaLjGyFl7/ONOy0+72zHnPXM98Pskmc+b8dua7Z+fJPOed37xTrbUAALAxx8x6AACARaREAQB0UKIAADooUQAAHZQoAIAOShQAQIeVUQ6qqgNJvpfkh0nubq2tTnIomHcyAcNkgmU0UokaOKu1dsfEJoHFIxMwTCZYKl7OAwDoMGqJakn+oar2VdWuSQ4EC0ImYJhMsHRGfTnvWa21b1XVSUk+UlVfbq3ddPgBg9DsSpKHP/zhv/ikJz1pzKNCn3379t3RWjtxzDcrEyysWWRCHphnvZmojX52XlVdluT7rbU3H+2Y1dXVtnfv3o3OAhNRVfsmeZKrTLBoZp0JeWDe9GZi3ZfzqurhVXXcPZeT/FqSL2x8RNgaZAKGyQTLapSX8346yd9V1T3H/3Vr7UMTnQrmm0zAMJlgKa1bolprX0/yC1OYBRaCTMAwmWBZ2eIAAKCDEgUA0EGJAgDooEQBAHRQogAAOihRAAAdlCgAgA5KFABAByUKAKCDEgUA0EGJAgDooEQBAHRQogAAOihRAAAd5rZEVVUuueSSe79+85vfnMsuu2zkv3/22Wfn+OOPzznnnDOB6WD6NpOJ/fv355nPfGae/OQn5/TTT8+11147oSlheib1PPGNb3wjT3/607Njx4686EUvyqFDh8Y1MlvM3JaoY489Nu95z3tyxx13dP39173udXnHO94x5qlgdjaTiYc97GG55pprcuutt+ZDH/pQLr744tx1110TmBKmZ1LPE294wxvy2te+Nl/96lfzyEc+MlddddVmR2WLmtsStbKykl27duUtb3lL199/7nOfm+OOO27MU8HsbCYTp556anbs2JEkOfnkk3PSSSfl4MGD4x4RpmoSzxOttXzsYx/LC17wgiTJy172srz3ve/d9KxsTSuzHuCBvPrVr87pp5+e17/+9UPXv/Od78yb3vSm+x1/yimn5Prrr5/WeDB148jELbfckkOHDuUJT3jCRGeFaRj388Sdd96Z448/Pisra0+P27Ztyze/+c3xDs2WMdcl6hGPeEQuvPDCvPWtb81DH/rQe6+/4IILcsEFF8xwMpiNzWbi9ttvz0tf+tLs2bMnxxwztwvRMLJxP0+01u53XVVtaka2rrkuUUly8cUX58wzz8zLX/7ye6+zEsUy683Ed7/73ezcuTNvfOMb84xnPGNq88KkjfN54oQTTshdd92Vu+++OysrK7ntttty8sknT2RuFt/cl6hHPepReeELX5irrroqr3jFK5JYiWK59WTi0KFDef7zn58LL7ww55133rRGhakY5/NEVeWss87K9ddfn/PPPz979uzJueeeO+6R2SIWYj3/kksu2fC7L5797GfnvPPOy0c/+tFs27YtH/7whyc0HUzfRjNx3XXX5aabbsrVV1+dM844I2eccUb2798/wQlhusb5PHHFFVfkyiuvzCmnnJI777wzF1100SRGZguoI73+u1mrq6tt7969Y79d6FFV+1prq7OcQSaYJ7POhDwwb3ozsRArUQAA80aJAgDooEQBAHRQogAAOihRAAAdlCgAgA5KFABAByUKAKCDEgUA0EGJAgDooEQBAHRYmfUAAMD6tl96wxGvP3D5zilPwj2sRAEAdFCiAAA6KFEAAB2UKACADkoUAEAHJQoAoIMSBQDQQYkCAOigRAEAdFCiAAA6+NgXAFhgPg5mdkZeiaqqB1XVZ6rq/ZMcCBaFTMAwmWDZbOTlvNck+dKkBoEFJBMwTCZYKiOVqKralmRnkr+c7DiwGGQChskEy2jUlag/S/L6JD862gFVtauq9lbV3oMHD45lOJhjMgHDHjAT8sBWtG6Jqqpzkny7tbbvgY5rre1ura221lZPPPHEsQ0I80YmYNgomZAHtqJRVqKeleQ3qupAkncneU5V/dVEp4L5JhMwTCZYSuuWqNba77fWtrXWtic5P8nHWmsvmfhkMKdkAobJBMvKZpsAAB02tNlma+3GJDdOZBJYQDIBw2SCZWIlCgCggxIFANBBiQIA6KBEAQB02NCJ5QDA5G2/9IZZj8AIrEQBAHRQogAAOihRAAAdlCgAgA5KFABAByUKAKCDEgUA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\n",
"text/plain": [
"<Figure size 720x360 with 3 Axes>"
]
},
"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, normed=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, normed=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, normed=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": [
"<Figure size 432x288 with 1 Axes>"
]
},
"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": [
"<Figure size 432x288 with 1 Axes>"
]
},
"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": [
"<Figure size 432x288 with 4 Axes>"
]
},
"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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L2XRokU8/PDDPPXUUxQUFDBz5kyuueYa3807lixZwurVq33P9XYHXFZWxty5c5k1axa5ubls2rSpx+56O25j+fLlFBQUkJuby7Jly/D+IHTevHnceeedzJkzh0mTJrFp06ZgviQ+WnNXSg1a3jN5Adnujlt29PjYli1beOmll/j4449pa2tj9uzZnHvuuVx99dUsXboUgHvuuYc//OEPfP/73+9xO8899xyXX345P/3pT2lvb6ehoYFPPvmk1+56AW677TZfZ2U33XQTr732Gl/96lcBaGtr46OPPmLdunX853/+Z0iacrTmrpQKS++++y4LFy4kLi6OpKQkX7AWFhZy0UUXkZeXx7PPPsvOnTt73U5BQQF//OMfuf/++9mxYwdJSUl+ddf79ttvc95555GXl8dbb73VaT9XX3014F/XwIGiNXel1KD1VsMOlJ76xVqyZAlr1qxh5syZrFy5ko0bNwIQFRXl68TLGENLSwsAc+fO5Z133mHt2rXcdNNN3HHHHdx88829dtfb1NTEv/3bv7FlyxaysrK4//77O3Up7O0e2Ol00tbWFojD75PW3JVSYenCCy/kb3/7G01NTdTV1fnuynTy5ElGjx5Na2trp+58s7Oz2bp1KwB//etfaW1tBeDw4cOMGDGCpUuX8u1vf5tt27b12V2vN8jT09Opq6vr1JY/VGjNXSkVlgoKCliwYAEzZ85k/Pjx5Ofnk5KSwgMPPMB5553H+PHjycvL8/WXvnTpUhYuXMicOXP40pe+REJCAgAbN27koYcewuVykZiYyJ/+9Kc+u+sdNmwYS5cuJS8vj+zsbAoKCoJ78H7QLn+HAO3yV4WjodDlb11dHYmJiTQ0NDB37lyefPJJZs+eHdIy2WkwXf5qzV0pFbaWLVvGrl27aGpq4pZbbomoYB8sDXelVNh67rnnQl2EIUtPqCqlVATScFdKqQik4a6UUhFIw10ppSKQnlBVStmiu0t6B2MoXQ48b948Hn74YfLz+7wCccjQmrtSSkUgDXelVFiqr6/nyiuvZObMmeTm5vLCCy/02g3vj370I+bOncvUqVPZvHkzV199NRMnTuSee+4BoKioiClTpnDLLbcwY8YMrr32Wl93wR2tX7+e888/n9mzZ3PddddRV1cHwF133cW0adOYMWMGt99+e/BeiB74Fe4iMl9E9ojIfhG5q5f1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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"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, normed=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": [
"<Figure size 432x288 with 1 Axes>"
]
},
"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.0"
}
},
"nbformat": 4,
"nbformat_minor": 1
}