Skip to content

Instantly share code, notes, and snippets.

@shawntan
Last active April 25, 2020 12:42
Show Gist options
  • Save shawntan/19fec558fca2fe8ed9930cc17ce82599 to your computer and use it in GitHub Desktop.
Save shawntan/19fec558fca2fe8ed9930cc17ce82599 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib\n",
"%matplotlib inline\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Load up data..."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"data_str = \"\"\"\n",
"23\n",
"54\n",
"49\n",
"73\n",
"52\n",
"49\n",
"70\n",
"42\n",
"35\n",
"47\n",
"74\n",
"49\n",
"65\n",
"75\n",
"120\n",
"66\n",
"106\n",
"142\n",
"287\n",
"198\n",
"191\n",
"233\n",
"386\n",
"334\n",
"447\n",
"728\n",
"623\n",
"942\n",
"596\n",
"1426\n",
"1111\n",
"1016\n",
"1037\n",
"897\n",
"618\"\"\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Parse string into numpy array, and compute sum of total cases for a sliding window of 7 days"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"case_counts_per_day = np.array([int(c) for c in data_str.strip().split('\\n')])\n",
"case_counts_week = np.convolve(case_counts_per_day, np.ones(7), 'valid')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot new cases each day..."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def plot_bars(array):\n",
" plt.figure(figsize=(10, 8))\n",
" plt.bar(np.arange(len(array)), array)\n",
"plot_bars(case_counts_per_day)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot a week-window of new cases, and try to eyeball a:\n",
"- Gaussian (red)\n",
" $$ a * \\exp(-b \\cdot ( x - c )^2)$$\n",
"- Logistic (green)\n",
" $$ a \\cdot \\frac{\\exp(- (x - c) / b)}{(1 + \\exp(- (x - c) / b))^2} $$\n",
"It looks like the Logistic fits better."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 28.61949151 36.72375336 47.11404774 60.42947764 77.48411469\n",
" 99.31250652 127.22546154 162.87738843 208.34584786 266.22262819\n",
" 339.71311522 432.73630223 550.01055436 697.09908505 880.37297522\n",
" 1106.82816341 1383.6679938 1717.54105536 2113.31963884 2572.34284239\n",
" 3090.16601707 3654.08807572 4241.06728132 4816.99236442 5338.42734716\n",
" 5757.59094894 6030.28502707 6125. 6030.28502707]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"y = case_counts_week\n",
"x = np.arange(len(y))\n",
"plt.figure(figsize=(10, 8))\n",
"plt.bar(x, y)\n",
"gaussian_y_est = 7000 * np.exp(- 15e-3 * (x - 27)**2)\n",
"plt.plot(x, gaussian_y_est, color='red')\n",
"exp_x_ = np.exp((- x + 27) / 4) \n",
"sigmoid_y_est = 7000 * 3.5 * exp_x_ / (1 + exp_x_)**2\n",
"plt.plot(x, sigmoid_y_est, color='green')\n",
"print(sigmoid_y_est)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Model formula:\n",
"$$\\hat{y} = s \\cdot \\frac{\\exp(-(w \\cdot x + b))}{(1 + \\exp(-(w \\cdot x + b)))^2} + c$$\n",
"Lazy man's way of fitting a model to data. Gradient descent!"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"import torch\n",
"import torch.nn.functional as F\n",
"class BellModel(torch.nn.Module):\n",
" def __init__(self):\n",
" super(BellModel, self).__init__()\n",
" self.w = torch.nn.Parameter(torch.tensor(1.))\n",
" self.b = torch.nn.Parameter(torch.tensor(0.))\n",
" \n",
" self.scale = torch.nn.Parameter(torch.tensor(0.))\n",
" self.bias = torch.nn.Parameter(torch.tensor(0.))\n",
" def forward(self, x, y):\n",
" return torch.mean(torch.abs(self.infer(x) - y))\n",
" def infer(self, x):\n",
" exp_x_ = torch.exp(- (self.w * x + self.b)) \n",
" sigmoid_y_est = 1000 * (F.softplus(self.scale) * exp_x_ / ((1 + exp_x_)**2) ) + self.bias\n",
" return sigmoid_y_est\n",
"bm = BellModel()\n",
"params = list(bm.parameters())\n",
"optim = torch.optim.Adam(params, lr=.01)\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"tensor(66.3776, dtype=torch.float64, grad_fn=<MeanBackward0>)\n"
]
}
],
"source": [
"for _ in range(30000):\n",
" loss = bm(torch.from_numpy(x), torch.from_numpy(y))\n",
" loss.backward()\n",
" optim.step()\n",
" optim.zero_grad()\n",
" # print(loss)\n",
"\n",
"print(loss)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Forecast future windows' case numbers, and back compute the new cases tomorrow."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Estimate for tomorrow: 478.56396484375\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"est_x = torch.arange(60)\n",
"est_y_model = bm.infer(est_x).detach().numpy()\n",
"y = case_counts_week\n",
"x = np.arange(len(y))\n",
"plt.figure(figsize=(10, 8))\n",
"plt.bar(x, y)\n",
"plt.plot(est_x.detach().numpy(), est_y_model)\n",
"print(\"Estimate for tomorrow:\", est_y_model[len(x)] - case_counts_per_day[-6:].sum())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Visualisation from: https://aatishb.com/covidtrends/"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fb5372af7f0>]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(10, 8))\n",
"cum_cases = np.cumsum(case_counts_per_day)\n",
"plt.plot(cum_cases[6:], case_counts_week)"
]
}
],
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment