{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "from constants import *\n", "from maths import gaussian\n", "from markov import MarkovModel\n", "from markovlog import LogMarkovModel" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Scratchpad\n", "====================" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0.92" ] }, "metadata": {}, "execution_count": 2 } ], "source": [ "state1.mean\n", "state_transition[1,1]" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "0.0004984553049661319" ] }, "metadata": {}, "execution_count": 3 } ], "source": [ "gaussian(490, 5, 500)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2020-12-24T14:57:48.898749\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.3, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "x = list(range(0, 1000))\n", "y = [gaussian(i, 500, 50) for i in x]\n", "\n", "plt.plot(x, y)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2020-12-24T14:57:49.231735\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.3, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "x = np.linspace(-500, 500, 120)\n", "y = [gaussian(i, 0, 100) for i in x]\n", "\n", "plt.plot(x, y)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[0. 0.44 0.56 0. ]\n[0. 0.92 0.06 0.02]\n[0. 0.04 0.93 0.03]\n[0. 0. 0. 0.]\n0.92\n(4, 4)\n" ] } ], "source": [ "for i in state_transition:\n", " print(i)\n", " # for j in i:\n", " # print(j)\n", "\n", "print(state_transition[1][1])\n", "print(state_transition.shape)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[1 2 3]\n [4 5 6]\n [7 8 9]]\n[0.4 1. 1.6]\n[[1 2 3]\n [4 5 6]\n [7 8 9]]\n" ] } ], "source": [ "a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])\n", "print(a)\n", "print(a[:, 1] / 5)\n", "a[:, 2] / 2\n", "print(a)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[ 1 4]\n [ 9 16]]\n[ 4 16]\n" ] } ], "source": [ "array1 = np.array([[1, 2], [3, 4]])\n", "array2 = np.array([[1, 2], [3, 4]])\n", "\n", "print(array1 * array2)\n", "print(array1[:, 1] * array2[:, 1])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "1" ] }, "metadata": {}, "execution_count": 9 } ], "source": [ "model = MarkovModel(states=[state1, state2], observations=observations, state_transitions=state_transition)\n", "\n", "model.get_other_state_number(2)" ] }, { "source": [ "# Forward Probability Surface" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2020-12-24T14:57:49.739735\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.3, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "model = MarkovModel(states=[state1, state2], observations=observations, state_transitions=state_transition)\n", "model.populate_forward()\n", "\n", "fig = plt.figure(figsize=(18,6))\n", "ax = fig.add_subplot(1, 1, 1, projection=\"3d\")\n", "\n", "y_width = 0.6\n", "\n", "X = np.arange(1, 10)\n", "Y = np.arange(1, 3) - 0.5*y_width\n", "X, Y = np.meshgrid(X, Y)\n", "Z = np.zeros(model.forward.size)\n", "\n", "dx = np.ones(model.forward.size)\n", "dy = y_width * np.ones(model.forward.size)\n", "\n", "# ax.plot_surface(X, Y, model.forward, cmap=cm.coolwarm)\n", "ax.bar3d(X.flatten(), Y.flatten(), Z, dx, dy, model.forward.flatten(), shade=True)\n", "\n", "ax.set_yticks([1, 2])\n", "\n", "ax.set_xlabel(\"Observation\")\n", "ax.set_ylabel(\"State\")\n", "ax.view_init(30, -80)\n", "# plt.zlabel(\"Forward Likelihood\")\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "-0.6931471805599453" ] }, "metadata": {}, "execution_count": 11 } ], "source": [ "from numpy import log as ln\n", "\n", "ln(0.5)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "[[0. 0.44 0.56 0. ]\n [0. 0.92 0.06 0.02]\n [0. 0.04 0.93 0.03]\n [0. 0. 0. 0. ]]\n[[ -inf -0.82098055 -0.5798185 -inf]\n [ -inf -0.08338161 -2.81341072 -3.91202301]\n [ -inf -3.21887582 -0.07257069 -3.5065579 ]\n [ -inf -inf -inf -inf]]\n" ] } ], "source": [ "model = LogMarkovModel(states=[state1, state2], observations=observations, state_transitions=state_transition)\n", "\n", "print(model.state_transitions)\n", "model.log_state_transitions()\n", "print(model.state_transitions)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "array([[48.59040575, 1.01024542],\n", " [11.76531328, 2.09407832]])" ] }, "metadata": {}, "execution_count": 13 } ], "source": [ "model = MarkovModel(states=[state1, state2], observations=observations, state_transitions=state_transition)\n", "model.populate()\n", "\n", "model.baum_welch_state_transitions()" ] } ], "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.8.6-final" } }, "nbformat": 4, "nbformat_minor": 4 }