Last active
December 8, 2017 22:31
-
-
Save tanutarou/0a8c2b135680d44dda24d36c1af1b534 to your computer and use it in GitHub Desktop.
カテゴリカル分布に対するベイズ推定(サイコロの出る目の確率推定)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from IPython.core.pylabtools import figsize\n", | |
"from matplotlib import pyplot as plt\n", | |
"%matplotlib inline\n", | |
"import numpy as np\n", | |
"figsize(12.5, 12)\n", | |
"import seaborn as sns\n", | |
"sns.set(context='paper', style='darkgrid', rc={'figure.facecolor':'white'}, font_scale=1.2)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# サイコロの確率推定問題\n", | |
"今、面の数は6面だけど見るからにへんてこな形状のサイコロがあります。\n", | |
"\n", | |
"サイコロのそれぞれの目が出る確率は、$\\alpha_i(i=1\\cdots 6)$とします。\n", | |
"\n", | |
"$10$回サイコロを投げることで、この$\\alpha_i$を推定したいです。 \n", | |
"\n", | |
"ベイズ的アプローチで推定してみましょう。" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# モデルの定義\n", | |
"\n", | |
"サイコロの出る目${\\bf s}$(ある要素だけが1でほかが0のベクトルで事象を表現)の確率はカテゴリカル分布に従うと考えました。\n", | |
"$$\n", | |
"p({\\bf s}|{\\bf \\pi}) = Cat({\\bf s}|{\\bf \\pi}) = \\prod_{k=1}^6 \\pi_k^{s_k}\n", | |
"$$\n", | |
"そして、パラメータの${\\bf \\pi}$の事前分布として、カテゴリカル分布の共役分布であるディリクレ分布を仮定しました。\n", | |
"$$\n", | |
"p({\\bf \\pi}| {\\bf \\alpha}) = Dir({\\bf \\pi}| {\\bf \\alpha}) = \\frac{1}{B({\\bf \\alpha})} \\prod_{k=1}^6 \\pi_k^{\\alpha_k - 1}\n", | |
"$$\n", | |
"ここで、${\\bf \\alpha}$はハイパパラメータです。$B(\\alpha)$は多変量に拡張したベータ関数です。\n", | |
"$\\alpha_i=1.0$とおくと、一様分布を仮定したのと等価になるので、情報のないはじめの段階ではこのパラメータで設定しておくのが無難と思い、そのように設定しました。\n", | |
"\n", | |
"以下に3次元のディリクレ分布を可視化したものを示します。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.text.Text at 0x7fda5ba577f0>" | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n+ud20DzooIPM50cffTTnnHMOTz75JJ/+9Kfj2ia7lt7eXoqKiuIGQ0EYCYU4hqQyLlx88cVcd911\nrFixgqqqKk499VReeeUVAI4//njOP/98LrzwQgYGBjjvvPP4+9//zuTJk/F4PPzsZz/jxhtv5Lvf\n/S4rV65k1qxZjj806aTSv+9///usX7+eE088kWnTprFy5UrzxmT16tW0trbyhS98AY/Hw+rVq83P\nZNasWfzXf/0X3/nOd+js7OScc86hoqIirf719vY69u+mm25i/fr1HH/88cydO5fly5eb50j3vdXP\nW1VVlbS/gpAqhTjupUK6906p4HTvlMnzlJeXEw6H6e/vp6yszPYcMo6khoi3LNPa2sp1113H7373\nO+rr6+np6WHBggUxoSg6erz1nj17bAcpK5s2beJPf/oTv/3tb5k+fTotLS2OE0jb2tpYsWKF47Ee\nffRR21+QZs2axVtvveU47ywcDvP222/bbps5c2ZMiM727duZOXNmoksCjOt68803OeGEEwAjNbXH\n46G1tTVuUv9hhx3Gm2++SSgUori4mGAwyK5duxLOk3OiqKjIcZu6lk9+8pMAbNu2LeZa3nzzTQ49\n9FCKi+VPS8gMhTqGpDIueL1efvzjH5uvb731Vo488kjz9Xnnncd5550HwAsvvMDhhx9uzvVYtGgR\nixYtAowxZOnSpTHhO04k+1vX2X///WNCsS6//HLmzZsHGKGFl19+OZdffjlgZNjU+37aaadx2mmn\nAfDWW2/xu9/9LmmSAdW/bdu2me9nov4ddNBBMVkk16xZY55zJO9tOBxm9+7dMaFdgpAJCnXcS4VU\nxqB0Oeyww2KSDnV0dNDT05N2qKcd1dXVTJ48mW3bttHQ0AAY4/3SpUvNNm+++aaMIykgYZNZpq+v\njwkTJrD//vszODgYk6nLjieeeIKtW7fS29vLnXfe6SqVbG9vL8XFxVRXV5v7OTFt2rSYrIrWxcn6\nX7RoUUw4wd///nd27tzJ8PAwHR0d/Pd//zcLFy603XfFihU89thjvPHGG3z44YfcfffdrFy50tx+\n4okn0tjYGLffmWeeyRNPPMFDDz3EQw89xIknnsg555zDt771rbi2hx12GAcddBD33HMPwWCQe+65\nh4MPPphDDz0UMOqIXHnllbb9e+aZZ8zMa6+//rqZGtuOlStXct9999HW1kZbWxt/+MMfYq7F5/Ox\nePFi230FIR0KdQxJNi7ovPvuu7z33nuEw2Gef/55HnjgAb785S8DRqp7NRa9+eabXH/99Vx88cXm\nvlu3biUUCtHZ2cn69es5/fTTqampARKPC8n+1nXefvtt9u3bx+DgII8++iibN2/mc5/7HGDM221t\nbWV4eJgtW7Zwxx13cOGFF5r7vv766wwNDdHe3s5VV13FunXrTHF05ZVXOn7eK1eu5J577qGzs5M3\n3niDxx9/3PHmcufOnfT19dHf389vf/tbAoGAeUM4kvf29ddf5+CDD+aAAw6wPa8gpEuhjnvDw8MM\nDAwwODhoPncKBU02Bs2ZM8cxUVwwGGRgYMCcR6ueW1m4cCH79u3j4Ycfpr+/n9tuu41PfepTZtRS\nojEoHA4zMDBAKBRiaGjIfO50LXfeeSe9vb288MILNDU1xYg3uXdKDRFvWWb27NmsXr2alStXctJJ\nJyX91WTlypWsX7+eE044gYqKCi655JKk5zj++OM5+uijWbJkCZ/5zGeYP39+prpvcsYZZ/Dkk0+a\ndZg++OADLrroIubNm8fnPvc5pk6dGpNedsWKFfh8PsBIWXv55ZdzwQUXsHTpUhoaGvjiF78IwODg\nIL29vba/hJeXl1NbW2suZWVlVFRUmNb6nXfeGVNb5JZbbuGpp55iwYIFPP3009x8883mtvb2dsdS\nAy+88AIrVqxg3rx5XHbZZVx00UUxA79e9+2kk07ic5/7HJ/97Gf57Gc/y6pVq2KE3l//+ldWrVqV\n0nsrCIko1DEk0bgAsX93u3bt4vOf/zzHHHMMN998M7feeqsZJtXf38/Xv/515s2bx9q1a1mzZk3M\nTcEdd9zBsccey/Lly6mpqYn58SfRuJDob72trc101sCok3TKKadw7LHHct999/HLX/7SnN+xd+9e\nzjvvPD760Y9yxRVX8J3vfCfG2Vq/fj3z589n1apVHHvssZx77rmu+velL32Jo446ipNOOokLLriA\nyy+/nMMPPxwwboR0Iff3v/+dT33qUxx33HG8+OKL3HnnnWaEwUje27/+9a98/vOft+2fIIyEQh33\n3nnnHRoaGli7di27du0ynyvc3m+0t7dTV1fnGGK9du1aGhoaaGtr46yzzqKhoYF33nkHMGrAKaFa\nWlrKL37xC+68804WLlzI7t27Y6aqJBqD/vKXv9DQ0MCdd97Jhg0baGho4I477gDix6D//M//pLS0\nlEWLFvH973+fn/zkJ6Y72tnZGeMwCskpGnbyoIVR58orr+TQQw+N+VU2l7jqqqv4+Mc/zqmnnpqx\nYzY3N3P//fe7rm2ULmvWrOHuu+/OeLy4zqZNm/jf//1ffvGLX2TtHIKQiPE4hoyE0RgX0iUcDnPm\nmWeyYcOGhKHcY0VPTw9f+MIXeOCBB8x5LIIwFozHce+xxx5j9+7dXHTRRRk7ppXRGoN+8YtfMGnS\nJM4555ysnaPQEPGWQ+T6ACQIQm4jY4ggCOMNGfeE8YaETQqCIAiCIAiCIOQB4rwJgiAIgiAIgiDk\nAeK8CYIgCIIgCIIg5AGjXowqEAjS0zMw2qfNKJWVpXl/DZDd66iruwWAjo7LsnJ8RSF8FoVwDbW1\n+V9csxDGJiiM71O2r+EPdZP4946urB0f5HPIJWR8yg0K4fuU7Wu4vfYaAL763veydg6QzyJXSHds\nGnXnrbjYM9qnzDiFcA1QGNch1yBkikL5HArhOrJ5DbWnT+JjQO2CSVk7B8jnIGSWQvgs5Bpyh0K4\njkK4hnSRsEkhqygHThAEISfYHxYuB45M2lIQBGHUUK6b9bkgWBn1sEmh8BHBJghCznIeEAKKYVLF\nJLp6sxs+KQiCIAiZRMSbkHXq6m7J+tw3QRCEZARrZ/DO5w+IWVfSO0adEQRBiCBOm5AKIt6EjCKu\nmyAIuUojH2MP08zXB9JGsPYcTnrvf8ewV4IgCPHcXntN1hOXCPmJzHkTRgURdYIgjCVP155DAC+P\ncir383ke5LN8wOSx7pYgCIIgpISINyFjiEATBCFXCePBTz1+6vl748nm8zDjN2OZIAhjT6KQSQmn\nFOwQ8SYIgiAUNI/VXkAoIt7e2nY4/B72NM/ATz0hPDxWe8FYd1EQBEEQXCHiTcgIblw3ceYEQRgr\ntjEHP/Xgw1z81NPEvLHumiAI4xQ3zpq4b4IVEW+CIAhCwfJQ7SUEKcVPPdu2NcBLwMvAc9DaPBM/\n9QQp5aHaS8a6q4IgCIKQFBFvwohJxVET900QhNFmNwfFum5hYty3nRw2th0UBGHckYqjJu6boCPi\nTRAEQShI/lz7dTNRyba3I+LtZWAY2AL4oNU/k2aOIoyHP9d+fWw7LAiCIAhJEPEmjDrivgmCMFq0\nMyXiuhUb4i2kbXwZ033bzUFj1ENBEMYb6Thp4r4JChFvwogQISYIQi7jZy5b27SQSZ3Nxrq3th1u\nCDzgT7WXjnYXBUEQBME1It6EMUFEnyAI2eRPtZfSTVXEdSs1EpUELI2GiZn71s6U0e+oIAjjCnHQ\nhJEi4k1IGxFggiDkMn7q8bdbXbeAtmCGTm57ux4/c8eim4IgCK4Q4SeAiDdhDBHxJwhCNvhT7aUM\nRMoDDG2uMIRbN0Stt8HIYwBCgYi4K8ZPPd1USeikIAiCkLO4Em8bN25k+fLlLFu2jA0bNsRtf/TR\nRznttNNYuXIl3/72twmFQjZHEQoJEV5CLiBjk2CHEm7+Pi3DZJxwG4w+V6GT7fX4qWeA0lHusVCI\nyPgkWMmEcybum5BUvIVCIW644QbuvfdeHnzwQe6++24+/PDDmDY/+clP+N3vfscjjzxCb28vzzzz\nTNY6LAiCADI2CfbcW3slYIRM9vgmG8Ls/QAxYo0Q0bSTgxAIwEswtLkCP/WE8ZjHEYR0kPFJEIRs\nkVS8NTc3M3v2bOrq6qioqGDJkiU8//zzMW3C4TCBQIBQKER/fz+TJ0/OWoeFsSeTrps4eEK6yNgk\nOLGLQ/AH52pz3exEG8QIOOW+ddXTwpzR66xQkMj4JFjJpGMm7tv4pjhZg46ODqZMiWbgmjp1Ku3t\n7TFtfvCDH7BixQomTpzIpz/9aRoaGhyP5/EUUV3tHUGXxx6PZ0LeXwPkznWMpA+5cg0joRCuYSyQ\nscmeQvg+pXsNP514KR4M122fb6ohyPZ0RbYqodan7eGNrC+G7i7wTSLgq8F/Yj31+Lm39kr+Y/Bn\no3oNuUQhXMNYIeNTPIXwfcqla5B7p/y/hnRJKt6SMTg4yP33389jjz1GTU0NX/va13j22Wc5/vjj\nbduHw8N0dvbZbssXqqu9eX8NkN51ZMMpKym5mo6Oy9LatxA+i0K4htraqrHuQhzjcWyCwvg+pX0N\ntbCbgyLlAYjMdQN74aZeawLOB7wE/sVz2VlyGIewK+33clx/DjmGjE+5QSF8n9K9hmw4ZddO/B5f\nfe97ae07nj+LXCLdsSlp2GRdXV3Mr0XvvvsudXV15uutW7dSXFzMlClTKCkpYcmSJfzzn/9MqzOC\nIAhukbFJ0PmfWuMmxk89e5pnGEJsB8QLtxCx4ZPa+j1d4IN9vqlm0W51XEFIBRmfBEHIFknFW0ND\nAy0tLXR0dNDb28vGjRtZvHixuX3KlCm0tLTQ09PD8PAwjY2NzJgxI6udFgoPmfsmpIqMTYKVTqqj\n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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fda5e6570f0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# ディリクレ分布の可視化(3次元)\n", | |
"figsize(15, 5)\n", | |
"import scipy.stats as ss\n", | |
"import matplotlib.tri as tri\n", | |
"from matplotlib import cm\n", | |
"\n", | |
"corners = np.array([[0.0, 0.0], [1.0, 0.0], [0.5, np.sqrt(3.0) / 2.0]])\n", | |
"midpoints = [(corners[(i + 1) % 3] + corners[(i + 2) % 3]) / 2.0 for i in range(3)]\n", | |
"\n", | |
"def xy2bc(xy):\n", | |
" s = [(corners[i] - midpoints[i]).dot(xy - midpoints[i]) / 0.75 for i in range(3)]\n", | |
" # 1つだけ確率が0になったときDirichlet分布の確率が計算できなくなるので少しずらす\n", | |
" def get_correct_prob(s):\n", | |
" s[np.argmax(s)] -= 3 * 1e-9\n", | |
" return [x + 1e-9 for x in s]\n", | |
" s = get_correct_prob(s)\n", | |
" return np.clip(s, 0.0, 1.0)\n", | |
"\n", | |
"refiner = tri.UniformTriRefiner(tri.Triangulation(corners[:, 0], corners[:, 1]))\n", | |
"trimesh = refiner.refine_triangulation(subdiv=6)\n", | |
"\n", | |
"plt.axis('equal')\n", | |
"plt.subplot(131)\n", | |
"pvals = [ss.dirichlet.pdf(xy2bc(xy), np.array([3.0, 4.0, 5.0])) for xy in zip(trimesh.x, trimesh.y)]\n", | |
"plt.tricontourf(trimesh, pvals, 200, cmap=cm.jet)\n", | |
"plt.title(\"alpha = (3.0, 4.0, 5.0)\")\n", | |
"\n", | |
"plt.subplot(132)\n", | |
"pvals = [ss.dirichlet.pdf(xy2bc(xy), np.array([0.999, 0.999, 0.999])) for xy in zip(trimesh.x, trimesh.y)]\n", | |
"plt.tricontourf(trimesh, pvals, 200, cmap=cm.jet)\n", | |
"plt.title(\"alpha = (0.999, 0.999, 0.999)\")\n", | |
"\n", | |
"plt.subplot(133)\n", | |
"pvals = [ss.dirichlet.pdf(xy2bc(xy), np.array([1.0, 1.0, 1.0])) for xy in zip(trimesh.x, trimesh.y)]\n", | |
"plt.tricontourf(trimesh, pvals, 200, cmap=cm.jet)\n", | |
"plt.title(\"alpha = (1.0, 1.0, 1.0)\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# 事後確率分布の計算\n", | |
"今回、事前分布に共役分布であるディリクレ分布を選んだので、データ${\\bf S}$が与えられたときの事後確率分布もディリクレ分布になります。ここで、データ数は$N$とします。\n", | |
"\n", | |
"$$\n", | |
"\\begin{eqnarray}\n", | |
"p({\\bf \\pi} | {\\bf S}) &=& Dir({\\bf \\pi}| {\\bf \\hat{\\alpha}}) \\\\\n", | |
" &=& \\sum_{k=1}^6 \\pi_k^{\\sum_{n=1}^N s_{n,k} + \\alpha_k - 1} \\\\\n", | |
"\\end{eqnarray}\n", | |
"$$\n", | |
"$$\n", | |
"\\hat{\\alpha}_k = \\sum_{n=1}^N s_{n, k} + \\alpha_k\n", | |
"$$\n", | |
"\n", | |
"つまり、データで出てきた数だけ事前分布のパラメータに加算するだけです。" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# データを用いて事後確率分布を求める\n", | |
"$10$回サイコロを投げました。\n", | |
"\n", | |
"その結果、[1、3、1、6、3、5、6、1、6、3]という結果が得られました。\n", | |
"\n", | |
"この結果をもとに事後確率分布を更新していきましょう。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"a_hat = [ 4. 1. 4. 1. 2. 4.]\n", | |
"a_hat(normalized) = [ 0.25 0.0625 0.25 0.0625 0.125 0.25 ]\n" | |
] | |
} | |
], | |
"source": [ | |
"# データ\n", | |
"ts = [1, 3, 1, 6, 3, 5, 6, 1, 6, 3]\n", | |
"# 事前分布のパラメータ\n", | |
"a = [1.0 for i in range(6)]\n", | |
"# 事後分布のパラメータ\n", | |
"ah = np.array([a[i] + ts.count(i+1) for i in range(6)])\n", | |
"print('a_hat = {}'.format(ah))\n", | |
"print('a_hat(normalized) = {}'.format(ah/np.sum(ah)))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# ベイズ推定\n", | |
"ベイズ推定では、以下の式で予測分布を計算します。共役分布なので、積分が解析的に行なえます。\n", | |
"$$\n", | |
"\\begin{eqnarray}\n", | |
"p^*({\\bf s}) &=& Cat \\left( {\\bf s} \\middle| \\left(\\frac{\\alpha_k}{\\sum_{i=1}^K \\alpha_i} \\right)_{k=1}^K \\right) \\\\\n", | |
"\\end{eqnarray}\n", | |
"$$\n", | |
"結果としては、事前分布のパラメータ${\\bf \\alpha}$を正規化した確率値をサイコロの出る目の確率とする離散分布となる。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"p[0] = 0.25\n", | |
"p[1] = 0.0625\n", | |
"p[2] = 0.25\n", | |
"p[3] = 0.0625\n", | |
"p[4] = 0.12500000000000003\n", | |
"p[5] = 0.25\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.collections.LineCollection at 0x7fda5b7375f8>" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nIIgDAAAABvw/J51SoCoHmhoAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fda5df66c50>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"figsize(12.5, 4)\n", | |
"from scipy.stats import multinomial\n", | |
"\n", | |
"x = [[int(i==j) for i in range(6)] for j in range(6)]\n", | |
"y = multinomial.pmf(x, n=1, p=ah/np.sum(ah))\n", | |
"for i in range(6):\n", | |
" print(\"p[{}] = {}\".format(i, y[i]))\n", | |
"plt.plot(list(range(1, 7)), y, 'bo', ms=8)\n", | |
"plt.vlines(list(range(1, 7)), 0, y, colors='b', lw=5, alpha=0.5)" | |
] | |
} | |
], | |
"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.5.2" | |
}, | |
"toc": { | |
"nav_menu": {}, | |
"number_sections": true, | |
"sideBar": true, | |
"skip_h1_title": false, | |
"toc_cell": false, | |
"toc_position": {}, | |
"toc_section_display": "block", | |
"toc_window_display": false | |
}, | |
"varInspector": { | |
"cols": { | |
"lenName": 16, | |
"lenType": 16, | |
"lenVar": 40 | |
}, | |
"kernels_config": { | |
"python": { | |
"delete_cmd_postfix": "", | |
"delete_cmd_prefix": "del ", | |
"library": "var_list.py", | |
"varRefreshCmd": "print(var_dic_list())" | |
}, | |
"r": { | |
"delete_cmd_postfix": ") ", | |
"delete_cmd_prefix": "rm(", | |
"library": "var_list.r", | |
"varRefreshCmd": "cat(var_dic_list()) " | |
} | |
}, | |
"types_to_exclude": [ | |
"module", | |
"function", | |
"builtin_function_or_method", | |
"instance", | |
"_Feature" | |
], | |
"window_display": false | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment