Skip to content

Instantly share code, notes, and snippets.

@JSVJ
Last active June 10, 2020 15:23
Show Gist options
  • Save JSVJ/8dcb9ba2eece2db6a722633563eeb033 to your computer and use it in GitHub Desktop.
Save JSVJ/8dcb9ba2eece2db6a722633563eeb033 to your computer and use it in GitHub Desktop.
COVID19_TN_next_day_prediction.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "COVID19_TN_next_day_prediction.ipynb",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/JSVJ/8dcb9ba2eece2db6a722633563eeb033/covid19_tn_next_day_prediction.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "yRbENSPVXYXY",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 72
},
"outputId": "3d922db3-1dcb-4531-8663-4efcc115922c"
},
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import numpy as np\n",
"import math"
],
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.\n",
" import pandas.util.testing as tm\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "mefKRMElXb2W",
"colab_type": "code",
"colab": {}
},
"source": [
"state_wise = pd.read_csv('https://api.covid19india.org/csv/latest/state_wise.csv')\n",
"district_wise = pd.read_csv('https://api.covid19india.org/csv/latest/district_wise.csv')\n",
"state_wise_time_series = pd.read_csv('https://api.covid19india.org/csv/latest/state_wise_daily.csv')"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "cdRlP7nDZgkN",
"colab_type": "code",
"colab": {}
},
"source": [
"essential_columns = ['District', 'Confirmed', 'Active', 'Recovered', 'Deceased']"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "nlPeBf4ybBNb",
"colab_type": "code",
"colab": {}
},
"source": [
"tamil_nadu_time_series = state_wise_time_series[['Date', 'Status', 'TN']]\n",
"tamil_nadu_time_series = tamil_nadu_time_series.set_index('Date')"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "uzGzMXoYi5Ct",
"colab_type": "code",
"colab": {}
},
"source": [
"tamil_nadu_confirmed = tamil_nadu_time_series.loc[(tamil_nadu_time_series['Status'] == 'Confirmed')]\n",
"tamil_nadu_recovered = tamil_nadu_time_series.loc[(tamil_nadu_time_series['Status'] == 'Recovered')]\n",
"tamil_nadu_deceased = tamil_nadu_time_series.loc[(tamil_nadu_time_series['Status'] == 'Deceased')]"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "QxURSlKnp2j1",
"colab_type": "code",
"colab": {}
},
"source": [
"tamil_nadu_confirmed = tamil_nadu_confirmed.drop('Status', axis = 1)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "oAPwUo7-qpSt",
"colab_type": "code",
"outputId": "78771671-b3af-40dd-a529-7f4340d4be71",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 230
}
},
"source": [
"tamil_nadu_confirmed.tail()"
],
"execution_count": 7,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>TN</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>05-Jun-20</th>\n",
" <td>1438</td>\n",
" </tr>\n",
" <tr>\n",
" <th>06-Jun-20</th>\n",
" <td>1458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>07-Jun-20</th>\n",
" <td>1515</td>\n",
" </tr>\n",
" <tr>\n",
" <th>08-Jun-20</th>\n",
" <td>1562</td>\n",
" </tr>\n",
" <tr>\n",
" <th>09-Jun-20</th>\n",
" <td>1685</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" TN\n",
"Date \n",
"05-Jun-20 1438\n",
"06-Jun-20 1458\n",
"07-Jun-20 1515\n",
"08-Jun-20 1562\n",
"09-Jun-20 1685"
]
},
"metadata": {
"tags": []
},
"execution_count": 7
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "P9dPmn_KrFCZ",
"colab_type": "code",
"outputId": "77ab0153-4600-47a8-f3e0-4cb793d5290c",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 299
}
},
"source": [
"tamil_nadu_confirmed.plot()"
],
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f37fb563ba8>"
]
},
"metadata": {
"tags": []
},
"execution_count": 8
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "1ZxwbeIswD-c",
"colab_type": "code",
"colab": {}
},
"source": [
"# taking backup data\n",
"working_dataset = tamil_nadu_confirmed"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "g0Weq2lzrNMq",
"colab_type": "code",
"colab": {}
},
"source": [
"#scaling the data\n",
"from sklearn.preprocessing import MinMaxScaler\n",
"scaler = MinMaxScaler(feature_range = (0, 1), copy = True)\n",
"\n",
"scaler.fit(working_dataset)\n",
"\n",
"working_dataset = scaler.transform(working_dataset)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "YmbJTBaWuNQS",
"colab_type": "code",
"outputId": "eada6e16-bd9c-47ef-ef39-7f046866ca37",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 282
}
},
"source": [
"plt.plot(working_dataset)"
],
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f37fa00e780>]"
]
},
"metadata": {
"tags": []
},
"execution_count": 11
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "h7BSD8prv6_1",
"colab_type": "code",
"colab": {}
},
"source": [
"# creating time steps\n",
"x_train, y_train = [], []\n",
"moving_window = 14\n",
"\n",
"training_data_len = math.ceil(len(tamil_nadu_confirmed) * 0.8)\n",
"\n",
"for i in range(moving_window, len(working_dataset)):\n",
" x_train.append(working_dataset[i - moving_window : i, 0])\n",
" y_train.append(working_dataset[i, 0])\n",
" # if (i <= 31):\n",
" # print(x_train, y_train)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "3okqxfkw6xTH",
"colab_type": "code",
"outputId": "cba72be1-643b-441a-ff9a-afeab735c4f9",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 52
}
},
"source": [
"# converting into numpy arrays to be used in the neural network\n",
"x_train, y_train = np.array(x_train), np.array(y_train)\n",
"\n",
"print(x_train.shape)\n",
"print(y_train.shape)"
],
"execution_count": 13,
"outputs": [
{
"output_type": "stream",
"text": [
"(74, 14)\n",
"(74,)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "bNaNuCsA792m",
"colab_type": "code",
"outputId": "7dd62a40-ad24-449f-cd61-ba9aae95d04a",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 52
}
},
"source": [
"# reshape the datasets to be fed into the RNN\n",
"x_train = np.reshape(a = x_train, newshape = (x_train.shape[0], x_train.shape[1], 1))\n",
"y_train = np.reshape(a = y_train, newshape = (y_train.shape[0], 1))\n",
"print(x_train.shape)\n",
"print(y_train.shape)"
],
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"text": [
"(74, 14, 1)\n",
"(74, 1)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "BP0J1D_q8ZDE",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "4f9ea307-de9e-4098-e977-350df4e9be84"
},
"source": [
"# building the LSTM model\n",
"from keras.models import Sequential\n",
"from keras.layers import Dense, LSTM, Dropout"
],
"execution_count": 15,
"outputs": [
{
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "w-tcAvHR8rOr",
"colab_type": "code",
"colab": {}
},
"source": [
"# initializing the Recurrent Neural Networks\n",
"model = Sequential()\n",
"# adding the layers\n",
"model.add(LSTM(units = 32, return_sequences = True, input_shape = (x_train.shape[1], x_train.shape[2])))\n",
"# model.add(Dropout(rate = 0.2))\n",
"# model.add(LSTM(units = 50, return_sequences = True))\n",
"# model.add(Dropout(rate = 0.2))\n",
"# model.add(LSTM(units = 128, return_sequences = True))\n",
"# model.add(Dropout(rate = 0.2))\n",
"model.add(LSTM(units = 128, return_sequences = False))\n",
"# model.add(Dropout(rate = 0.2))\n",
"model.add(Dense(units = 1))\n",
"# compiling the model\n",
"model.compile(optimizer = 'adam', loss = 'mean_squared_error')"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "k9Uu32LN9QFb",
"colab_type": "code",
"outputId": "3a055b89-6db5-4a4c-b8f9-15f665c31f03",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"# fitting the model\n",
"model.fit(x_train, y_train, epochs = 50)"
],
"execution_count": 17,
"outputs": [
{
"output_type": "stream",
"text": [
"Epoch 1/50\n",
"74/74 [==============================] - 1s 13ms/step - loss: 0.1447\n",
"Epoch 2/50\n",
"74/74 [==============================] - 0s 1ms/step - loss: 0.0634\n",
"Epoch 3/50\n",
"74/74 [==============================] - 0s 959us/step - loss: 0.0192\n",
"Epoch 4/50\n",
"74/74 [==============================] - 0s 961us/step - loss: 0.0302\n",
"Epoch 5/50\n",
"74/74 [==============================] - 0s 934us/step - loss: 0.0115\n",
"Epoch 6/50\n",
"74/74 [==============================] - 0s 899us/step - loss: 0.0144\n",
"Epoch 7/50\n",
"74/74 [==============================] - 0s 926us/step - loss: 0.0145\n",
"Epoch 8/50\n",
"74/74 [==============================] - 0s 944us/step - loss: 0.0086\n",
"Epoch 9/50\n",
"74/74 [==============================] - 0s 970us/step - loss: 0.0086\n",
"Epoch 10/50\n",
"74/74 [==============================] - 0s 960us/step - loss: 0.0112\n",
"Epoch 11/50\n",
"74/74 [==============================] - 0s 1ms/step - loss: 0.0081\n",
"Epoch 12/50\n",
"74/74 [==============================] - 0s 916us/step - loss: 0.0078\n",
"Epoch 13/50\n",
"74/74 [==============================] - 0s 931us/step - loss: 0.0086\n",
"Epoch 14/50\n",
"74/74 [==============================] - 0s 904us/step - loss: 0.0077\n",
"Epoch 15/50\n",
"74/74 [==============================] - 0s 928us/step - loss: 0.0071\n",
"Epoch 16/50\n",
"74/74 [==============================] - 0s 964us/step - loss: 0.0075\n",
"Epoch 17/50\n",
"74/74 [==============================] - 0s 936us/step - loss: 0.0070\n",
"Epoch 18/50\n",
"74/74 [==============================] - 0s 925us/step - loss: 0.0069\n",
"Epoch 19/50\n",
"74/74 [==============================] - 0s 909us/step - loss: 0.0069\n",
"Epoch 20/50\n",
"74/74 [==============================] - 0s 906us/step - loss: 0.0068\n",
"Epoch 21/50\n",
"74/74 [==============================] - 0s 1ms/step - loss: 0.0068\n",
"Epoch 22/50\n",
"74/74 [==============================] - 0s 906us/step - loss: 0.0067\n",
"Epoch 23/50\n",
"74/74 [==============================] - 0s 874us/step - loss: 0.0066\n",
"Epoch 24/50\n",
"74/74 [==============================] - 0s 908us/step - loss: 0.0066\n",
"Epoch 25/50\n",
"74/74 [==============================] - 0s 908us/step - loss: 0.0066\n",
"Epoch 26/50\n",
"74/74 [==============================] - 0s 1ms/step - loss: 0.0064\n",
"Epoch 27/50\n",
"74/74 [==============================] - 0s 944us/step - loss: 0.0065\n",
"Epoch 28/50\n",
"74/74 [==============================] - 0s 987us/step - loss: 0.0066\n",
"Epoch 29/50\n",
"74/74 [==============================] - 0s 951us/step - loss: 0.0063\n",
"Epoch 30/50\n",
"74/74 [==============================] - 0s 968us/step - loss: 0.0065\n",
"Epoch 31/50\n",
"74/74 [==============================] - 0s 987us/step - loss: 0.0063\n",
"Epoch 32/50\n",
"74/74 [==============================] - 0s 1ms/step - loss: 0.0063\n",
"Epoch 33/50\n",
"74/74 [==============================] - 0s 907us/step - loss: 0.0064\n",
"Epoch 34/50\n",
"74/74 [==============================] - 0s 964us/step - loss: 0.0063\n",
"Epoch 35/50\n",
"74/74 [==============================] - 0s 964us/step - loss: 0.0061\n",
"Epoch 36/50\n",
"74/74 [==============================] - 0s 958us/step - loss: 0.0062\n",
"Epoch 37/50\n",
"74/74 [==============================] - 0s 987us/step - loss: 0.0060\n",
"Epoch 38/50\n",
"74/74 [==============================] - 0s 921us/step - loss: 0.0062\n",
"Epoch 39/50\n",
"74/74 [==============================] - 0s 892us/step - loss: 0.0065\n",
"Epoch 40/50\n",
"74/74 [==============================] - 0s 1ms/step - loss: 0.0059\n",
"Epoch 41/50\n",
"74/74 [==============================] - 0s 1ms/step - loss: 0.0066\n",
"Epoch 42/50\n",
"74/74 [==============================] - 0s 925us/step - loss: 0.0062\n",
"Epoch 43/50\n",
"74/74 [==============================] - 0s 953us/step - loss: 0.0061\n",
"Epoch 44/50\n",
"74/74 [==============================] - 0s 924us/step - loss: 0.0060\n",
"Epoch 45/50\n",
"74/74 [==============================] - 0s 976us/step - loss: 0.0058\n",
"Epoch 46/50\n",
"74/74 [==============================] - 0s 959us/step - loss: 0.0059\n",
"Epoch 47/50\n",
"74/74 [==============================] - 0s 902us/step - loss: 0.0059\n",
"Epoch 48/50\n",
"74/74 [==============================] - 0s 915us/step - loss: 0.0058\n",
"Epoch 49/50\n",
"74/74 [==============================] - 0s 916us/step - loss: 0.0057\n",
"Epoch 50/50\n",
"74/74 [==============================] - 0s 956us/step - loss: 0.0057\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<keras.callbacks.callbacks.History at 0x7f37f9fbd828>"
]
},
"metadata": {
"tags": []
},
"execution_count": 17
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "lzyhTR77-ULO",
"colab_type": "code",
"outputId": "a5759fa9-fcd1-4cab-c87a-bee0fafb98a5",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 52
}
},
"source": [
"# testing the model\n",
"test_data = working_dataset[training_data_len - moving_window : , :]\n",
"\n",
"x_test = []\n",
"y_test = working_dataset[training_data_len : , :]\n",
"for i in range(moving_window, len(test_data)):\n",
" x_test.append(test_data[i - moving_window : i, 0])\n",
"x_test = np.array(x_test)\n",
"print(x_test.shape)\n",
"print(y_test.shape)"
],
"execution_count": 18,
"outputs": [
{
"output_type": "stream",
"text": [
"(17, 14)\n",
"(17, 1)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "cz4GcY0WBhdD",
"colab_type": "code",
"outputId": "dde756bd-4243-44c1-e390-d2567174ce8e",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 52
}
},
"source": [
"x_test = np.reshape(a = x_test, newshape = (x_test.shape[0], x_test.shape[1], 1))\n",
"print(x_test.shape)\n",
"print(y_test.shape)"
],
"execution_count": 19,
"outputs": [
{
"output_type": "stream",
"text": [
"(17, 14, 1)\n",
"(17, 1)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "4Qe0e1JyBvc0",
"colab_type": "code",
"colab": {}
},
"source": [
"# predictions \n",
"predictions = model.predict(x_test)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "PTds1YHACSFF",
"colab_type": "code",
"colab": {}
},
"source": [
"# inverse transform\n",
"predictions = scaler.inverse_transform(predictions)\n",
"predictions = predictions.round()"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "OPJPwo3CC0OU",
"colab_type": "code",
"outputId": "590b987e-0a24-4a52-8c0d-f0955f9539a8",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"source": [
"# root mean squared error\n",
"rmse = np.sqrt(np.mean(predictions- y_test) ** 2)\n",
"print(rmse)"
],
"execution_count": 22,
"outputs": [
{
"output_type": "stream",
"text": [
"1120.616791761215\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "wMBLhr22CBR7",
"colab_type": "code",
"colab": {}
},
"source": [
"# predictions"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "D-iLvSRCCM5q",
"colab_type": "code",
"outputId": "842a240e-63b2-4144-e002-82cdf52ea792",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 638
}
},
"source": [
"# plotting \n",
"train = tamil_nadu_confirmed.iloc[ : training_data_len, :]\n",
"validation = tamil_nadu_confirmed.iloc[training_data_len : , :]\n",
"\n",
"validation['predictions'] = predictions\n",
"\n",
"# visualizations\n",
"plt.figure(figsize = (16, 8))\n",
"plt.title('JSVJ-Model')\n",
"plt.xlabel('date')\n",
"plt.ylabel('number of cases')\n",
"# plt.plot(tamil_nadu_confirmed)\n",
"plt.plot(validation)\n",
"plt.legend(['original', 'prediction'])\n",
"plt.show()"
],
"execution_count": 24,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:5: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" \"\"\"\n"
],
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7kAAAHwCAYAAABjb6hNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdeVhV1eLG8e9iVlRUwAFRwZxFUUTUzNRKczZNK5tMM5vnuW51G3/e29xt9DaolZo5lNpgWZppmgOKOY+IgBMOKCAyrd8fB71WDqgcNhzez/PwBPusvc8LPZkva+21jbUWEREREREREU/g5XQAERERERERkeKikisiIiIiIiIeQyVXREREREREPIZKroiIiIiIiHgMlVwRERERERHxGCq5IiIiIiIi4jFUckVERAQAY0yEMcYaY3yKMPYmY8yCksglIiJyNlRyRUREipExZp4xZmTh508YY7YZYzKMMcnGmC8Kj79vjBl/knOjjTFHjTHVz1QijTGJxpgcY0zIX46vKCyqEcX7nYmIiJQNKrkiIiJuYIwZBtwAXGatrQTEAj8VvjwOGGSMCfzLaTcAs6y1+4v4NtuAoSe8Z0ug4nkFFxERKeNUckVERNyjHTDbWrsFwFq7y1o7pvDzRUAKcOWxwcYYb+Ba4G8zvKfxKXDjCV8P++v5xpggY8x4Y8xeY8x2Y8w/jDFex97TGPOKMSbNGLMV6HOScz8yxuw0xqQYY14ozCkiIlJqqeSKiIi4x2LgRmPMw8aY2JOUw/H8uaBeBvgC357le1QxxjQrvP41wGd/GfMfIAhoAHQpfM/hha/dAvQF2uCaaR78l3PHAnlAw8IxPYCRZ5FPRESkxKnkioiIuIG19jPgbuBy4BdgjzHm0ROGfAp0McaEF359IzDBWpt7lm91bDa3O7AO1wwxcHx2+BrgcWvtYWttIvAqrmXRAFcBb1hrdxQukf6/E86tCfQG7rPWZlpr9wCvF15PRESk1Drj7okiIiJybqy1nwOfG2N8gSsKP19prZ1trU0yxswHrjfGvF34+sUnu44x5jugc+GXtxZe95hPgflAJH9f6hyCa3Z4+wnHtgN1Cj8PA3b85bVj6heeu9MYc+yY11/Gi4iIlDoquSIiIm5WODv7ZeFMbhQwu/ClccCjwE5gm7V2+SnO73Waa283xmzDNet6819eTgNycRXWtYXH6vG/2d6dQN0Txtc74fMdwFEgxFqbd9pvUEREpBTRcmURERE3KHwEUB9jTGVjjJcxphfQAvj9hGFTcRXLZ3EV3nN1M3CJtTbzxIPW2nxgMvBiYY76wAP8777dycA9xphwY0w14LETzt0J/AC8aoypUvg9XGCM6XIeOUVERNxOJVdERKT4WeAQ8ASQBBwE/g3cbq09/uzbwlI6FQgHPj/Fdc78ZtZusdYuO8XLdwOZwFZgATAB+Ljwtf/imlVOAOKBaX8590bAD9cs8AFgClC7KJlEREScYqwt0v8/RUREpAiMMfHAc9bar87zOvfgmp29oniSiYiIlA+ayRURESkmxpgWQDNgxXleJwAYAJxqdlZEREROQSVXRESkGBhj/oXrHtZHrbXbzzT+NNdpCezCtdz57WKKJyIiUm5oubKIiIiIiIh4DM3kioiIiIiIiMdQyRURERERERGP4eN0AHcICQmxERERTscQERERERERN1i+fHmatTb0ZK95ZMmNiIhg2TJtSCkiIiIiIuKJjDGn3ORRy5VFRERERETEY6jkioiIiIiIiMdQyRURERERERGP4ZH35J5Mbm4uycnJZGdnOx3FowQEBBAeHo6vr6/TUURERERERMpPyU1OTqZy5cpERERgjHE6jkew1rJv3z6Sk5OJjIx0Oo6IiIiIiEj5Wa6cnZ1NcHCwCm4xMsYQHBys2XERERERESk1yk3JBVRw3UA/UxERERERKU3KVcktK3r37s3BgwdPO+bpp59mzpw553T9efPm0bdv33M6V0REREREpDQrN/fklgXWWqy1fPvtt2cc+9xzz5VAIhERERERkbJFM7kl7LXXXiMqKoqoqCjeeOMNEhMTadKkCTfeeCNRUVHs2LGDiIgI0tLSAHj++edp0qQJF110EUOHDuWVV14B4KabbmLKlCkARERE8MwzzxATE0PLli1Zv349AEuWLKFjx460adOGCy+8kA0bNjjzTYuIiIiIiJSQcjmT++zMNaxNPVSs12weVoVn+rU47Zjly5fzySef8Pvvv2OtpX379nTp0oVNmzYxbtw4OnTo8KfxS5cuZerUqSQkJJCbm0tMTAxt27Y96bVDQkKIj4/n3Xff5ZVXXuHDDz+kadOm/Prrr/j4+DBnzhyeeOIJpk6dWmzfs4iIiIiISGlTLkuuUxYsWMDAgQMJDAwEYNCgQfz666/Ur1//bwUXYOHChQwYMICAgAACAgLo16/fKa89aNAgANq2bcu0adMASE9PZ9iwYWzatAljDLm5uW74rkREREREREqPcllyzzTjWtKOld7z4e/vD4C3tzd5eXkAPPXUU3Tr1o3p06eTmJhI165dz/t9RERERERESjPdk1uCOnfuzFdffUVWVhaZmZlMnz6dzp07n3J8p06dmDlzJtnZ2WRkZDBr1qyzer/09HTq1KkDwNixY88nuoiIiIiISJmgkluCYmJiuOmmm4iLi6N9+/aMHDmSatWqnXJ8u3bt6N+/P61ataJXr160bNmSoKCgIr/fI488wuOPP06bNm2Oz+6KiIiIiIh4MmOtdTpDsYuNjbXLli3707F169bRrFkzhxKdu4yMDCpVqkRWVhYXX3wxY8aMISYmxulYf1JWf7YiIiIiIlI2GWOWW2tjT/ZaubwntywZNWoUa9euJTs7m2HDhpW6gisiIiIiIh5m/zaoWh+8yubCX5XcUm7ChAlORxARERERkfJixWfwzUNw6dPQ8Q6n05wTlVwREREREZHyLifTVW4TJkBEZ4i60ulE50wlV0REREREpDzbsx6+HAZ7N0CXR10fXt5OpzpnKrkiIiIiIiLl1cqJ8M0D4BcIN0yHC7o5nei8qeSKiIiIiIiUNzlZ8O3DsPIz1/LkKz+EyrWcTlUsyuZ2WcK8efPo27cvADNmzGD06NGnHHvw4EHefffd41+npqYyePBgt2cUEREREZFSaO8G+O8lsPJzuPhhuOErjym4oJJb6uTn55/1Of379+exxx475et/LblhYWFMmTLlnPKJiIiIiEgZljAJxnSFzL1w/VS45B/g/ecFvtPik8k4mudMvmKgkluCEhMTadq0Kddddx3NmjVj8ODBZGVlERERwaOPPkpMTAxffvklP/zwAx07diQmJoYhQ4aQkZEBwPfff0/Tpk2JiYlh2rRpx687duxY7rrrLgB2797NwIEDiY6OJjo6mt9++43HHnuMLVu20Lp1ax5++GESExOJiooCIDs7m+HDh9OyZUvatGnD3Llzj19z0KBB9OzZk0aNGvHII4+U8E9LRERERESKTe4R+PoumH4rhLWB2xZAw0v/NKSgwPJ/367jgckJjPst0ZmcxaB83pP73WOw64/ivWatltDr1EuGj9mwYQMf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dOPpmSPZVV7LDa+toMnlPux5+SXV3PbGagalRvLAuYOwLKudKxURERERkWOhkCtdztg+cfzxvCEs2lrGPe+u/d5ooeqGZq59ZQWBAX48ddlIQgL9HapURERERESOlrorS5c0Y2QPdpTW8Pj8rfSOD+faSRkAGGO4499r2FZSzas/H0OPmDCHKxURERERkaOhkCtd1u2nZLG9rIY/fbSRnnFhnD4omVkLt/HftUXcfWY24zPjnS5RRERERESOkkKudFl+fhYPXTCUvRV13PrGam4tq+WvH2/irCHJXH1iH6fLExERERGRY6B7cqVLCwn055mZOcR3C+ZP/91I38QI/jJjiBpNiYiIiIh0UAq50uUlRATzwhWj+MngZJ6eOZKwIG1wEBERERHpqPTbvAjQNymCJ346wukyRERERETkOGklV0RERERERDoNhVwRERERERHpNBRyRUREREREpNNQyBUREREREZFOQyFXREREREREOg2FXBEREREREek0FHJFRERERESk01DIFRERERERkU5DIVdEREREREQ6DYVcERERERER6TQUckVERERERKTTUMgVERERERGRTsORkGtZVrRlWW9ZlrXRsqwNlmWNsywr1rKsTyzL2uJ5jPGca1mW9ahlWVsty8q1LGuEEzWLiIiIiIiI73NqJfcR4CNjTDYwFNgA3AnMM8b0BeZ5vgY4A+jr+bgGmNX+5YqIiIiIiEhH0O4h17KsKGAi8A8AY0yjMaYCmA685DntJeAcz+fTgZeNbTEQbVlWcjuXLSIiIiIiIh2AEyu5vYES4AXLslZZlvWcZVnhQJIxptBzThGQ5Pk8FSg45Pt3e577FsuyrrEsa7llWctLSkq8WL6IiIiIiIj4KidCbgAwAphljBkO1NCyNRkAY4wBzNG8qDHmGWNMjjEmJyEhoc2KFRERERERkY7DiZC7G9htjFni+fot7NBbfHAbsudxn+f4HiDtkO/v4XlORERERERE5FsC2vsNjTFFlmUVWJbVzxizCZgKrPd8XA78yfP4nudb3gdusizrX8AYoPKQbc2HtWLFilLLsnZ67SLaRjxQ6nQRbaSzXEtnuQ7QtfiqznItneU6QNfiqzrLtXSW6wBdiy/qLNcBuhZf5evX0vNIByx7Z3D7sixrGPAcEATkA1diryq/CaQDO4ELjTHllmVZwOPA6UAtcKUx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\n",
"text/plain": [
"<Figure size 1152x576 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "moAIIaj9EnE3",
"colab_type": "code",
"colab": {}
},
"source": [
"# create a dataframe with the last moving_window\n",
"next_day = tamil_nadu_confirmed.iloc[len(tamil_nadu_confirmed) - moving_window : , :]\n",
"next_day_scaled = scaler.transform(next_day)\n",
"\n",
"x_test = []\n",
"x_test.append(next_day_scaled)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "cf_9vhZMHwHo",
"colab_type": "code",
"outputId": "e541a092-fd82-49d2-c8bf-e855cdb0979b",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"source": [
"# convert into array\n",
"x_test = np.array(x_test)\n",
"print(x_test.shape)"
],
"execution_count": 26,
"outputs": [
{
"output_type": "stream",
"text": [
"(1, 14, 1)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "bRk9azBGILi3",
"colab_type": "code",
"outputId": "5b8cb130-466f-4472-9080-aa8dc9e32c17",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"source": [
"# reshape the array\n",
"x_test = np.reshape(a = x_test, newshape = (x_test.shape[0], x_test.shape[1], 1))\n",
"print(x_test.shape)"
],
"execution_count": 27,
"outputs": [
{
"output_type": "stream",
"text": [
"(1, 14, 1)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "WPDs5vzhIUcg",
"colab_type": "code",
"colab": {}
},
"source": [
"next_day_cases = model.predict(x_test)\n",
"next_day_cases = scaler.inverse_transform(next_day_cases)\n",
"next_day_cases = next_day_cases.round()"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "QbM1tH_rIt5f",
"colab_type": "code",
"colab": {}
},
"source": [
"complete_date = tamil_nadu_confirmed.tail(1).index[0]\n",
"date = tamil_nadu_confirmed.tail(1).index[0][:2]\n",
"month = tamil_nadu_confirmed.tail(1).index[0][3:6]"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "8cbNnEgQSF7q",
"colab_type": "code",
"outputId": "db36b3f6-f337-4b64-f24b-d3abbed649d1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 230
}
},
"source": [
"validation.tail()"
],
"execution_count": 30,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>TN</th>\n",
" <th>predictions</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>05-Jun-20</th>\n",
" <td>1438</td>\n",
" <td>1304.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>06-Jun-20</th>\n",
" <td>1458</td>\n",
" <td>1400.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>07-Jun-20</th>\n",
" <td>1515</td>\n",
" <td>1499.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>08-Jun-20</th>\n",
" <td>1562</td>\n",
" <td>1601.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>09-Jun-20</th>\n",
" <td>1685</td>\n",
" <td>1703.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" TN predictions\n",
"Date \n",
"05-Jun-20 1438 1304.0\n",
"06-Jun-20 1458 1400.0\n",
"07-Jun-20 1515 1499.0\n",
"08-Jun-20 1562 1601.0\n",
"09-Jun-20 1685 1703.0"
]
},
"metadata": {
"tags": []
},
"execution_count": 30
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "mG49eeNfK0Dw",
"colab_type": "code",
"outputId": "42170540-7c21-424a-8b26-ffed7c97a4e6",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 78
}
},
"source": [
"district_wise[district_wise['District_Key'] == 'TN_Chennai'][essential_columns]"
],
"execution_count": 31,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>District</th>\n",
" <th>Confirmed</th>\n",
" <th>Active</th>\n",
" <th>Recovered</th>\n",
" <th>Deceased</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>604</th>\n",
" <td>Chennai</td>\n",
" <td>25937</td>\n",
" <td>13089</td>\n",
" <td>12591</td>\n",
" <td>257</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" District Confirmed Active Recovered Deceased\n",
"604 Chennai 25937 13089 12591 257"
]
},
"metadata": {
"tags": []
},
"execution_count": 31
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "lJ2urs2IK0z_",
"colab_type": "code",
"outputId": "af296180-8fa8-4d7c-a99e-ddaf35974058",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 78
}
},
"source": [
"district_wise[district_wise['District_Key'] == 'TN_Chengalpattu'][essential_columns]"
],
"execution_count": 32,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>District</th>\n",
" <th>Confirmed</th>\n",
" <th>Active</th>\n",
" <th>Recovered</th>\n",
" <th>Deceased</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>603</th>\n",
" <td>Chengalpattu</td>\n",
" <td>2328</td>\n",
" <td>1413</td>\n",
" <td>897</td>\n",
" <td>18</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" District Confirmed Active Recovered Deceased\n",
"603 Chengalpattu 2328 1413 897 18"
]
},
"metadata": {
"tags": []
},
"execution_count": 32
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "QdpbUKn6J18C",
"colab_type": "code",
"colab": {}
},
"source": [
"# print('The expected new cases on {0}-{1} 2020 is = {2}'.format(str(int(date) + 1), str(month), str(next_day_cases[0][0])))\n",
"# print('The range may fall from {0} to {1}'.format(int(next_day_cases[0][0]) - 100, next_day_cases[0][0] + 100))"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "s1FojfhZXYGw",
"colab_type": "code",
"colab": {}
},
"source": [
"p_list = []\n",
"for i in range(0, 10):\n",
" model.fit(x_train, y_train, epochs = 50, verbose = 0)\n",
" next_day_cases = model.predict(x_test)\n",
" next_day_cases = scaler.inverse_transform(next_day_cases)\n",
" next_day_cases = next_day_cases.round()\n",
" p_list.append(next_day_cases)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "uI7gSCtVZCjA",
"colab_type": "code",
"outputId": "03f51587-a748-41ad-afe0-30141c190905",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 70
}
},
"source": [
"cases_min = np.array(p_list).min()\n",
"print(cases_min)\n",
"cases_max = np.array(p_list).max()\n",
"print(cases_max)\n",
"cases = np.array(p_list).mean().round()\n",
"print(cases)"
],
"execution_count": 35,
"outputs": [
{
"output_type": "stream",
"text": [
"1697.0\n",
"1829.0\n",
"1753.0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "zf78m4-iZYBy",
"colab_type": "code",
"outputId": "b82fae82-d329-4670-ad4e-4eb180856f6e",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 52
}
},
"source": [
"print('The expected new cases on {0}-{1} 2020 is = {2}'.format(str(int(date) + 1), str(month), str(cases)))\n",
"print('The range may fall from {0} to {1}'.format(cases_min, cases_max))"
],
"execution_count": 36,
"outputs": [
{
"output_type": "stream",
"text": [
"The expected new cases on 10-Jun 2020 is = 1753.0\n",
"The range may fall from 1697.0 to 1829.0\n"
],
"name": "stdout"
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment