Created
May 27, 2019 14:43
-
-
Save narrowlyapplicable/98d12825d0a1c422da500c758b93fd95 to your computer and use it in GitHub Desktop.
GPyのGPRegressionにPriorを設定し、MCMCで推定する方法
This file contains hidden or 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": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# GPy(GPregression)に関する備忘録\n", | |
| "- GPRegressionをベイズ的に使うためのTips\n", | |
| " - hyperparametersに対するPrior設定法\n", | |
| " - MCMCによるhyperparameter推定法\n", | |
| " - 結果の様々なplot方法" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# 0. Install\n", | |
| "- (2019.05時点で)python3.7で\"pip install GPy\"しようとするとエラーが出ることがある。\n", | |
| " - python3.6用の環境を別に用意する方が無難。\n", | |
| "- 加えてpipからinstallした場合、GPyのmodel.plot()が機能しないことがあった。\n", | |
| " - \"conda install -c conda-forge gpy\"を推奨。" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import matplotlib.pyplot as plt\n", | |
| "import numpy as np\n", | |
| "import pandas as pd\n", | |
| "import GPy" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "plt.style.use('ggplot')\n", | |
| "np.random.seed(0)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# 1. Data\n", | |
| "- 前回\"GP&TPonSinWave\"と同じものを使う。" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "X = np.arange(-5,5,0.5)\n", | |
| "truY = np.sin(X)\n", | |
| "Y = truY + np.random.normal(loc=0, scale=0.1, size=X.shape[0])\n", | |
| "X_new = np.arange(-7,7,0.05)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XlglNW9//H3mZkQSYCQZAIxQCSETVAIEEhYEyC4gCiIilVRq97WC1Wvttcram2rtWK9/my9xW4ietHeKlZwXwiBIBBCWIKIigQjCIJkgbAEQpLn/P4YiESykZnMeWbm+/pHMnlmns885pnvnPOc5xyltdYIIYQQNuMwHUAIIYRoiBQoIYQQtiQFSgghhC1JgRJCCGFLUqCEEELYkhQoIYQQtiQFSgghhC1JgRJCCGFLUqCEEELYkhQoIYQQtuQyHaAp3377rekIPuV2uyktLTUdw7bk+DRNjk/T5Pg0zU7HJyEhoUXbSQtKCCGELUmBEkIIYUtSoIQQQtiSra9BCSFEMLIsWLq0PceOKZTyzz7Dw2upqorwz84ArSEyUjNt2nEcrWwKSYESQgg/W7q0PYMHnyQ5udZv+3S5TlJTU+O3/QHs3Olk6dL2XH318VY9X7r4hBDCz44dU34tTqYkJ9dy7Fjrm4hB24LKLa5gUWEJpZU1uCNczEqJIyMpynQsIYTwW7eeHXjzXoOyQOUWVzA/fz9VtZ7V7Esqa5ifvx9AipQQQgSIoCxQiwpL6orTaVW1mkWFJVKghBABJxB6hPr06cOOHTt8+ppBWaBKKxu+ENjY40IIYVcme4Rqa2txOp1tuo+mBGWBcke4KGmgGLkjgvLtCiGCWFv1CH3zzTfceOONDBkyhG3btpGUlMSzzz5LZmYm119/Pbm5ufz4xz9m8ODBPPTQQ5SVldG+fXueeuopevfuze7du5kzZw61tbVkZmZ6+S4bFpSj+GalxBHurH9lLtypmJUSZyiREEK0Tlv2CO3cuZObbrqJ7OxsOnbsyEsvvQRAeHg4S5cu5aqrruL+++/nscce44MPPuCXv/wlc+fOBeCRRx7h5ptv5r333qNLly5eZ2lIUDYpTn+rsHufrRBCNKcte4QSEhIYPnw4AFdffTUvvPACAFdeeSUAx44dY+PGjfz0pz+te87JkycBKCgo4O9//zsAM2bM4PHHH/c6zw8FZYECT5GSgiSECHSzUuLqXYMC3/UIqR+MAT/9c0SEZ8YJy7Lo1KkTy5Yta9HzfS0ou/iEECJYZCRFMSctnrgIFwqIi3AxJy3eJ1/A9+7dy4YNGwB4880361pTp3Xs2JEePXrw9ttvA6C1Ztu2bQAMHz6cN998E4A33njD6ywNkQIlhBA2l5EUxfPTe7P0xv48P723z3qH+vTpw+LFi8nKyuLQoUPccsstZ23zpz/9iX/+859kZWUxfvx4PvroIwAeffRRXnzxRSZPnsyRI0d8kueHgraLTwghRNMcDgdPPvlkvcfy8/Pr/ZyYmMgrr7xy1nMTExPrWlYAP/vZz3yfz+evKIQQQviAtKCaEAh3bwshRGv06NGDnJwc0zGaJAWqETKfnxBtS74Aiub4pEA999xzbNq0iaioKJ5++umzfq+1ZuHChWzevJnw8HBmz55Nr169fLHrNiPz+QnRduQLoGgJn1yDyszM5MEHH2z095s3b2b//v08++yz/OQnP+H555/3xW7blMznJ0TbaeoLoBCn+aRADRgwgA4dOjT6+w0bNjBu3DiUUvTt25djx45x8OBBX+y6zTR2l7bM5yeE905/0RtW+hk373wH94mD9R4XAvx0Daq8vBy32133c2xsLOXl5URHR9fbLjs7m+zsbADmzZtX7zn+NnusxbzlRVTVWHWPhbsczB7bq9W5XC6X0fdkd3J8mhZMx6dLx3CGfp7D7UVv4UAzZc8alp8/nFUXXhoS51d4eC0u10m/79fl8nzkV1RU8MYbb/DjH/+4zfcZHh6O2x3Rquf6pUBprc96rKEpMrKyssjKyqr7ubS0tE1z/ZCurYWKg1BRzpCDZfzWsZcvd+/h5MkaVvXLYvqIJIa6Ha3O5Xa7/f6eAokcn6YFy/HRlsVDBz6ke9F75McO5OVelzNl72qy9hVwyf4CDlTnoyZfg4o9twlIA+n4VFVFUFPj39aiy+Wq22d5eTkLFy5k1qxZ9bZpi+U1qqqqKC2trPdYQkJCi57rlwIVGxtb7w+nrKzsrNZTW9PHK+FQGRwsQ5/6L4fK6/2bw4dAf99iSgaSnU7QmqsiD+K45jd+zSxEsNHV1eiFf6B7wcd8O3QiC7teTslxiyUp1xE7fSYjtn2E/ngZek02anRWiwrV96MBvwjI0YDWP/+O/qbYp6+peiThuP7fGv397373O3bt2sWkSZMICwsjIiKCrl27sm3bNhYtWsQtt9xSNwT9L3/5C8eOHePnP/85X3/9dYNLb7QVvxSo1NRUPvjgA0aPHs2OHTuIiIho8wKlvynGevV5qCiHg+VQdfzsjSI6QHQsdI5Bde8JnWOgcywqOhY6x0J0DHSIQq9biV74B/TrC1FN/E8XQjROHzuK9dzv4MtPUTNuofulV/P3H/akpPw7+rJr0B+8fkahmoiafG2DhUpGA7bOgw8+yPbt21m2bBlr167l5ptvJicnh8TERL755ptGn3f//fczb948evXqxaZNm5g7dy6LFy9us5w+KVB/+MMf+Oyzzzhy5Ah33nkn1113XV1T8pJLLmHIkCFs2rSJu+++m3bt2jF79mxf7LZpLhfUVEO3C1ADh54qRLGo04UnKhYVHt6il1KjJmDt3ole/jbWBb1xjBzfxuGFCC66rATrj7+GA/tQd/wcR1pGo9uq2DjUjf+Ovvwa9Pv/Qq/+CL1meYOFKhhuB2mqpeMvKSkpJCYmNrlNU0tvtBWfFKj/+I//aPL3SinuuOMOX+yqxdT5PXA+8Hvfvd41P0Z/U4xeNB+d0AN1Qds1a4Wws3O9wVbv/grr2Ufh5Akc//FrVP9BLdqPiolD3Xgn+vIZZxSqbNSoU4XK3VVuB/GR08trADidTizr+0sdJ06cAJpfeqMtyFx8LaRcLhw/vR86dsJ67nfow4dMRxLC7053qZVU1qD5vkstt7iiwe31Z5uxnpoLDgeO++e1uDidScXE4bjxThyP/w017lJ0Xg7Ww3di/e+f6MfhBp8jt4M0LTIykqNHjzb4u7i4OEpLSykvL6eqqqpuZHVTS2+0FSlQ50B16oxj9oNw5DDWX3+P9vMoHCFMO5cbbK21OZ6WU2wXHA/83nOd1wsqxo3jhvqF6rernuBnX75Ol+Plddv5ajG/YBYTE8Pw4cOZMGECv/3tb+v9LiwsjHvvvZepU6dyyy231BsE0djSG21F6YbGgNvEt99+azpCg6y8FegXnkFNnHpO/ceBNAzWBDk+TbPD8Zn2yhc09IGhgKU39gc836z1e4vRS1+G/oNw/PtcVESkz7Po8lL0B/+idtWHaMvire7j+ODiKwNiFN/LL0dw002VzW/oQ2cOM/enht6rrYaZBxvHyPFYu4o8gyYSk3GMmmA6khB+4Y5wUdLA9Z3TXWq6thb9j7+gV32ISs9E3XIXyhXWJllUjBt1w09Rl81Av/ES0/NXMuOa8agkuT4cLKSLr5XUNT+Gfhd7Bk18vcN0HCH8YlZKHOHO+kPDT3ep6aoTWPMf9xSnydeibru3zYrTmVSMG3XL3Ti7JmC99oLnhnsRFKRAtVLdoIlOnbGee0IGTYiQkJEUxZy0eOIiXCggLsLFnLR4xsVaWE89CJ9uQt347zimz2pwtpi2osLC6HDLHNi7C/1x214X8QX7XljxPW/eq3TxeUF1jMIx+0GsJ/8L669P4rj3MZTr7EMa6He6C3GmjKSoen+/ev9erHm/gYpyHHMeRA0eYSRXeHom9B2IfvMV9IhxbXLdy1ciIzU7dzpJTg7u1t7OnU4iI1tfoWSQhA9Y61agFzyDmnAFjh/9pN7vfninO3i6ROakxUuR+gE7DAKwMzseH73zC6w/PQbKgeOuX6KS+hrL4na7KdmYj/X4fahJ03Bc2/YTobaWZcHSpe05dkzhr4ZmeHg4VVVV/tkZnpZTZKRm2rTjOH7QVyeDJPzIkT4ea9dOdPZbnkEToyfW/S4Y7nQXoiF68zqsv/83RMfiuOdXqC4t+9BpS+qCZNSoCejlb6MzLrVFpoY4HHD11Q1Mv9aG3O6IsyZttTu5BuUjdYMmXn4OXfz9oAm5010EI71hNdafn4DuPT33ONmoEKhps8Dlwnr9RdNRhJekQPmIcjq/HzTx5yfQhz0LsMnChyLY6Joaz4d/YjKOnz+O6mivngDVOQZ1+TWweR16+1bTcYQXpED50OlBExz9fqaJpoblChGIdP5KKDuA46obWjzhsr+pSVdBTBzWq8+jreAeiBDMpED5mLogGXXzz+DLbejXFjQ6LFeuP4lApGtr0e8thgt6w0XDTMdplGoXjppxC3xTjF6bYzqOaCXpZ2oDjvTMU4Mm3sS6oDcZoyeSkRRly1FYQpwLXfAxHNiHY/aDfr3PqTXU8LHonHfQSxahU0ejzmvdsuPCHGlBtRF1za3Qf9BZgyaECFTasjytp24XgKF7nc6FUgrHzDvg8CH0e6+bjiNaQQpUG1FOJ46f3A9R0aeW5zhoOpIQ3tm0FvZ9g5oyE/XDG1tsSiX1RaVnope9iS79znQccY4C468sQKmOnXDMnguVR7D+8iS6utp0JCFaRVsW1ruvQXx31LCRpuOcEzX9ZnAo9L9eMh1FnCMpUG1MJSajbr4LdnzGkYXPmo4jROt8sh72fI2aci3K4TSd5pyoGDfq0qvRG1ajiz4zHUecAylQfuBIy0BNuorj7/8L/cUnpuMIcU601ljvvAZx8ajh40zHaRV16dXQORbrn8+jz1jOXNibFCg/UdNnoTp1xsp+y3QUIc7Np5tgV5FnCQ1nYLWeTlPh56Guvhl2FaHzc03HES0kBcpPVFg7Ii6dDp8UoA8ExiS4Qmitsd59FWLiUOmZpuN4RaVlQM8+6DdeQledMB1HtIAUKD9qf9l0cDjROe+ajiJEy3zxCez8AnX5DL8sPtiWlMOBY+btcKgc/eEbpuOIFpAC5UfOGDdq+Bj0mmz08cCaVViEJuudV6FzDGp0lukoPqF6D/DcwPvhG+jyEtNxRDOkQPmZmjgVThxHr1lmOooQTdJfboMvP0VdejUqrJ3pOD6jZtwClka/8b+mo4hmSIHyM9WzD/S+EJ3zrkxiKWzNevdV6BiFGnup6Sg+pWK7oC6Zhs7PRX+13XQc0QQpUAY4Jk6Fkv3wSYHpKEI0SH+1HT4rRF063bYzlntDXT7DM8vLawuw8aLiIU8KlAlDRkKMGyv7bdNJhGiQ9c6r0KEjKuNy01HahDovAjXtJtj5hWcCXGFLUqAMUE4navwU2L4VvafYdBwh6tG7dsLWDaisq1DntTcdp82oURMgsRf6Xy+iT1aZjiMaIAXKEDX2EmjXDi2tKGEz1ruvQkSk50tUEFMOJ47r7oDyUvSyN8ktruCOJUVMe+UL7lhSRG5xhemIIU/WgzJERXZEjZyAXrMcPeMW2y2bLYJPbnEFiwpLKK2swR3hYlZK3FkLZ+o9X8PmdagrrkdFRJoJ6keq30UwdCQ17y7mH6U9KXF1AqCksob5+fsBZHFRg6QFZZCaOBVqqtG5H5iOIoJcbnEF8/P3U1JZg+b7D+AfthL0e4shvD0qa6qZoAY4ZtyKVVvDjKL652FVrWZRodwrZZIUKIPU+T1g4BD0yvfRNbIUh2g7iwpLqKqtP1rthx/Aet8e9IbVqAmTUZEd/R3RGNXlfN7tNobx+zfS68ieer8rrawxlEqAFCjjHBOvhIpy9IY1pqOIINbYB+2Zj+v3FkNYO9Skaf6KZRsr+l/CkbAIflz0Npwx7NwdIVdBTJICZdrAIRDfDZ39ltyPIdpMYx+0px/XB/ah1+eiMi4Lyeuh1w5PZHGvSxlYUUx66acAhDsVs1LiDCcLbVKgDFMOB2rCVNhVBDu/aHJbGWUkWmtWShzhTlXvsTM/gPX7r4PDibpkuol4xmUkRdF/+pXs6Xg+N331Pl3aO5iTFi8DJAyTAmUDauR4aB+JXt74kPOWXuQWoiEZSVHMSYsnLsKFAuIiXHUfwLrsADovBzX2ElTnGNNRjclIjqHHddeTcLyUvw04IcXJBqSD1QbUee1RYy9BZ7+JLi9BxZzdrdDURW45kURLZCRFNfi3oj/4F6BQl13t/1A2o4aOQv/jb+jVy1D9B5mOE/KkBWUTasIU0KBXvNfg71tykVuIc6UPlnk+jEdPbPCLUahR7cJRaePQm/LQlUdNxwl5UqBsQsV2gSHp6FUfoqvOnnaluYvcQrSG/vANsCzUZTNMR7ENNWYSVJ9Er19lOkrIkwJlI46JU6HyKHrdirN+19xFbiHOlT58EL3qQ1T6eFRcvOk49pGYDN2T0KuzTScJeVKg7KTPAEhMRi9/+6wh501d5BaiNfRHS6GmBjX5WtNRbEUp5WlF7SpCfyOTOZvkk/6hwsJCFi5ciGVZTJw4kWnT6t/ot3LlShYtWkRMjGeE0GWXXcbEiRN9seugopRCTZyKXvgH+KzQc4/UGRq7yC3EudJHD6NXvo8aPhbVNcF0HNtR6Rno1xd6rs/96Cem44QsrwuUZVksWLCAhx9+mNjYWObOnUtqairdu3evt92oUaO4/fbbvd1d0FPDx6L/9SLW8rdx/qBACeErOvstOFmFmiKtp4aoyI6oIenodSvR19waVEveBxKvu/iKioqIj4+na9euuFwuRo0aRUGBrBTbWioszLNI3NYN6P17mn+CEOdIVx5F57wDQ0eiEhJNx7EtNWaS55rw5nWmo4QsrwtUeXk5sbGxdT/HxsZSXl5+1nb5+fn84he/4Omnn6a0tNTb3QY1lXkZuFyeDxEhfEznvAPHK3FMmWk6ir31HwSxXdCrl5lOErK87uJraP44peqPNhs2bBijR48mLCyMjz76iPnz5/OrX/3qrOdlZ2eTne0ZOTNv3jzcbre38WzF5XK17D253VSMvYSqvBXE3H4PjhCZWbrFxydE+eL4WMePUbr8HcKHj6HzkOE+SmYPbfH3c3TSlRz75/NEW9U4u5zv09f2t0A8v7wuULGxsZSVldX9XFZWRnR0dL1tOnb8/gM2KyuLV155pcHXysrKIisrq+7nYGtpud3uFr8nPWYSesV7lL75TxwhMj/auRyfUOSL42N9tAR99DDVl0wPumPdFn8/OmUkvLqAsrcX47jqBp++tr/Z6fxKSGjZwByvu/iSk5PZt28fBw4coKamhrVr15Kamlpvm4MHD9b9e8OGDWcNoBBnU4nJ0HcgOudddG2t6TgiCGitPff2JPdH9exjOk5AULFxMCAFvTYbbcl56G9et6CcTie33XYbjz/+OJZlMX78eHr06MGrr75KcnIyqampvP/++2zYsAGn00mHDh2YPXu2L7IHPcfEqVh/ngdb8mHoKNNxRKDbVQT7vkHNkvPvXDjGTML66+/hsy1w0VDTcUKKT+6DGjp0KEOH1v8fN3Pm9xdgb7jhBm64IbCbx0akpEFsF8+QcylQwks6bwW4wlCpY0xHCSyD06BDR889UVKg/EpmkrAx5XB6JpH9cht6907TcUQA0zXV6PWrUClpqIgOpuMEFBUWhkrLRBfmo48cNh0npEiBsjk1ZhKEn4fObnytKCGa9elGOHrYs/aYOGdqzCSorUHnnz1Ppmg7UqBsTkV0QI2agC5YhT58sPknCNEAK28FdIyCgdJF1Rqqe0/o2Qe9OrvBW2tE25ACFQDUhKlQU4Ne+YHpKCIA6aOHYUsBKi0T5XSajhOw1JhJsHcXfL3DdJSQIQUqAKj4bnBxKjr3fXR1tek4IsDogtVQW4MaNcF0lICmho+Fdu1kZgk/kgIVIBwTp8LhQ+iCj01HEQFG5+VA956oHkmmowQ0FRGJGjYavX4VuuqE6TghQQpUoBiQAuf3QC9/S/rARYvp/Xug+EsZHOEjaswkOHEcvXGN6SghQQpUgDi9VhS7v4Idn5mOIwKEzlsByoFKyzQdJTj0GQhdEqSbz0+kQAUQlT4eIjpgLZch56J52rLQ61bAwCGoqOjmnyCa5VltNwt2fIbev9d0nKAnBSqAqPBw1LhLYfM6dFmJ6TjC7rZvhfJS6d7zMTVyAjgc6DXZpqMEPSlQAUaNuxS0hc5faTqKsDmdtwLaR6BS0kxHCSqqc4xnVG1ejkzk3MakQAUYFRcPvQd4lqKWwRKiEfrEcfSmtajUMah24abjBB3HmCyoOOiZoUO0GSlQAUilZ8K+b+Cbr0xHETalN6+DqhOe7ijhexelQqfOWDJYok1JgQpAKnU0OF3odStNRxE2pfNywN0Vel9oOkpQUi6Xp/h/UoCuqD8FWW5xBXcsKWLaK19wx5IicosrDKUMfFKgApCK7OjpA1+/ShZRE2fR5SXwxSeokeNRSpmOE7TUmCywLM+XgVNyiyuYn7+fksoaNFBSWcP8/P1SpFpJClSAcqRnevrAv/jEdBRhMzo/F7SW7r02puK7e64HnzGB7KLCEqpq618brqrVLCqUUbetIQUqUA1KhfaR0s0n6tFae0bv9R7gGVAj2pQaMwm+2wtFnwNQWlnT4HaNPS6aJgUqQKmwdqjU0ehN62ReMPG9r08t6y73PvmFSh0N57Wvm1nCHdHwIuWNPS6aJgUqgKm0TKg6ji7MNx1F2ITOy5Fl3f1IhZ+HGj4WvWE1+ngls1LiCHfWv+4X7lTMSokzlDCwSYEKZH0GQIzbc81BhDxdU40uWIUako6KiDQdJ2So0Vlwsgpd8DEZSVHMSYsnLsKFAuIiXMxJiycjKcp0zIAk7c4AphwOVFoG+sMl6MOHUJ06m44kTNq6EY4ekcER/tarn2elgdXLYNylZCRFSUHyEWlBBTiVNt4z1LVgtekowjArLwc6dfYszSL8xjOB7CQo/hK9d7fpOEFFClSAU90SoUeSzM0X4vTRw/DJBlRahizrboAaOd5z87zMLOFTUqCCgErP9Hx7++5b01GEIbrgY1nW3SDVMQoGj0CvW4GuqTYdJ2hIgQoCasQ4UEpaUSFM562A7kmo7rKsuymOMZPg6GHYst50lKAhBSoIqM6x0H+QzHAeovQ+WdbdFgamQLRbJpD1ISlQQUKlZ0LJfvhqu+kows90Xg6cGtEpzFEOp6eLddtmz3yIwmtSoIKEGjIS2rWTbr4Qo61az3RXA4fKsu42oEZngdbotctNRwkKUqCChGofgRqchi74GF0j836FjO2fwsFSuffJJlRcvKe7fXU22rJMxwl4UqCCiErPhKNHYNtm01GEn+i8HGgfiRo83HQUcYoaMwnKDsD2raajBDwpUMFkwBDo0Em6+UKEZ1n3PFTqaFnW3UbUkHSIiJR7onxAClQQUS6XZ+LKwnz08UrTcUQb05vyPMu6y71PtqLahaNGZKA3r5Pz0EtSoIKMSs+E6pOeDy8R1HReDsTFQ7Is6243ch76hhSoYJPUF7qcL918QU6XlcD2rah0Wdbdlnr1g7h4OQ+9JAUqyCilPOtEffEJ+mCZ6Tiijej8laeWdZebc+1IKeVpRcl56BUpUEFIpWd47sVYv8p0FNEGPMu650AfWdbdzlRappyHXpICFYRUlwTo1c9zA6cIPl/vgP175d4nm1NdEyCpr5yHXpACFaRUeibsKUbv+dp0FOFjOi8Hwtqhho02HUU0Q85D70iBClIqdQw4nQ0uB59bXMEdS4qY9soX3LGkiNziCgMJRWvo6mr0+o9RKWmyrHsAUMPHgsPR4HkomicFKkipjlEwYAg6P7felCu5xRXMz99PSWUNGiiprGF+/n4pUoFi6wY4dkTufQoQqmMUDBx61nkoWkYKVBBT6ZlwsBR2bKt7bFFhCVW19ZfkqKrVLCqU2ZcDgZWXA1HRcKEs6x4oGjoPRctIgQpianAahLevd5G2tLLhiWQbe1yYd7pL9vKnPqR2SwF7+o+UZd0DSEPnoWgZnxSowsJC7rnnHu666y6WLl161u+rq6t55plnuOuuu3jwwQc5cOCAL3YrmqHCw1FDR6I3rkFXnwTAHeFqcNvGHhdmndklO/pAIU5t8Sz9pUs2gDR0HoqW8bpAWZbFggULePDBB3nmmWdYs2YNe/bsqbdNTk4OkZGR/M///A9TpkzhlVde8Xa3ooVUeiYcr4RPCgCYlRJHuLP+zAPhTsWslDgD6URzzuySHf/dRr7qkEBR+3jpkg0wKj2j3nkoWsbrAlVUVER8fDxdu3bF5XIxatQoCgrq/0/YsGEDmZmZAKSnp/Ppp5/K0uT+0v9iiIrBOtW9kJEUxZy0eOIiXCggLsLFnLR4MpKijMYUDTvd9dr92Hf0PrKHlV2H1XtcBIj+gyAquu48FC3jdb9OeXk5sbGxdT/HxsayY8eORrdxOp1ERERw5MgROnXq5O3uRTOUw4lKG4de/g766GFUh05kJEVJQQoQ7ggXJZU1ZHy3iVocfNw1pe5xETiUw4kaMQ6d827deSia5/VfeUMtoR9OXtmSbQCys7PJzs4GYN68ebjdbm/j2YrL5TLynqovm0b5R0uJ/GILEZdN9/v+W8rU8bGz2WMtnsz+ksz9m9gc05eKdh0JdzmYPbaXHKsfsPvfT/Vl0yhf9qax89Dux6chXheo2NhYysq+nwyxrKyM6OjoBreJjY2ltraWyspKOnTocNZrZWVlkZWVVfdzaWmpt/Fsxe12G3lPukM0JCRyZPk7VKaO9fv+W8rU8bGzoW4Hc7uUEXuygoXxU4mLcDErJY6hboccqx+w+9+P7hgD5/fgyPJ3jZyHdjo+CQkJLdrO62tQycnJ7Nu3jwMHDlBTU8PatWtJTU2tt82wYcNYuXIlAOvWrWPgwIGyRIAf1c2sXPQ5umS/6TjiHA0qzoeISH7/q9t5fnpv6Z4NUN+fh5/JedhCXhcop9PJbbfdxuOPP869997LyJEj6dGjB6+++iobNmwAYMKECRw9epS77rqLd955hxtvvNHr4OLcqBEZADLlSoDJGLm+AAAahklEQVTRJypPLes+VpZ1DwIq7dR5KDOct4hPrrQOHTqUoUOH1nts5syZdf9u164d9913ny92JVpJxcZB34vQ+SvRU66TFmyA0Jvy4GSVrPsUJFRsF+g7EL1uJXrytXIeNkNmkgghKj0T9u+FXUWmo4gW0mtzoMv5kNzfdBThIyotE/bvgd07TUexPSlQIUQNGwUul0y5EiB02QHPsu4jZVn3YKKGjZbzsIWkQIUQFdEBBo1Ar1+Frq01HUc04/QHmErLNJpD+JaK7ACDhst52AJSoEKMIz0TjlTA54Wmo4gmeJZ1XwF9B8qy7kHIkZYJhw/B51tMR7E1KVCh5qJhENFBuhfsrvhL+E6WdQ9aF6dCRCQ6f6XpJLYmBSrEqLAwVOoY9OZ16BPHTccRjZBl3YNb3Xm4KU/OwyZIgQpBKj0TTlahC/NNRxENqFvWfUg6qn2E6Tiijai0TDkPmyEFKhQl94fYLtK9YFdbC6DyqHTvBbveF8p52AwpUCFIORyeb2/bCtEVB03HET9grc2BqBgYMNh0FNGGPOdhhuc8PCznYUOkQIUoNXI8aMtzrUPYhj5SAZ9uRKVnoByyrHuwU2kZnvNw/cemo9iSFKgQpeK7Qe8B6NXZsnikjej1H0NtrXTvhQiVkAiJyTKqthFSoEKYGjMJvtsLRZ+bjiJO0Xk5kNgL1e0C01GEn6j0TNhVhN63x3QU25ECFcJU6mg4rz169TLTUQSg9+6GXUXSegoxavhYUA4ZLNEAKVAhTIWfhxo+Fr1hNfp4pek4IU/n5YDDgRoxznQU4UeqcwxcONgzw7l0t9cjBSrEqTGTPPdiFMhFWpO0Vev5Bn3RMFSnzqbjCD9T6ZlQdgB2Snf7maRAhbqkvpCQKN18pn3xCRwqxzFKuvdCkRqSDu3CZbDED0iBCnFKKU8rqvhLzzUQYYRemwMRkTBouOkowgB1XntUSjq6YDW6ptp0HNuQAiVQ6ePB6ZJWlCH6RCV6cx5q+FhUWDvTcYQhKj0TKo/CpxtNR7ENKVAC1bETpIxAr1sh394M0BvXwsmTMnov1A1IgY5RWNLNV0cKlADAMWYSHD0MW9abjhJydN4K6JIAvfqZjiIMUk6nZwTnlgJ05VHTcWxBCpTwGJAC0W6s1dmmk4QUWdZdnEmlZUJNtadVLaRACQ/lcKJGTYBtm9HlpabjhAydtwI4df1BiJ69oWs3dH6u6SS2IAVK1FGjszwTV65dbjpKSPh+WfeLUO6upuMIG1BKodIzYPtWdFmJ6TjGSYESdVRcPPQfhF6TjbYs03GC31fb4cC3nparEKeotEwA9PpVZoPYgBQoUY8aMwlKv4PtW01HCXo6LwfatUMNHWU6irARFRcPyf1lbj6kQIkfUEPSISISLYMl2pSurkYXfIwaMlKWdRdnUWmZsHcXek+x6ShGSYES9ah24ai0DPSmtehjMtS1zXyyHiqPyb1PokEqdQw4nSE/9ZEUKHEWNWaSZ6jrehlJ1FasvBXQOQYuHGQ6irAh1bETXDQMnb8KbdWajmOMFChxFpWYDIm9ZOqjNqIPH/Is656WKcu6i0aptEw4VAbbPzUdxRgpUKJBaswk2P0VevdO01GCjl6/6tSy7uNNRxE2tiaqH8dd4WT/403uWFJEbnGF6Uh+JwVKNEiNyABXmLSi2oDOWwGJybKsu2hUbnEF/7OpnDXuQYw6sIXKisPMz98fckVKCpRokIrsgBo6Cp2fiz5ZZTpO0NB7d8HunXLvk2jSosISqmo173UfzXlWNVn71lNVq1lUGFo370qBEo1SY7Kg8hh68zrTUYKGzsuB05OCCtGI0soaAL7ukMDWzr2YvHctDqu27vFQIQVKNK7fxeDuKt18PqKtWvS6XM+y7h2jTMcRNuaOcNX9+53uY4mrOkRa6bZ6j4cCKVCiUcrh8MzP98Un6JL9puMEvs+2QEU5Drn3STRjVkoc4U7P7PYbYy9k/3kxTN27mlkpcYaT+ZcUKNEkNWoCKIVeIzNLeEvnrYCIDrKsu2hWRlIUc9LiiYtwoZWDVUlj6V/xNeMcoXUNKrTai+KcqZg4GDgEvTYHfeWP5L6dc5BbXMGiwhJKK2voHlbD/9uUh2vMRFRYmOloIgBkJEWRkeTpCtaVPbDu/wid/Tbq9nsNJ/MfaUGJZjnGTIKDpbCt0HSUgJFbXMH8/P2UVNaggT67N+OsOUnhBSNMRxMBSEVEosZkoQs+Rh8qNx3Hb6RAieYNHgEdOmHJYIkWOz1M+LTM/Rv5tr2b5w50MphKBDI1YQpYtejcD0xH8RspUKJZyhWGSh8PW9ajj4TWjYKtdeZw4Ljj5VxU8RUr4odRejx051UT3lFdEuDiVHTu++jqk6bj+IUUKNEiaswkqK2pW6JcNO3M4cCZ320CYFXXoSE3TFj4liPrSjhSgV7/sekofiEFSrSI6pYISX3Rq5ehtW7+CSGubpiw1mR8t5GtnZM5HBkTcsOEhY/1HwTdLkBnvxUS56FXX+eOHj3KM888Q0lJCXFxcdx777106NDhrO1mzpxJYmIiAG63m//6r//yZrfCEDVmEnrRfCj+Enr1Mx3H1k6PvlqzYj0Jx8v4qM8k5qTF1z0uRGsopVATp6L/90/w5Tbod5HpSG3KqwK1dOlSLr74YqZNm8bSpUtZunQpN91001nbtWvXjqeeesqbXQkbUMPHol99Hr16GUoKVLMykqIYu6wQHd6e2/5tGuo8WTlXeE+lZaDfeAkr+y2cQV6gvOriKygoICMjA4CMjAwKCgp8EkrYk2ofgUod4xnqWnXCdBzb0/v2oDesRk2YLMVJ+IxqF44adxlsyQ/6GV68akFVVFQQHR0NQHR0NIcPH25wu+rqah544AGcTidXXXUVI0Y0fC9IdnY22dmeGQvmzZuH2+32Jp7tuFyugH9PJ6dcw8G1y+mwfQvtJ0zx6WsHw/E5U8Urz3GiXTjumbfhiIr2+vWC7fj4Wigdn9qrb6L0wzc4L285HW+7p0XPCcTj02yBeuyxxzh06NBZj19//fUt3slzzz1HTEwM3333HY8++iiJiYnEx8eftV1WVhZZWVl1P5eWlrZ4H4HA7XYH/HvScQkQ343D7y/h2KA0n752MByf0/SBfVirPkJNnEp5dS344H0F0/FpC6F1fBRq2Ggqs9/mxCXTW9RCt9PxSUhIaNF2zRaoX/7yl43+LioqioMHDxIdHc3Bgwfp1KnhmxBjYmIA6Nq1KwMGDODrr79usEAJ+1NKoUZnof/1Enr/HlR8d9ORbEm//zo4nKhLppuOIoKUmjgVvX4Vem0OasIVpuO0Ca+uQaWmppKbmwtAbm4uw4efPQnm0aNHqa6uBuDw4cNs376d7t3lQy2QqZETwOFAr5YJZBuiyw6g83JQYy9BdY4xHUcEKdWrH/Tqh17+DtqyTMdpE15dg5o2bRrPPPMMOTk5uN1u7rvvPgB27tzJsmXLuPPOO9m7dy9/+9vfcDgcWJbFtGnTpEAFOBUVDYOGo/Ny0NNuQrnk5tMz6Q/+BSjUZVebjiKCnJo4Ff33/4ZPNwblLPlefbJ07NiRRx555KzHk5OTSU5OBqBfv348/fTT3uxG2JBjzCSswnz4dAOkpJuOYxv6YJlnGP7oiZ6Z4IVoQ2roKHTnWM+Q8yAsUDKThGidi4ZBVDSWdPPVoz98AywLddkM01FECFAuF2r8ZPh8C3rvbtNxfE4KlGgV5XR6rkVt3RBS0/83RR8+iF71ISp9PCpOBgEJ/1DjLoWwdujlb5mO4nNSoESrqdFZYFnovBzTUWxBf7QUampQk681HUWEENWhEyo9E71uJfpow/eiBiopUKLVVHw36DMAvTo7JCaubIo+chi98n3U8LGori27x0MIX1ETp0L1SfSqD01H8SkpUMIrauylcOBb2JxnOopROvstqDqBmiKtJ+F/qtsFcOFg9Ir30DU1zT8hQEiBEl5RI8ZBQiLW6y+iT93vFmp05VH0indg6ChUQqLpOCJEOSZeCYfK0EH0ZVEKlPCKcjpxXHc7lOxH57xtOo4Revk7cLwSx5TrTEcRoeziYdDlfE9rPkhIgRJeUwOHeJaifvc19OGz520MZvp4pecDYfAIVGIv03FECFMOB2rCVPhqO/qr7abj+IQUKOETjmtvg5NV6Df/YTqKX+mV70PlURxTZpqOIgRq9ARoH4FeHhy9GVKghE+o87ujMiejP/4Ivedr03H8QledQC9bCgOHoJL6mI4jBOq8CNToSeiNa9AHy0zH8ZoUKOEzaur10D4C67UFITHsXK/6EI5U4LhCWk/CPtSEKZ77E1e+ZzqK16RAiVbLLa7gjiVFTHvlC+5YUsSqAxbqyh/B51vgk+BeXVlXn0R/uAT6XYzqPcB0HCHqqLh4GJyGXvUB+mSV6ThekQIlWiW3uIL5+fspqaxBAyWVNczP38/qC0ZBfDesxQvRNcE77FyvXgYV5dJ6ErbkyJoKR4+g83NNR/GKFCjRKosKS6iqrd+NV1Wr+d+tBz0DJr7bGxRdDA3RNdWeJTV6Xwj9LjYdR4iz9b0Iuiehl78d0N3tUqBEq5RWNny3emllDVycCgOGoN/+Z9DNDQag1+ZAeSmOKTNRSpmOI8RZlFKorKmwdxdbVuZxx5IixvxxNXcsKSK3uMJ0vBaTAiVaxR3R8FJi7ggXSikc190Gx4+j3/o/PydrW7qmxrOce88+MHCI6ThCNEqNGMfJiI6c/Oits7riA6VISYESrTIrJY5wZ/3WQ7hTMSvFs0if6nYBKuNSdO776H3fmIjYJvT6XCj9DscV0noS9qbC2vFRQjpDSj8nvrK07vGqWs2iwhKDyVpOCpRolYykKOakxRMX4UIBcREu5qTFk5EUVbeNuvIGCG+P9doL5oL6kLZq0e+9Dj2SgnJ5bRF8lsSlUascTN67pt7jjXXR241XS76L0JaRFFWvIP2Q6hiFuuI69OKF6E83oi4a5sd0vqcLVsN3e3Hc+YC0nkRAcEXHsKbLYCbs38D/JV3Kcdd5QONd9HYjLSjRptSEK6DL+VivvYCurTUdp9W0ZaHfWwwJiTAk3XQcIVpkVkocHyWOJaK2ion7PPcmntkVb3dSoESbUq4wHNf8GPZ9g171gek4rbd5HXy7GzX5WpRDThsRGDKSopg8KZUd0UnM2J1DX3XkrK54O5MzTbS9lDTodzH6rX+gjx01neacaa2x3n0VunZDDR9jOo4Q5yQjKYp+9/6Czi7NvOJ/Mq57e9ORWkwKlGhznmHnt8Oxo+h3XjUd59x9UgDfFKMmX4NyOE2nEeKcqfN70OmeR+DrHeiX/xwwN+9KgRJ+oRJ7ocZMQq94B71/b73fnZ7Tz443Emqtsd55FdxdUSMyTMcRotXOSxuHuuJ69Nrl6BXvmo7TIlKghN+oq24EVzus1xfWPdbYnH62KVLbNsPXO1CXX4NyBcbIJyEao6ZeD4NHoF9bgP7yU9NxmiUFSviNiopGTbkWtqxHf74FaHxOPzvcSFh37SnGjRo1wXQcIbymHA4ct90LcfFYf3kSXW7+PGuKFCjhVyrrSojtgvXq82irtuk5/UzbvhWKPkddNgPlCjOdRgifUBGROGY/BNUnsZ57wtZLckiBEn6lwtrhuOZW2LsLvXpZk3P6mXL6mtiWBQs5FN6J1d1HGMsiRFtQ53fHcft9sKvI1oMmpEAJ/xs2GnoPQC99hVv7RzY5p5+/nb4mlrDnMy4+tJM3uo/jTxvL7XNNTAgfUSlpqKnXo/Ny0Dn2HDQhBUr4nVIKx8zb4UgFo7Z92Oycfv60qLCEwfu38sCnL/JtezfLEtJtc01MCF9TV5weNPE8erv9Bk1IgRJGqJ59UCMnoJe/xbgOx3l+em9W3zOG56f3NnqXe+qOVdy/bRG7Is/nwSGzqXK2A2xyTUwIH1MOh6err8v5WH+136AJKVDCGHX1LHA4sV5/0XQUtGVhvf4i/7ZjKRtj+/NIyk853K5D3e8DZXJNIc6Vah9h20ETUqCEMapzLOryGbBprdF7MnR1NXrB/0N/+Ab7hk7kD4Nu4eSplhME1uSaQrSGXQdNSIESRqlJ0yHajfXqArRl+X3/uvIo1h9/jV6/CnX1zXS7827+fWQ321wTE8JfPIMmfmSrQRPSbyGMUuHhqBm3oJ9/mhMr34dBaX7bty4vwfrjb+C7b1G334sjfTzQ/DpXQgQrdcVM9DdfeQZNdO+J6neR0TzSghLGqRHjIKkvRxf9Gb1ts1+6F/SeYqwn/hMOluK451d1xUmIUFY300SXBM+giTKzgyakQAnjlFI4Zs2BsDCsP/wKa9796E83tVmh0p9vwXryAUDhuP8J1IWD22Q/QgQi1T4Cx5wHoaYa689mB01IgRK2oHok4Z7/GmrWbDhUjvXHX7dJobLyVmD98dcQ2wXH3KdQ3ZN89tpCBAsVf+agieeMDZqQAiVsQ4WF4Rh3GY7H/1K/UD3xn+hPN3p1kmitsd5bjH7hGeg9wNNyinH7ML0QwUUNHoG68gZ03gp0zjtGMsggCWE7yhWGGncZetRE9Noc9HuLPYMZkvriuPJHMHAoSqnmX+gUXVuL/r+/onM/QI3IQN16NypMJn8VojlqynXo3V95lufo3hPV72K/7l9aUMK2lCsMx7hLcfz2z6hZc+DwIaw//sbTotrashaVrjrh6UfP/QB1+QzU7fdKcRKihTyDJv7DM2jiL/4fNCEFSthevUJ18888herZ5guVPnwI6+mH4ZMNqBvuxHH1LSiH/MkLcS7qBk3U1mA99zu/Dprw6mzNy8vjvvvuY+bMmezcubPR7QoLC7nnnnu46667WLp0qTe7FCFMucJwjL3k7EL1u1+gt26oV6j0d99izbsf9n6NY/YDOMZPNphciMDmGTTxc/jmK/Qi/w2a8OoaVI8ePfjFL37B3/72t0a3sSyLBQsW8PDDDxMbG8vcuXNJTU2le/fu3uxahDDlCkONvQQ9coLnrvd3X8N69lHo2cdzjSqiA9affguA477fopL7G04sROBTg4ejrrwBqk+C1nAO14Fby6sC1ZIiU1RURHx8PF27dgVg1KhRFBQUSIESXlMu1/eFat0Kjr/5T8579lEsFKURMey++QHSkvuZjilE0HBcMdOv+2vzUXzl5eXExsbW/RwbG8uOHTsa3DY7O5vs7GwA5s2bh9sdXMOAXS5X0L0nX/Lm+HzUfyJPfdOd9L0buLCimJd7TeZEkeKBCywu6d/Fx0nNkL+fpsnxaVogHp9mC9Rjjz3GoUOHznr8+uuvZ/jw4c3uoKG+ysaGCGdlZZGVlVX3c2lpabOvH0jcbnfQvSdf8ub4PPfxV1Raipzzh5Nz/qm/yxqL5z7+iqHu4BgYIX8/TZPj0zQ7HZ+EhIQWbddsgfrlL3/pVZDY2FjKysrqfi4rKyM6Otqr1xTihxpbUFAWGhQicLX5V8vk5GT27dvHgQMHqKmpYe3ataSmprb1bkWIaWxBQVloUIjA5dXZu379el544QUOHz7MvHnz6NmzJw899BDl5eX89a9/Ze7cuTidTm677TYef/xxLMti/Pjx9OjRw1f5hQBgVkoc8/P3U1X7fZeyLDQohO/kFlewqLCE0soa3BEuZqXEtfmyNErbZenEBnz77bemI/iUnfqA7cjb42PiBPIn+ftpmhyfpnlzfHKLKxr8AtjaxTx9dg1KiEAhCw0K0TYWFZbUK04AVbWaRYUlbXrOBcfwJiGEEG3G1CAkKVBCCCGaZGoQkhQoIYQQTZqVEke4s/79q/4YhCTXoIQQQjTp9HUmfw9CkgIlhBCiWSYGIUkXnxBCCFuSAiWEEMKWpEAJIYSwJSlQQgghbEkKlBBCCFuSAiWEEMKWbD1ZrBBCiNAlLSg/euCBB0xHsDU5Pk2T49M0OT5NC8TjIwVKCCGELUmBEkIIYUtSoPwoKyvLdARbk+PTNDk+TZPj07RAPD4ySEIIIYQtSQtKCCGELUmBEkIIYUuy3IYhb731Fi+//DLPP/88nTp1Mh3HNhYtWsTGjRtxuVx07dqV2bNnExkZaTqWcYWFhSxcuBDLspg4cSLTpk0zHck2SktLmT9/PocOHUIpRVZWFpMnTzYdy1Ysy+KBBx4gJiYmoIabS4EyoLS0lK1bt+J2u01HsZ1BgwZxww034HQ6efnll1myZAk33XST6VhGWZbFggULePjhh4mNjWXu3LmkpqbSvXt309Fswel0MmvWLHr16sXx48d54IEHGDRokByfM7z33nt069aN48ePm45yTqSLz4CXXnqJG2+8EaVU8xuHmMGDB+N0OgHo27cv5eXlhhOZV1RURHx8PF27dsXlcjFq1CgKCgpMx7KN6OhoevXqBUD79u3p1q2b/N2coaysjE2bNjFx4kTTUc6ZFCg/27BhAzExMfTs2dN0FNvLyckhJSXFdAzjysvLiY2Nrfs5NjZWPoAbceDAAYqLi+ndu7fpKLbx4osvctNNNwXkF2Lp4msDjz32GIcOHTrr8euvv54lS5bw8MMPG0hlH00dn+HDhwPwxhtv4HQ6GTt2rL/j2U5Dd4IE4odNWztx4gRPP/00t956KxEREabj2MLGjRuJioqiV69ebNu2zXSccyb3QfnR7t27efTRRwkPDwc8Te/o6GieeOIJOnfubDidfaxcuZJly5bxyCOP1B2rUPbll1+yePFiHnroIQCWLFkCwPTp003GspWamhqefPJJBg8ezBVXXGE6jm384x//YNWqVTidTk6ePMnx48cZMWIEd999t+loLSIFyqA5c+bwxBNPyCi+MxQWFvLSSy/xm9/8Ro7LKbW1tdxzzz088sgjxMTEMHfuXO6++2569OhhOpotaK2ZP38+HTp04NZbbzUdx7a2bdvG22+/LaP4hGitBQsWUFNTw2OPPQZAnz59+MlPfmI4lVlOp5PbbruNxx9/HMuyGD9+vBSnM2zfvp1Vq1aRmJjIf/7nfwLwox/9iKFDhxpOJrwlLSghhBC2JKP4hBBC2JIUKCGEELYkBUoIIYQtSYESQghhS1KghBBC2JIUKCGEELYkBUoIIYQt/X/ghGeQ9DI2cQAAAABJRU5ErkJggg==\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "fig, ax = plt.subplots()\n", | |
| "ax.plot(X, Y, color=\"C1\", label=\"pred\", marker=\"o\", linestyle=\"\")\n", | |
| "ax.plot(X, truY, color=\"C0\", label=\"true\")\n", | |
| "ax.legend(edgecolor=\"b\")\n", | |
| "fig.tight_layout()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# 2. Model\n", | |
| "- 最も使用機会が多いであろう、GPRegressionベースで検討する。\n", | |
| " - GPと異なり、デフォルトでガウス分布に従う観測ノイズ(\"Gaussian_noise\")が設定されている。\n", | |
| " - 用意されていないモデル(ポワソン回帰etc.)を定義したい場合はGPから構築することになる。ポワソン回帰の例は<http://statmodeling.hatenablog.com/entry/how-to-use-GPy>に紹介されている。" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| " /anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/figure.py:2369: UserWarning:This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "kern = GPy.kern.Matern52(input_dim=1, ARD=True)\n", | |
| "gpmodel = GPy.models.GPRegression(X.reshape((-1,1)), Y.reshape((-1,1)), kernel=kern, normalizer=True)\n", | |
| "gpmodel.randomize()\n", | |
| "gpmodel.plot()\n", | |
| "plt.plot(X_new, np.sin(X_new), color=\"r\", linestyle=\"dotted\", alpha=0.7, linewidth=2)\n", | |
| "plt.tight_layout()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "1. 入力データの次元(input_dim)を1に設定。1次元なのでARDには意味がないが、多次元であれば各次元ごとにlengthscaleが設定される。\n", | |
| "2. モデル定義。注意点はデータをndim=2に設定する必要があること。\n", | |
| "3. hyperparameterの初期値を乱数設定している。" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<style type=\"text/css\">\n", | |
| ".pd{\n", | |
| " font-family: \"Courier New\", Courier, monospace !important;\n", | |
| " width: 100%;\n", | |
| " padding: 3px;\n", | |
| "}\n", | |
| "</style>\n", | |
| "\n", | |
| "<p class=pd>\n", | |
| "<b>Model</b>: GP regression<br>\n", | |
| "<b>Objective</b>: 28.045667621230827<br>\n", | |
| "<b>Number of Parameters</b>: 3<br>\n", | |
| "<b>Number of Optimization Parameters</b>: 3<br>\n", | |
| "<b>Updates</b>: True<br>\n", | |
| "</p>\n", | |
| "<style type=\"text/css\">\n", | |
| ".tg {font-family:\"Courier New\", Courier, monospace !important;padding:2px 3px;word-break:normal;border-collapse:collapse;border-spacing:0;border-color:#DCDCDC;margin:0px auto;width:100%;}\n", | |
| ".tg td{font-family:\"Courier New\", Courier, monospace !important;font-weight:bold;color:#444;background-color:#F7FDFA;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#DCDCDC;}\n", | |
| ".tg th{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;color:#fff;background-color:#26ADE4;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#DCDCDC;}\n", | |
| ".tg .tg-left{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;text-align:left;}\n", | |
| ".tg .tg-center{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;text-align:center;}\n", | |
| ".tg .tg-right{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;text-align:right;}\n", | |
| "</style>\n", | |
| "<table class=\"tg\"><tr><th><b> GP_regression. </b></th><th><b> value</b></th><th><b>constraints</b></th><th><b>priors</b></th></tr>\n", | |
| "<tr><td class=tg-left> Mat52.variance </td><td class=tg-right>0.07496698473222704</td><td class=tg-center> +ve </td><td class=tg-center> </td></tr>\n", | |
| "<tr><td class=tg-left> Mat52.lengthscale </td><td class=tg-right> 1.0724342655855537</td><td class=tg-center> +ve </td><td class=tg-center> </td></tr>\n", | |
| "<tr><td class=tg-left> Gaussian_noise.variance</td><td class=tg-right> 1.2160004114647829</td><td class=tg-center> +ve </td><td class=tg-center> </td></tr>\n", | |
| "</table>" | |
| ], | |
| "text/plain": [ | |
| "<GPy.models.gp_regression.GPRegression at 0x1a19249550>" | |
| ] | |
| }, | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "gpmodel" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# 3. Priors\n", | |
| "- hyperparameterに事前分布を設定するには、\n", | |
| " 1. GPy.priorsから事前分布を選択する。\n", | |
| " 2. set_prior()により特定のhyperparameterに設定する。" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "norm = GPy.priors.Gaussian(mu=0, sigma=1)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "ここで定義したガウス事前分布を、観測ノイズのvarianceに対して設定したい。" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Gaussian_noise.variance\n" | |
| ] | |
| }, | |
| { | |
| "ename": "AssertionError", | |
| "evalue": "Domain of prior and constraint have to match, please unconstrain if you REALLY wish to use this prior", | |
| "output_type": "error", | |
| "traceback": [ | |
| "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
| "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", | |
| "\u001b[0;32m<ipython-input-8-0f073bde4163>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mparam_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgpmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparameter_names\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparam_name\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mgpmodel\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mparam_name\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_prior\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnorm\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
| "\u001b[0;32m/anaconda3/envs/py36/lib/python3.6/site-packages/GPy/core/parameterization/priorizable.py\u001b[0m in \u001b[0;36mset_prior\u001b[0;34m(self, prior, warning)\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mprior\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdomain\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0m_REAL\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0mrav_i\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_raveled_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 41\u001b[0;31m \u001b[0;32massert\u001b[0m \u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mFalse\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mc\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0m__fixed__\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdomain\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0m_REAL\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mc\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcon\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mcon\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconstraints\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mproperties_for\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrav_i\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'Domain of prior and constraint have to match, please unconstrain if you REALLY wish to use this prior'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 42\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0munset_priors\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mpriors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
| "\u001b[0;31mAssertionError\u001b[0m: Domain of prior and constraint have to match, please unconstrain if you REALLY wish to use this prior" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "param_name = gpmodel.parameter_names()\n", | |
| "print(param_name[2])\n", | |
| "gpmodel[param_name[2]].set_prior(norm)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "- priorのdomainが違うと警告が出た。 \n", | |
| " - 改めてgpmodelのconstaintsの欄を見ると\"ve+\", すなわち正の実数値に制約されていることがわかる。\n", | |
| " - 一方で事前分布側のdomainを確認すると…" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "'real'" | |
| ] | |
| }, | |
| "execution_count": 9, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "norm.domain" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "これを正の実数に制約すれば良い。" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 10, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "reconstraining parameters GP_regression.Gaussian_noise.variance\n", | |
| "reconstraining parameters GP_regression.Gaussian_noise.variance\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<style type=\"text/css\">\n", | |
| ".pd{\n", | |
| " font-family: \"Courier New\", Courier, monospace !important;\n", | |
| " width: 100%;\n", | |
| " padding: 3px;\n", | |
| "}\n", | |
| "</style>\n", | |
| "\n", | |
| "<p class=pd>\n", | |
| "<b>Model</b>: GP regression<br>\n", | |
| "<b>Objective</b>: 30.05549886738204<br>\n", | |
| "<b>Number of Parameters</b>: 3<br>\n", | |
| "<b>Number of Optimization Parameters</b>: 3<br>\n", | |
| "<b>Updates</b>: True<br>\n", | |
| "</p>\n", | |
| "<style type=\"text/css\">\n", | |
| ".tg {font-family:\"Courier New\", Courier, monospace !important;padding:2px 3px;word-break:normal;border-collapse:collapse;border-spacing:0;border-color:#DCDCDC;margin:0px auto;width:100%;}\n", | |
| ".tg td{font-family:\"Courier New\", Courier, monospace !important;font-weight:bold;color:#444;background-color:#F7FDFA;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#DCDCDC;}\n", | |
| ".tg th{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;color:#fff;background-color:#26ADE4;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#DCDCDC;}\n", | |
| ".tg .tg-left{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;text-align:left;}\n", | |
| ".tg .tg-center{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;text-align:center;}\n", | |
| ".tg .tg-right{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;text-align:right;}\n", | |
| "</style>\n", | |
| "<table class=\"tg\"><tr><th><b> GP_regression. </b></th><th><b> value</b></th><th><b>constraints</b></th><th><b>priors </b></th></tr>\n", | |
| "<tr><td class=tg-left> Mat52.variance </td><td class=tg-right>0.07496698473222704</td><td class=tg-center> +ve </td><td class=tg-center> </td></tr>\n", | |
| "<tr><td class=tg-left> Mat52.lengthscale </td><td class=tg-right> 1.0724342655855537</td><td class=tg-center> +ve </td><td class=tg-center> </td></tr>\n", | |
| "<tr><td class=tg-left> Gaussian_noise.variance</td><td class=tg-right> 1.2160004114647829</td><td class=tg-center> +ve </td><td class=tg-center>N(0, 1)</td></tr>\n", | |
| "</table>" | |
| ], | |
| "text/plain": [ | |
| "<GPy.models.gp_regression.GPRegression at 0x1a19249550>" | |
| ] | |
| }, | |
| "execution_count": 10, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "norm.domain = \"positive\"\n", | |
| "gpmodel[param_name[2]].set_prior(norm)\n", | |
| "gpmodel" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "- これは半正規分布による制約に相当する(はず)。\n", | |
| " - これでは強すぎるので、半t分布による制約に変更したい。" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "ename": "TypeError", | |
| "evalue": "object() takes no parameters", | |
| "output_type": "error", | |
| "traceback": [ | |
| "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
| "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", | |
| "\u001b[0;32m<ipython-input-11-4841f2918b84>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mhalft\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mGPy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpriors\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mHalfT\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnu\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mA\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
| "\u001b[0;32m/anaconda3/envs/py36/lib/python3.6/site-packages/GPy/core/parameterization/priors.py\u001b[0m in \u001b[0;36m__new__\u001b[0;34m(cls, A, nu)\u001b[0m\n\u001b[1;32m 1238\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0minstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mA\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mA\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0minstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnu\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mnu\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1239\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0minstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1240\u001b[0;31m \u001b[0mo\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mPrior\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__new__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnu\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 1241\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_instances\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mweakref\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mref\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mo\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1242\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_instances\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\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[0m\n", | |
| "\u001b[0;31mTypeError\u001b[0m: object() takes no parameters" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "halft = GPy.priors.HalfT(nu=4, A=1)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "- 何度か試行したが、このHalfTやInverse_Gammaは定義しようとするとエラーが出る。\n", | |
| " - GPy側の問題?\n", | |
| "- やむを得ないので、StudentTのDomainを上書きして代用する。" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 12, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "reconstraining parameters GP_regression.Gaussian_noise.variance\n", | |
| "reconstraining parameters GP_regression.Gaussian_noise.variance\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<style type=\"text/css\">\n", | |
| ".pd{\n", | |
| " font-family: \"Courier New\", Courier, monospace !important;\n", | |
| " width: 100%;\n", | |
| " padding: 3px;\n", | |
| "}\n", | |
| "</style>\n", | |
| "\n", | |
| "<p class=pd>\n", | |
| "<b>Model</b>: GP regression<br>\n", | |
| "<b>Objective</b>: 32.25080493682037<br>\n", | |
| "<b>Number of Parameters</b>: 3<br>\n", | |
| "<b>Number of Optimization Parameters</b>: 3<br>\n", | |
| "<b>Updates</b>: True<br>\n", | |
| "</p>\n", | |
| "<style type=\"text/css\">\n", | |
| ".tg {font-family:\"Courier New\", Courier, monospace !important;padding:2px 3px;word-break:normal;border-collapse:collapse;border-spacing:0;border-color:#DCDCDC;margin:0px auto;width:100%;}\n", | |
| ".tg td{font-family:\"Courier New\", Courier, monospace !important;font-weight:bold;color:#444;background-color:#F7FDFA;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#DCDCDC;}\n", | |
| ".tg th{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;color:#fff;background-color:#26ADE4;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#DCDCDC;}\n", | |
| ".tg .tg-left{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;text-align:left;}\n", | |
| ".tg .tg-center{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;text-align:center;}\n", | |
| ".tg .tg-right{font-family:\"Courier New\", Courier, monospace !important;font-weight:normal;text-align:right;}\n", | |
| "</style>\n", | |
| "<table class=\"tg\"><tr><th><b> GP_regression. </b></th><th><b> value</b></th><th><b>constraints</b></th><th><b> priors </b></th></tr>\n", | |
| "<tr><td class=tg-left> Mat52.variance </td><td class=tg-right>0.07496698473222704</td><td class=tg-center> +ve </td><td class=tg-center> </td></tr>\n", | |
| "<tr><td class=tg-left> Mat52.lengthscale </td><td class=tg-right> 1.0724342655855537</td><td class=tg-center> +ve </td><td class=tg-center> </td></tr>\n", | |
| "<tr><td class=tg-left> Gaussian_noise.variance</td><td class=tg-right> 1.2160004114647829</td><td class=tg-center> +ve </td><td class=tg-center>St(0, 0.3, 4)</td></tr>\n", | |
| "</table>" | |
| ], | |
| "text/plain": [ | |
| "<GPy.models.gp_regression.GPRegression at 0x1a19249550>" | |
| ] | |
| }, | |
| "execution_count": 12, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "halft = GPy.priors.StudentT(mu=0, sigma=0.3, nu=4)\n", | |
| "halft.domain = \"positive\"\n", | |
| "gpmodel[param_name[2]].set_prior(halft)\n", | |
| "gpmodel" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# 4. MCMC" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "\"GP&TPonSinWave\"で書いた通り。" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "CPU times: user 1min 12s, sys: 395 ms, total: 1min 13s\n", | |
| "Wall time: 36.8 s\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "%%time\n", | |
| "hmc = GPy.inference.mcmc.HMC(gpmodel) # sampler\n", | |
| "sample = hmc.sample()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "- デフォルトではiter=1000\n", | |
| "- 他にMH法の実装もある。レプリカ交換法はない。 " | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "得たMCMCサンプルの分布は以下の通り" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 14, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAEYCAYAAABBfQDEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xt0VOW9//HP5MotGcIEAuFygAgEAmJwBAUviUZBqhZspbYerEUkggf1FKOAeJTlQSIRRZfBogSkFrHWH4r2iKVBqQoquUBBbk0QuoAEhiTCJIRchpnfHyzGiSQySWayJ8n7tZZrZXb2PPs7xJ185pnvfrbJ5XK5BAAAAECSFGR0AQAAAEAgISADAAAAHgjIAAAAgAcCMgAAAOCBgAwAAAB4ICADAAAAHgjIAAAAgAcCMgAAAOCBgAwAAAB4ICADAAAAHkKMLqA+ubm5ysvLU2pqqoqKiowuBwAAAG1AbGysV/uZXC6Xy8+1NAsBGQAAAL7gbUCmxQIAAADwEJABOTc3VytWrDC6DAAAALRDtFgAAACgXaDFAgAAAGiCgAzItFgAAADAKLRYwKecVVUqXZ4uy0NzFRTewehyAAAA3GixgCHsH66To/io7BveMboUAACAJgnIgEyLRetUW3RE1ft3S5Kq9+9WbfFRgysCAABoPFos4BMul0uly59X7eFC97bQ/oNkmfW4TCaTgZUBAACcR4sFWpSj+Kgcx49JkkYsW31+24ljcjCLDAAAWhlmkNE8X33m/b7XJPuvDgAAgEvwdgaZgAyv1Hzkn4vuwm6/2y/jAgAA/FirDsi5ubnKy8tTamoqAdmPKla9bHQJjdJl2iNGlwAAAFqxVh2QPRGQpdLn5xtdQptneeI5o0sAAAB+xkV6AAAAQBMQkAEAAAAP7bLFojhtus/HBFpSr4yVRpcAAECr06pbLLiTHgAAAIwSYnQB9bFarbJarUaXAQAAgHYoIGeQAQAAAKMQkAEAAAAPBGQAAADAAwEZAAAA8EBABgAAADwQkAEAAAAPARmQWQcZAAAARmEdZAAAAMBDQM4gAwAAAEYhIAMAAAAeCMgAAACABwIyAAAA4IGADAAAAHggIAMAAAAeCMgAAACABwIyAAAA4KHFbhRy4sQJrV+/XpWVlZozZ05LHRYAAABolGbNIC9fvlzTp0+/KPDu3LlTjzzyiGbPnq0PPvhAkhQTE6OZM2c253AAAACA3zUrICclJWn+/Pl1tjmdTmVlZWn+/Pl66aWXtHXrVh09erRZRQIAAAAtpVktFsOGDZPNZquzrbCwUD179lRMTIwkaezYscrJyVGfPn28GjM7O1vZ2dmSpPT0dEVHRzenxHoV+3xEoGX547wAAADn+bwHuaysTBaLxf3YYrGooKBA5eXlWrdunQ4fPqz3339fkydPrvf5KSkpSklJcT8uKSnxdYlAq8d5AQBA48XGxnq1n88DssvlumibyWRSRESEZsyY4dUYubm5ysvLU2pqqq/L044dO3SorMLn4wItacCOHUpMTDS6DAAA2iSfB2SLxaLS0lL349LSUkVFRTVqDKvVKqvV6uvSAAAAgEvyeUCOi4tTcXGxbDabunXrpm3btunhhx/29WGaLDExUT27dTG6DKBZejF7DACA3zRrFYtly5ZpwYIFKioq0oMPPqhPP/1UwcHBmjZtmhYtWqT//u//1jXXXKO+ffs2atzc3FytWLGiOaUBQLtwtvacnvrwn6qqPWd0KQDQZphc9TUNB5CioiKfj1mcNt3nYwItqVfGSqNLQIDI2lqoLwpP6rrLuuv+cZcZXQ4ABDRvL9ILyFtNM4MMAJd2pOyMdh07JUnafeyUjnxfaXBFANA2BGRAtlqtflnBAgDaCpfLpT9+c0inz9ZKkk6drdVbX39X70pCAIDG8flFegAA/9l88JT766sH99HVg+t+/9PvTru/vimua0uVBQBtSkAGZH+ugwwArcHa/OZff7E2v/6Wi3tGedeDBwDtVUAGZNZBBtAWvfhZgdElSGpcHb9PHuTHSgAgMAVkQAYAIz3x/j+NLiFg+Ovf4vnJI/0yLgD4AgEZgN/dt+Yro0tAgGlt/0+8+dtrjC4BQAsKyFUsWOYNAAAARgnIGWR6kAEAAGCUgJxBBgAAAIwSkDPIANqOHTt26MyhXUaXATTLjh0dlJiYaHQZAFpIQAZkf6+D3CtjpV/G9ZfS5+cbXUKbZ3niOaNLAAAAASIgAzI9yEDbkZiYqM67qowuA2gWZo+B9oUeZAAAAMADARkAAADwQEAGAAAAPARkD7K/L9ID0LJa213IuNW0/3GraQCBLCADMhfpAQAAwCi0WAAAAAAeAnIGGQCM5K+P/1/8rMAv4/rT75MHGV0CALQ4ZpABAAAADwRkAAAAwIPJ5XK5jC7ipxQVFRldQptVseplo0tolC7THjG6BKDFrM333+++e0bF+m1sAAhksbHe/f5jBhkAAADwEJAX6bEOMoD2rqFZ3s0HT3k9xk1xXX1VDgC0KwEZkFkHGQAAAEahxQIAAKARHA6ntm45KYfDaXQp8JOAnEEGANTPs23i25Lai74/PDq0JcsB2qX9u+2qsDu0f7ddwxNpZWqLCMgA0EoNjw7VSccPgbh7yMWBGYBv2U/X6qStWpJ00lYt++laRZp5Y9rWsMwbvFLz0Tt+GTfs9rv9Mi7QHhwpO6MXsvfp1d+laPbqbM25eZj6RnUyuiygzXK5XNq+tVSnyn54M9q1W6hGj7PIZDIZWBm8xTJvANCGuVwu/fGbQzp9tlYx5k46dbZWb339nQJ8zgNo1SrsDlXYHZfchtaPgAwArdDR7yt19PtKSdIti//f+W2nftgGwPe6RIaoS2TIJbeh9SMgA0Ar1Ceqk/r8qJ2iT9eLtwHwHZPJpKEjzAoLPx+fwsKDNHSEmfaKNoi3PPBKg73CX33m/SDXJPumGAAymUy6d8wAvZC9T6fP1qprx1BNvXogf6gBP4s0h6p7j3AdO3JW3WPCuUCvjWqxgFxVVaWVK1cqJCRECQkJuu6661rq0ADQJvXt1lmX9+6qLwpP6vLeUVygB7SQ+BGROn26VvHDI40uBX7SrIC8fPly5efny2w2a+nSpe7tO3fu1OrVq+V0OnXTTTdp0qRJ2r59u66++mpZrVa99NJLBGQA8IHfjB6gw6Vn9JvR/Y0uBWg3QkKCNC6pu9FlwI+a1YOclJSk+fPn19nmdDqVlZWl+fPn66WXXtLWrVt19OhRlZaWKjo6+vxBg2h9BgBf6BgarGfvGKkOocFGlwIAbUazZpCHDRsmm81WZ1thYaF69uypmJgYSdLYsWOVk5Mji8Wi0tJS9e/fn2WI2hKPvuLwwj0Xfbv6soSWrAYAAKDZfN6DXFZWJovF4n5ssVhUUFCgW2+9VatWrVJ+fr6uvPLKBp+fnZ2t7OxsSVJ6erp71hmBr7zw4m38/AAAQGvj84Bc3+ywyWRShw4dNGvWrEs+PyUlRSkpKe7HJSUlPq0PfnRZgiJO//DzKjdHq5qfHwAACBCG3UnvQivFBaWlpYqKimrUGLm5uVqxYoWvSwMAAAAuyecBOS4uTsXFxbLZbHI4HNq2bZusVmujxrBarUpNTfV1aQAAAMAlmVzNuGJu2bJl2rt3r8rLy2U2mzVlyhTdeOONys/P15o1a+R0OpWcnKw777yzUePm5uYqLy9PqampKioqamp5MMCPWywAAAAChbctFs0KyC2BgNy6EJABAECg8jYgc6tp+FS5OVrRocEqqT1ndCkAAABNEpB37OAiPQAAABiFFgv4XGxsLD83AAAQcAxb5s0XmEEGAACAUQKyB9lqtTZ6aTgAAADAFwJyBhmtG+0VAACgNSMgAwAAAB4CMiDTgwwAAACjsIoFAAAA2oVWvYoFAAAAYBQCMgAAAOAhIAMyPcgAAAAwCj3IAAAAaBfoQQYAAACagIAMAAAAeCAgAwAAAB4IyAAAAICHgAzIrGIBAAAAo7CKBQAAANoFVrGAIZxVVTr54jNyVlcZXQoAAECTEJDhU/YP18lRfFT2De8YXQoAAECTEJDhM7VFR1S9f7ckqXr/btUWHzW4IgAAgMYjIMMnXC6XTr+/Vs5yuyTJWX5ap9evVYC3uAMAAFyEgAyfcBQfleP4sbrbThyTg1lkAADQyhCQ4RMhvfoopGfvuttieiukVx+DKgIAAGiagAzIrIPc+phMJpkn36OgCLMkKSjCLPOd98hkMhlcGQAAQOOEGF1AfaxWq6xWq9FloJFCY/sqPH6EzuZ8qfChIxTK7DEAAGiFAnIGGa1X5B13K6RXH0XecbfRpQAAADQJd9IDAABAu8Cd9AAAAIAmICADAAAAHgjIAAAAgAcCMgAAAOCBgAwAAAB4ICADAAA0grcrIaD1arEbhZw4cULr169XZWWl5syZ01KHBQAAABrFqxnk5cuXa/r06RcF2507d+qRRx7R7Nmz9cEHH/zkGDExMZo5c2bTKwUAAABagFczyElJSZowYYIyMzPd25xOp7KysrRgwQJZLBbNmzdPVqtVTqdTb7/9dp3nz5w5U2az2beVAwAAAH7gVUAeNmyYbDZbnW2FhYXq2bOnYmJiJEljx45VTk6OJk+erLlz5za5oOzsbGVnZ0uS0tPTFR0d3eSxAAAA/IF80rY1uQe5rKxMFovF/dhisaigoKDB/cvLy7Vu3TodPnxY77//viZPnlzvfikpKUpJSXE/LikpaWqJAAAAPhcbG0s+aaW8vcCyyQHZ5XJdtM1kMjW4f0REhGbMmOHV2Lm5ucrLy1NqampTywMAAACapMkB2WKxqLS01P24tLRUUVFRPinKarXKarX6ZCwAAACgMZq8DnJcXJyKi4tls9nkcDi0bds2n4Xa3NxcrVixwidjAQAA+FJFeY3RJcDPTK76eiV+ZNmyZdq7d6/Ky8tlNps1ZcoU3XjjjcrPz9eaNWvkdDqVnJysO++80+cFFhUV+XxMAACApghShPtrp8oNrARN4W0PslcB2UgEZAAAECgIyK2btwE5IG81TYsFAAAINJXl4aoor3H/V1kebnRJ8BNmkAEAALxQXyDuFFFtQCVoqlY9gwwAAAAYJSADMi0WAAAAMAotFgAAAF6gxaL18/ud9AAAANq6E3Xm6S4Ow+UeC1nEeJe90ArQYgEAAAB4oMUCAACgAScaEUOYQQ58rGIBAAAANAEBGQAAAPDARXoAAKDdO3igptljVByof3vckLBmj42WFZAzyFykBwAAAKME5Ayy1WqV1Wo1ugwAAAC0QwE5gwwAAAAYJSBnkAEAAJrrn7kVRpcgSfpnrvf9zSOtXfxYCbzFDDIAAADgISADMhfpAQAAwCgB2WLBRXoAAAAwSkDOIAMAAABGISADAAAAHgKyxQIAALQfWz8rNbqEgLH1s2q/jDsu2eKXcdsqZpABAAAADwRkAAAAwAMBGQAAAPAQkAGZdZABAABglIC8SI91kAEAAGAUk8vlchldxE8pKioyugQAAFqVv31YbHQJQLOMv6OXX8aNjY31ar+AbLEAAAAAjEJABgAAADwQkAEAAAAPBGQAAADAAwEZAAAA8EBABgAAADwE5DrIAACgaXbs2KF9Bw4ZXQbQLD12DFBiYqJhx2+xgLx9+3bl5+fLbrdr/PjxGjlyZEsdGgAAAPCaVwF5+fLlys/Pl9ls1tKlS93bd+7cqdWrV8vpdOqmm27SpEmTGhxj9OjRGj16tCoqKvTWW28RkAEA8IPExETZjvQ0ugygWRIT/XOjEG95FZCTkpI0YcIEZWZmurc5nU5lZWVpwYIFslgsmjdvnqxWq5xOp95+++06z585c6bMZrMkaf369Ro/frwPXwIAAADgO14F5GHDhslms9XZVlhYqJ49eyomJkaSNHbsWOXk5Gjy5MmaO3fuRWO4XC6tXbtWV1xxhQYOHNjgsbKzs5WdnS1JSk9PV3R0tNcvBgAASBK3mkbrZnT+a3IPcllZmSwWi/uxxWJRQUFBg/tv3LhRu3fvVmVlpY4fP65bbrml3v1SUlKUkpLiflxSUtLUEgEAANAK+Sv/xcbGerVfkwOyy+W6aJvJZGpw/4kTJ2rixIlejZ2bm6u8vDylpqY2tTwAAACgSZockC0Wi0pLS92PS0tLFRUV5ZOirFarrFarT8YCAAAAGqPJATkuLk7FxcWy2Wzq1q2btm3bpocfftiXtQEAgCYYf4exKwA01tbPSi+9E5plXLLl0jvBzauAvGzZMu3du1fl5eV68MEHNWXKFN14442aNm2aFi1aJKfTqeTkZPXt29cnRdFiAQAAAKOYXPU1EweQoqIio0sAAAB+xAyy/zGDfJ63F+kF+bmOJsnNzdWKFSuMLgMAAADtEDPIAACgTfpnboXRJTTaSGsXo0to01r1DDIAAABglIAMyLRYAAAAwChNXubNn1gHGQAAAEYJyBlkAAAAwCgEZAAAAMBDQLZYcKMQAADQXI1ZEeLggRq/1RE3JMxvY8M/AjIg04MMAAAAo9BiAQAAAHggIAMAAAAeAjIgsw4yAAAAjMKtpgEAABpwohExJMa7uxjDQNxqGgAAAGgCAjIAAADggYAMAAAAeAjIdZABAAACgWdfcWV5+EXf7xRR3YLVoKUE5Awyq1gAAADAKKxiAQAA4AVmkFs/VrEAAAAAmoCADAAAAHggIAMAAAAeCMgAAACABwIyAAAA4CEgAzLLvAEAAMAoLPMGAADgpSBFuL92qtzAStAULPMGAAAANAEBGQAAAPBAQAYAAAA8EJABAAC85FS5ukSE03/cxhGQAQAAAA8EZAAAAMADARkAAADwQEAGAABohC4RYUaXAD8LaakDHT16VB9//LHKy8s1YsQI3XLLLS11aAAAAMBrXgXk5cuXKz8/X2azWUuXLnVv37lzp1avXi2n06mbbrpJkyZNanCMPn36aMaMGXI6ndxGGgAAAAHLq4CclJSkCRMmKDMz073N6XQqKytLCxYskMVi0bx582S1WuV0OvX222/Xef7MmTNlNpuVm5urDz74QBMmTPDtqwAAAAB8xKuAPGzYMNlstjrbCgsL1bNnT8XExEiSxo4dq5ycHE2ePFlz586tdxyr1Sqr1arFixfr2muvbWbpAAAAgO81uQe5rKxMFovF/dhisaigoKDB/ffs2aNvvvlGDodDiYmJDe6XnZ2t7OxsSVJ6erqio6ObWiIAAIBfkE/atiYHZJfLddE2k8nU4P4JCQlKSEi45LgpKSlKSUlxPy4pKWlagQAAAH4QGxtLPmmlYmNjvdqvycu8WSwWlZaWuh+XlpYqKiqqqcPVkZuby4V8AAAgIBUVFRldAvysyQE5Li5OxcXFstlscjgc2rZtm6xWq0+KslqtSk1N9clYAAAAQGOYXPX1SvzIsmXLtHfvXpWXl8tsNmvKlCm68cYblZ+frzVr1sjpdCo5OVl33nmnT4rKzc1VXl6eUlNTeZcGAAAAn/C2xcKrgGwkAjIAAAB8we89yAAAAEBbFJABmYv0AABAoHI4nNq65aQcDqfRpcBPaLEAAABohG93nNKxI2fVu29HDU/sanQ5aARaLAAAAHzMfrpWJ23VkqSTtmrZT9caXBH8ISADMi0WAAAg0LhcLu3bfVo11edbK2qqndq3+3S9N09D69bkO+n5k9Vq9dmaygAAAL5QYXeowu6od1uEOdSgquAPATmDDAAAEGi6RIaoS2TIJbeh9QvIgEyLBQAACDQmk0lDR5gVFn4+PoWFB2noCLNMJpPBlcHXWMUCAACgEdyrWPTrqOFXsIpFa8IqFgAAAH4QPyJSXSJDFD880uhS4Cc0zQAAADRCSEiQxiV1N7oM+FFAziDTgwwAAACj0IMMAACAdoEeZAAAAKAJCMgAAACABwIyAAAA4IGADAAAAHgIyIDMKhYAAAAwCqtYAAAAoF1gFQsAAACgCQJ+BhkAAABoScwgw+fmzp1rdAlAu8I5B7Q8zru2jYAMAAAAeCAgAwAAAB4IyPC5lJQUo0sA2hXOOaDlcd61bVykBwAAAHhgBhkAAADwQEAGAAAAPAQ/88wzzxhdBJpmypQpOn78uMaMGSNJOnfunB544AHt27dP1157bYPPO3z4sL777jv16tVLkrRnzx6lpaVp27Zt+vvf/y673a5hw4appKREGRkZ2rBhgzZt2qRz585p0KBBPn8dBw8e1AcffKDExESfjw00VqCcV1u2bNHmzZs1atQon76+LVu2KDIyUh07dpQkPfTQQ7ruuusUHh7u0+NI0rvvvquDBw9qyJAhPh8bAPwpxOgC0HTh4eE6cuSIampqFBYWpl27dqlbt26XfN7hw4d18ODBOn94hw4detGajsHBwZo6daoGDhyos2fPau7cubr88svVp08fn72Gc+fOKS4uTnFxcT4bE2iOtnBe/ZQtW7aob9++Xr0mwFunTp3SmjVrVFBQoM6dOyskJEQ///nPNXr0aL8d8+DBg/rHP/6hadOm+e0Yl7Jp0yaFh4frhhtuMKwGSVq8eLEefvhhde7c2dA62hICcit3xRVXKD8/X1dffbW2bt2qcePGaf/+/ZKkwsJCvfnmm+4/9LNmzVKPHj305z//WTU1Ndq/f78mT54ss9lc79hRUVGKioqSJHXs2FG9e/dWWVlZnT/kTqdTs2fP1pIlS9wn5uzZs/Xss8+qsLBQ69evl8PhUEREhGbPnq2uXbvq3Xff1ffff6+TJ08qIiJCKSkp+uijjzR37tx6a46NjdWWLVuUm5ur6upqnThxQqNHj9Z//ud/SpJ27typdevWyel0KiIiQv/zP/+jqqoqrVq1SkeOHNG5c+d011136aqrrvLnjwJtiNHn1Y/Z7Xa9/vrrKi0tlST99re/VXx8vN59912VlJTIZrOppKREEydO1MSJEyVJ7733nr788ktZLBZFRERo4MCB6tGjhw4ePKhXXnlFYWFhWrRokSTpk08+UV5enhwOh37/+9+rd+/e2rt3r1avXi1JMplMWrhwoTp27KgNGzbo888/V1BQkK644grdc889ys7O1ubNm+VwOBQTE6PZs2dfNCN9/PhxZWVlyW63Kzw8XKmpqerdu3czfkoIFC6XSxkZGbrhhhv0yCOPSJJOnjyp3Nxcvx43ECZXbrnlFkOP73K55HK5NG/ePEPraIsIyK3cuHHj9N5772nUqFH697//reTkZPcf8tjYWC1cuFDBwcHatWuX3n77bT322GP61a9+pYMHD+r++++XdP6j4H/9619KS0tTVFSUpk6dqr59+9Y5js1m06FDh3TZZZfV2R4UFCSr1art27crOTlZBQUF6tGjh7p27ar4+HgtWrRIJpNJmzdv1ocffqh7771XkvTdd9/p2WefVVhYmPbs2eMer6GapfMzdEuWLFFISIgeffRRTZgwQWFhYVqxYoUWLlyoHj16qKKiQpK0fv16DR8+XLNmzdKZM2c0f/58jRgxQh06dPDPDwJtitHn1Y+tXr1at912m+Lj41VSUqJFixbppZdekiQVFRXp6aef1tmzZ/Xoo4/qlltu0b///W998803WrJkic6dO6cnnnhCAwcO1NVXX61PPvlEU6dOrRMsIiIi9Pzzz+tvf/ubPvroIz344IP68MMPdf/99ys+Pl5VVVUKDQ3Vjh07lJOTo+eee07h4eHu823MmDHuJa/eeecdffrpp7r11lvrvIbXX39dDzzwgHr16qWCggKtXLlSTz/9dDN+SggU3377rUJCQuqExe7du+vWW2+VzWbTq6++qurqaknStGnTNGTIEO3Zs8c9MSJJWVlZiouLU1JSktauXavc3FwFBwfr8ssv17333quvvvpK7733noKCgtSpUyctXLiwzhhNmVypz9SpUzVx4kTl5+crLCxMaWlp6tq1q06ePKnXXntNdrtdkZGRmjVrlqKjo/Xuu++qQ4cOuuOOO/Txxx/r73//u4KDg9WnTx89+uijXk3W/OlPf1L37t01fvx4Sedbkzp27Kibb75ZS5Ys0ZkzZ+RwOHT33Xfrqquuks1m0+LFi5WQkOD+HfPMM89o8eLFioyM1JIlS1RaWqra2lpNnDjRfW429NpOnTqlN954QzabTZI0ffp0DRkyRJ9//rk2btwoh8OhQYMGafr06QoKaj+XrhGQW7n/+I//0MmTJ7V169aLengrKyuVmZmp48ePSzrfzlCfAQMGaPny5erQoYPy8/OVkZGhV155xf39qqoqLV26VPfdd586dep00fPHjh2r9957T8nJydq6dauuueYaSVJZWZmWLVum77//Xg6HQz169HA/x2q1Kiws7KKxfqrm4cOHu4/fp08flZSUqKKiQkOHDnWP3aVLF0nSrl27lJeXp48++kiSVFNTo5KSkhb7GButWyCcV552796to0eP1qnh7NmzkqRRo0YpNDRUoaGhMpvNOn36tPbv36+rrrrKfY5deeWVPzn+hX7rgQMHavv27ZKk+Ph4/fGPf9S1116rMWPGyGKxaPfu3UpKSnLPDl84344cOaJ33nlHZ86cUVVVlUaOHFln/KqqKh04cEAvvviie5vD4fjJmtB6HDlyRAMGDKj3e2azWQsWLFBYWJiKi4v18ssvKz09vcGxKioqtH37di1btkwmk0lnzpyRdP4TkSeffFLdunVzb/PU2MmV6Ojoeo9fXV2tQYMG6de//rX+9Kc/afPmzfrFL36hrKwsXX/99UpKStKnn36qVatW6fHHH6/z3A0bNujVV19VaGiou0ZvJmvGjRunN9980x2Qv/rqKz355JMKDQ3VY489pk6dOslut+vJJ5+U1WqVdP6N8cyZMzV9+vSLXsOsWbPUpUsX1dTUaN68eRozZowiIiIafG2rV6/WsGHDlJaWJqfTqaqqKh09elTbtm3Ts88+q5CQEK1cuVJffPGF4a0kLYmA3AZYrVa99dZbeuaZZ1ReXu7e/uc//1kJCQlKS0uTzWbTwoUL632+5x/nUaNGuT8GjYyMlMPh0NKlS3Xddde5/4j+2ODBg3X8+HHZ7Xbl5OToF7/4hSRp1apVuu2222S1WrVnzx795S9/cT+noQuCfqrm0NBQ99dBQUENBhPp/MdOc+bMUWxsbIP7AD/F6PPKk8t1hQJ8AAAHEUlEQVTl0qJFi+p9UxkS8sOv8QvnRWOXt78whud5NWnSJI0aNUr5+fl68skn9dRTT8nlcslkMl30/MzMTKWlpal///7asmVLnU+FpPOtWJ07d1ZGRkaj6kLrtHLlSh04cEAhISF66qmnlJWVpcOHDysoKEjFxcU/+dyOHTsqLCxMf/jDHzRq1Cj3m7shQ4YoMzNT11xzTb3nTGMnVxoKyCEhIe5jDhw4ULt27ZIkFRQUuAP39ddfr7Vr11703H79+umVV17RVVdd5e699mayZsCAAbLb7SorK5PdbleXLl0UHR0th8OhdevWad++fTKZTCorK9Pp06clSdHR0Ro8eHC9r+Hjjz9WTk6OJKmkpETFxcWKiIho8LV9++23+q//+i9Jcs/Qf/755zp06JC7daOmpkaRkZH1Hq+taj9z5W1YcnKyfvnLX6pfv351tldWVrovxNmyZYt7e4cOHdyzT9L5iysu/EEtLCx09/K6XC794Q9/UO/evXXbbbc1eHyTyaTRo0drzZo16tOnjyIiIi46/j/+8Q+vXktDNTdk8ODB2rdvn/ujoQsf+Y4cOVIbN250v65Dhw55dXzgAqPPK0+XX365PvnkE/fjw4cP/+T+8fHxysvLU01NjaqqqpSfn99gnQ05fvy4+vXrp0mTJmngwIE6duyYRo4cqc8++8z9cfmF862qqkpRUVFyOBz64osvLhqrU6dO6tGjh7766itJ5wP/pV4DWo++ffvW+R07ffp0PfXUU7Lb7frrX/8qs9msjIwMpaenuz85CA4OrvNGrra21r39ueee05gxY5STk+Puk58xY4buvvtulZaW6vHHH6/zplX64Y3r0qVL9cQTT7jHkxo3uRIcHOx+E3ipfX9s3rx5Gj9+vL777js98cQT7jerc+bMUUZGhjIyMvTaa6/V+0nmmDFj9PXXX2vbtm0aO3asJOnLL7+U3W5Xenq6MjIy1LVrV9XU1EhSg+2Ce/bs0e7du/W///u/ysjI0IABA+r823r72lwul2644QZ33S+//LKmTJni9b9FW8AMchtgsVjcF+Z4+vnPf67MzEz93//9nxISEtzbhw8frg0bNigtLU2TJ0+W3W7Xpk2bFBwcrLCwMD366KMymUzav3+/Pv/8c/Xr109paWmSpF//+tcaNWqUNm3aJOmHCxTGjh2refPmadasWe7j3HXXXXrxxRfVrVs3DRo0yB1if0pDNTckMjJSM2bM0AsvvCCXy6XIyEg99dRT+uUvf6k333zT/Y6/e/fuF60mAPyUQDivLvjd736nrKwsPfbYYzp37pyGDh2qGTNmNFj7ZZddpiuvvFJpaWnq3r274uLi3DNoSUlJeuONN+pcpFefjz/+WHv27FFQUJB69+6txMREhYaG6vDhw5o7d65CQkKUmJio3/zmN/rVr36l+fPnq3v37urXr1+9Afzhhx/WG2+84b5wd9y4cerfv3/DPwC0GsOHD9e6deu0adMm9/+7F4JcZWWlLBaLgoKC9Nlnn8npdEo6PwN69OhR1dbWqra2Vrt373b3u1dXV2vUqFEaPHiwZs+eLen8G7ZBgwZp0KBBysvLc1+wekFjJ1caa/Dgwdq2bZuuv/56ffnll4qPj6/zfafTqZKSEg0fPlzx8fHaunWru91o48aNmjZtmkwmkw4dOlRvO8q4ceO0YsUKlZeX68Lqu5WVlTKbzQoJCdG3336rkydPXrLOyspKde7cWeHh4Tp27JgKCgou+ZwRI0Zo06ZN+tnPfuZusRgxYoSWLFmin/3sZzKbzaqoqNDZs2fVvXt37/7B2gBuNQ0AbVBVVZU6dOig6upqPf3005oxY4YGDhxodFloo77//nv3Mm+RkZHq0KGDbr75Zg0YMEBLly5VeHi4EhIStHHjRr311luSzl+clpOTo169eikkJERWq1UjR47UkiVLVFtbK5fLpdtvv11JSUl64YUX3O0Zw4cP13333ae9e/e6L9L717/+pczMTEVGRiohIUFffPGFMjMztWXLljoXz6anp+v2229vcAJm6tSp7vq+/vpr5eXl6aGHHpLNZtNrr72m8vLyei/SmzhxohYuXKjKykpJ0nXXXadJkyappqZGb775pg4cOCDph8masrIyrVixos7qE3PmzFFkZKT74lW73a7nn39e586dU//+/XXgwAH3/s8//7yWLl3qfu5DDz2kxYsXq2PHjsrIyFBZWZliY2Nlt9t11113KSEhocHXdurUKb3++us6ceKEgoKC9MADD7jfELz//vtyuVwKDg7W/fff32BbR1tEQAaANujll192z9DdcMMNmjx5stElAUCrQUAGAAAAPNCDDAAA2pX58+fXuZBPOn+Tqx9flIv2ixlkAAAAwAPLvAEAAAAeCMgAAACABwIyAAAA4IGADAAAAHj4/6HNUqJINAjxAAAAAElFTkSuQmCC\n", | |
| "text/plain": [ | |
| "<Figure size 720x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "import seaborn as sns\n", | |
| "\n", | |
| "fig, ax = plt.subplots(figsize=(10,4))\n", | |
| "ax.set_yscale('log')\n", | |
| "sns.boxenplot(data=sample, ax=ax)\n", | |
| "ax.set_xticklabels(param_name)\n", | |
| "fig.tight_layout()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "EAP推定量を代入した結果は以下の通り" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 15, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| " /anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/figure.py:2369: UserWarning:This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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+uqraWtrI5FIcOuttzJv3ryyb9dhzz//PE1NTSQSiWKHUjCPP/44Z599NjfddBOGYZBKpYoWiwzxHeHFF19kyZIlOBwOAGpqaoocUeE88cQTXHXVVSiKUuxQCmb+/PlomgbAnDlz6O/vL3JEE7dz504aGxtpaGhA13UWL17MW2+9Veyw8hYIBEZXg3k8Hpqamsr6dTpSX18fb7/9NpdcckmxQymYeDzOtm3buPjiiwHQdb2ooxLSgzpCT08P27dv5+mnn8bhcHD11Vdz2mmnFTusvHV2dhIMBmltbS12KJPm5ZdfZvHixcUOY8L6+/sJhUKjt0OhEO+9914RIyq83t5e9uzZUxH/pgC+//3vs3z58orqPfX29lJdXc3DDz/M3r17aWtr45prrsHtdhclnimXoFatWsXg4OAxv1+6dCmWZRGNRrn77rvZtWsX9913Hw8++GBZ9DpO1q7169dz2223FSGq/J2sXQsXLgTgmWeeQdM0LrzwwlMdXsEcb7dHObzvcpVMJrn33nu55ppr8Hq9xQ4nb5s2baKmpoa2tjbefffdYodTMKZpsmfPHq699lpmz57N448/zrPPPsvSpUuLEs+US1ArV6484d+9+OKLLFq0CEVROO2001BVlZGRkbJYUHCidnV1ddHb28s3vvENIDssccstt7B69Wpqa2tPZYgTcrLXC+DVV19l06ZN3H777WX9gR4Khejr6xu93dfXRyAQKGJEhWMYBvfeey8XXnghixYtKnY4BbFjxw46OzvZvHkz6XSaRCLB/fffz9e//vVih5aXUChEKBRi9uzZAHzsYx/j2WefLVo8Uy5BnczChQt55513mDt3Lt3d3RiGQVVVVbHDyktLSwuPPvro6O0bb7yR1atXl0XSHcuWLVtob2/nrrvuwuVyFTucvMyaNYuenh56e3sJBoNs3Lix7D/sINszfOSRR2hqauKyyy4rdjgFs2zZMpYtWwbAu+++y89+9rOKeL1qa2sJhUJ0d3czffp0tm7dWtQFLZKgjnDxxRfz8MMPc9NNN6HrOjfeeGNZfyuvdGvXrsUwDFatWgXA7Nmzue6664oc1cRomsa1117L3XffjWVZXHTRRcyYMaPYYeVtx44dvPbaa7S0tIz24q+88koWLFhQ5MjEiVx77bXcf//9GIZBfX09K1asKFosUupICCFESZJl5kIIIUqSJCghhBAlSRKUEEKIkiQJSgghREmSBCWEEKIkSYISQghRkiRBCSGEKEn/H2mMn7+dzu+sAAAAAElFTkSuQmCC\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "for ii in range(len(param_name)):\n", | |
| " gpmodel[param_name[ii]] = np.mean(sample, axis=0)[ii]\n", | |
| "gpmodel.plot()\n", | |
| "plt.plot(X_new, np.sin(X_new), color=\"r\", linestyle=\"dotted\", alpha=0.7, linewidth=2)\n", | |
| "plt.tight_layout()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# 5. plot" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## 5.1. plot()\n", | |
| "- 通常のplotでは、デフォルトで95%予測区間が表示される。これを変更するには、引数lowerとupperを指定すれば良い(0~100)。\n", | |
| "- 入力が2次元なら、projection=\"3d\"で3次元グラフにできる。" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 16, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| " /anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/figure.py:2369: UserWarning:This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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detBj1m5ciVlZWUkJSU12R4IBLDZbE22/fx7Gj9+PBkZGSxYsIC77rqLNWvW8N133zXpkbd69WoeeOABVq9eTVVVFWLXPNXbtm1j+PDhh32OUucnA5QUd/n5+SxZsgSv10tdXR3Z2dncfffdJCQkkJaWBkC3bt0oKytrctzu11lZWftN94UXXqC+vp6bb76Z6dOnc95555GUlMQ555yDz+dj48aN9O/fv9n5FPuZyP/nnQ0Mw2DcuHE88cQT++ybmJgYS2d3UD0cR3JMc/08UCuKgmEYBz3GMAz69u3LG2+8sc97dru9yeuff0+apjFlyhTmz5/PXXfdxfz58xk0aFDs9/B6vZxxxhmMGDGCf//737Hf+Pjjj5dVfNIByTYo6aix2+1kZ2cTDAZ57bXXmDRpUqzNafjw4SxevLjJTfO9997DbrfH2pr2Vl5ezj333MO8efNiN9vd7VlCCMLh8CFvwF9++WWT11988QV9+/Y96DFDhgxh7dq15OTk0KtXryZ/0tPTgehN9vPPP29y3M9f/9zgwYNZu3YtJSUl+31/d4DZu9t9PJnN5n3SHjJkCFu2bCEhIWGfc83Ozj5kmlOnTuWHH37g66+/5uWXX2bq1Kmx99avX09lZSV//vOfGTNmDH379qW2tna/DwmStJsMUFLcLV68mHfeeYctW7bwySefMH78eHw+H3/5y19i+9x4443U19czbdo01q5dy1tvvcV9993HLbfcst8u0zfddBO33XYbvXv3BmDUqFG8+uqrrFq1in/84x9YrVb69Olz0HzNmzePl156iU2bNvGHP/yBL774gttuu+2gx9x8881EIhEmTZrEsmXLKCoq4rPPPuPee+9l+fLlANx+++188cUX3HvvvWzatIk33niDWbNmHTTdyy67jPz8fM4//3yWLFnC1q1bWbp0Ka+88goQLYWqqsq7775LRUUF9fX1B03vcPXs2ZNVq1axefNmqqqqCIVCTJkyhZ49e3LOOefwwQcfUFRUxIoVK/jrX//Km2++ecg0TzjhBAYNGsS0adOorKzksssui72Xn5+PxWJh9uzZbN68maVLl3Lrrbce1VKk1Am0aQuY1Cm99tprolevXsJsNouUlBRx2WWXiaKion32++KLL8SwYcOExWIRmZmZYsaMGbGu0D9Pb+jQoU3eMwxD3HHHHSI5OVn06tVLLF26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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "gpmodel.plot(lower=5, upper=95)\n", | |
| "plt.plot(X_new, np.sin(X_new), color=\"r\", linestyle=\"dotted\", alpha=0.7, linewidth=2)\n", | |
| "plt.title('90% predict interval')\n", | |
| "plt.tight_layout()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "その他の引数に関しては<https://gpy.readthedocs.io/en/deploy/GPy.plotting.gpy_plot.html#module-GPy.plotting.gpy_plot.gp_plots>を参照。 \n", | |
| "\n", | |
| "個々の要素を個別にプロットする関数も用意されている。 \n", | |
| "例えば予測区間なら" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 17, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| " /anaconda3/envs/py36/lib/python3.6/site-packages/matplotlib/figure.py:2369: UserWarning:This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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7IobdyhdgwmKiKhDJFHERC7FookGMUEREXWQrikYMhTYLJqoiwmKiKjDcgM6JCFkz746mKCIiGIwkVtth8ROEyfGBEVEFANRFDAxnEKZRRMnxARFRBQTXVOQNWTYLtejjocJiogoRvmBFMQw4P6o45Cb+eJ77rkHDz/8MGRZxujoKK677joYhtGq2IiI+sLEFgMHZiyYph53KInS1BPU6aefjrvuugt33nkntm7divvuu69VcRER9Q1JFDE6pKFc8eIOJVGaSlBnnHEGJEkCAJx66qlYXFxsSVBERP3GTKkwFKDqB3GHkhhC1KIax7179+L888/Ha1/72uP++9TUFKamptZf63keZFmG73d380SOITl6YRwcQzLENYYoivDLg0tIGzoEQWjqWpIkIQham+y8qo8BXUZuMNXUdVRVbeh1dRPUnj17UCwWX/T3l19+Oc466ywAwNe+9jX86le/wg033NDw/9Tp6Wnk83kUCoWGXp9UHENy9MI4OIZkiHMMjufj0KKNTLq59ahsNnvcz+5meNUApgoMZZqLbXx8vKHX1S2SuPnmm2v++w9+8AM8/PDDuOWWW5rO+ERE/U5XZWR1GZbrQ9eaqmPrek2tQT366KP4xje+gQ996EPQNK1VMRER9bV8NoUo9BGG/d1loqn0fPfdd8P3fezZswcAcMopp+Daa69tSWBERP1sW87AgfkyMkZz6z3drKkE9Xd/93etioOIiI4iyyLypool20Nab6yooNewkwQRUUJlMzpkhAj6tOs5ExQRUYKN5w3Ydn9u4GWCIiJKMEkUMZJVYfVhlwkmKCKihMukNWhy1HddJpigiIi6wNZhA67bX09RTFBERF1AFAVsHdL76oBDJigioi6R1lUYitg3U31MUEREXWR0OAXP8dCiPt+JxgRFRNRFBEHAeD7dF1N9TFBERF1GV2VkUzJcr7uPNamHCYqIqAvlsykEfm83lGWCIiLqUtvyaVg9PNXHBEVE1KUUWcKwqcBxqnGH0hZMUEREXWx4QIcQBQjC3msoywRFRNTlxvMGKj3Yq48Jioioy8mSiJFBFRW7t6b6mKCIiHrAgKFBlUL4PXR2FBMUEVGP2DpswLF7p6qPCYqIqEeIooDx4VTPdJlggiIi6iEpXYGpiT3RZYIJioiox4z0SJcJJigioh4jCAJ2jg50fZcJJigioh6kKhLy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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "gpmodel.plot_confidence(lower=5, upper=95)\n", | |
| "plt.tight_layout()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## 5.2. posterior_samples_f\n", | |
| "- GPから(その実現値としての)関数をサンプリングする関数\n", | |
| " - 紛らわしい名前の\"posterior_samples\"も存在するが、内部で\"posterior_samples_f\"を呼び出している模様。" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 22, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(-1.6, 1.6)" | |
| ] | |
| }, | |
| "execution_count": 22, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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hSIdgEQikaxQ6iYHvZx4+umn8cwzz0BVVZx//vm4+uqrG23SnDz55JN49NFH8eCDDzb1YJ4f/vCHePnll6FpGuLxOK677jp4vd5Gm3UKBw4cwJ49e8A5xxVXXIGtW7c22qRpSSQS+P73v490Og3GGPr7+/Enf/InjTZrTjjn2L59OyKRSNOXWBYKBdx3330YGBgAYwxf+tKXsHHjxkabNS+kAzhNXn/9dezfvx/f/e534XA4kMlkGm3SnCQSCbz22mstoVd+zjnn4KqrroKqqnj00Ufxk5/8pOkcLOccDz30EG699Vbouo6bb74ZF1xwAbq7uxtt2imoqoovfOELWLduHUqlErZv345zzjmnKW2dys9+9jN0dXXVhCSbmT179uC8887DDTfcANM0US6XG23SvJEhoNPk2WefxZVXXgnHhKZsMBhssEVz84Mf/ACf//znwVjzt66fe+65UCcE2Tdu3IhUKtVgi07l0KFD6OjoQDweh6Zp2LJlC/bt29dos6YlHA7XqlM8Hg+6urqa8nc6lWQyiVdeeQVXXHFFo02Zk2KxiLfeeguXX345ABoM04wn1pmQJ4DTZHh4GG+//Tb+8R//EQ6HA1/4whewfv36Rps1I/v370ckEkFvb2+jTTltnnvuOWzZsqXRZpxCKpWCruu117qu45133mmgRfNjdHQUhw8fbur7FQAeeeQRXH311S2x+x8dHUUgEMC9996Lo0ePYt26dbjmmmvgbpHp8dIBTMNsU9A458jn89i5cyfeffdd7N69G9/73vcauruezd6f/OQnuPXWWxtg1czMZ8rcj3/8Y6iqiksuuaTe5s3JdJXTzX66MgwDd999N6655hq0nayH3ES8/PLLCAaDWLduHd54441GmzMnlmXh8OHDuPbaa7Fhwwbs2bMHTzzxBLZt29Zo0+aFdADTMNsUtGeffRYXXXQRGGNYv349FEVBLpdraGJ1JnuPHTuG0dFR3HjjjQDoaH3TTTfhzjvvRCgUqqeJJzDXlLl/+7d/w8svv4xvfOMbTbmw6rqOZDJZe51MJhG2h802IaZp4u6778Yll1yCiy66qNHmzMrBgwexf/9+/Pa3v0WlUkGpVMI999yDr3zlK402bVp0XYeu69iwYQMA4OKLL8YTTzzRYKvmj3QAp8nmzZvx+uuv40Mf+hCGhoZgmib8M02SbjA9PT148MEHa6+vv/563HnnnU1dBXTgwAH89Kc/xbe+9S24XK5GmzMtfX19GB4exujoKCKRCH7zm9807QIlhMB9992Hrq4ufOpTn2q0OXNy1VVX4aqrrgIAvPHGG3jqqaea9ncLAKFQCLquY2hoCJ2dnXjttdeaPsE+FekATpPLL78c9957L2644QZomobrr7++KXeprcpDDz0E0zSxY8cOAMCGDRvwF3/xFw226kRUVcW1116LnTt3gnOOyy67DKtXr260WdNy8OBB/PKXv0RPT0/tJPi5z30O559/foMtWz5ce+21uOeee2CaJtrb23Hdddc12qR5I6UgJBKJZIUiy0AlEolkhSIdgEQikaxQpAOQSCSSFYp0ABKJRLJCkQ5AIpFIVijSAUgkEskKRToAiUQiWaH8f15NKLw9nLt/AAAAAElFTkSuQmCC\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "X_new = np.arange(-7,7,0.1)\n", | |
| "\n", | |
| "fig, ax1 = plt.subplots(1, 1)\n", | |
| "ax1.plot(X_new, gpmodel.posterior_samples_f(X_new.reshape((-1,1)), size=10).reshape(-1,10), color=\"b\", alpha=0.1)\n", | |
| "#ax1.plot(X, Y , marker=\"o\", color=\"r\", linestyle=\"\")\n", | |
| "ax1.plot(X_new, np.sin(X_new), color=\"r\", linestyle=\"dotted\", alpha=0.7)\n", | |
| "ax1.set_title('GP posterior')\n", | |
| "ax1.set_ylim([-1.6, 1.6])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [] | |
| }, | |
| { | |
| "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": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment