noshot 0.1.8__py3-none-any.whl → 0.1.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- noshot/data/ML TS XAI/TS/1. EDA - Handling Time Series Data/Handling TS Data.ipynb +784 -0
- noshot/data/ML TS XAI/TS/1. EDA - Handling Time Series Data/raw_sales.csv +29581 -0
- noshot/data/ML TS XAI/TS/2. Feature Engineering/Feature Engineering-.ipynb +1445 -0
- noshot/data/ML TS XAI/TS/3. Temporal Relationships/Exploring Temporal Relationships.ipynb +603 -0
- noshot/data/ML TS XAI/TS/4. Up-Down-Sampling and Interploation/Up-Down-Sampling.ipynb +721 -0
- noshot/data/ML TS XAI/TS/4. Up-Down-Sampling and Interploation/shampoo_sales.csv +37 -0
- noshot/data/ML TS XAI/TS/5. Stationarity - Trend - Seasonality/Stationarity-Trend-Seasonality.ipynb +392 -0
- noshot/data/ML TS XAI/TS/5. Stationarity - Trend - Seasonality/daily-min-temperatures.csv +3651 -0
- noshot/data/ML TS XAI/TS/5. Stationarity - Trend - Seasonality/daily-total-female-births.csv +366 -0
- noshot/data/ML TS XAI/TS/6. Autocorrelation - Partial Autocorrelation/ACF-PACF.ipynb +175 -0
- noshot/data/ML TS XAI/TS/6. Autocorrelation - Partial Autocorrelation/daily-min-temperatures.csv +3651 -0
- {noshot-0.1.8.dist-info → noshot-0.1.9.dist-info}/METADATA +2 -2
- {noshot-0.1.8.dist-info → noshot-0.1.9.dist-info}/RECORD +16 -5
- {noshot-0.1.8.dist-info → noshot-0.1.9.dist-info}/LICENSE.txt +0 -0
- {noshot-0.1.8.dist-info → noshot-0.1.9.dist-info}/WHEEL +0 -0
- {noshot-0.1.8.dist-info → noshot-0.1.9.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,721 @@
|
|
1
|
+
{
|
2
|
+
"cells": [
|
3
|
+
{
|
4
|
+
"cell_type": "code",
|
5
|
+
"execution_count": 2,
|
6
|
+
"id": "f6d10d98-7242-4c03-a065-82c629993687",
|
7
|
+
"metadata": {},
|
8
|
+
"outputs": [
|
9
|
+
{
|
10
|
+
"name": "stdout",
|
11
|
+
"output_type": "stream",
|
12
|
+
"text": [
|
13
|
+
" Sales\n",
|
14
|
+
"Month \n",
|
15
|
+
"1901-01-01 266.0\n",
|
16
|
+
"1901-02-01 145.9\n",
|
17
|
+
"1901-03-01 183.1\n",
|
18
|
+
"1901-04-01 119.3\n",
|
19
|
+
"1901-05-01 180.3\n",
|
20
|
+
"1901-06-01 168.5\n",
|
21
|
+
"1901-07-01 231.8\n",
|
22
|
+
"1901-08-01 224.5\n",
|
23
|
+
"1901-09-01 192.8\n",
|
24
|
+
"1901-10-01 122.9\n",
|
25
|
+
"1901-11-01 336.5\n",
|
26
|
+
"1901-12-01 185.9\n",
|
27
|
+
"1902-01-01 194.3\n",
|
28
|
+
"1902-02-01 149.5\n",
|
29
|
+
"1902-03-01 210.1\n",
|
30
|
+
"1902-04-01 273.3\n",
|
31
|
+
"1902-05-01 191.4\n",
|
32
|
+
"1902-06-01 287.0\n",
|
33
|
+
"1902-07-01 226.0\n",
|
34
|
+
"1902-08-01 303.6\n",
|
35
|
+
"1902-09-01 289.9\n",
|
36
|
+
"1902-10-01 421.6\n",
|
37
|
+
"1902-11-01 264.5\n",
|
38
|
+
"1902-12-01 342.3\n",
|
39
|
+
"1903-01-01 339.7\n",
|
40
|
+
"1903-02-01 440.4\n",
|
41
|
+
"1903-03-01 315.9\n",
|
42
|
+
"1903-04-01 439.3\n",
|
43
|
+
"1903-05-01 401.3\n",
|
44
|
+
"1903-06-01 437.4\n",
|
45
|
+
"1903-07-01 575.5\n",
|
46
|
+
"1903-08-01 407.6\n",
|
47
|
+
"1903-09-01 682.0\n",
|
48
|
+
"1903-10-01 475.3\n",
|
49
|
+
"1903-11-01 581.3\n",
|
50
|
+
"1903-12-01 646.9\n",
|
51
|
+
" Sales\n",
|
52
|
+
"Month \n",
|
53
|
+
"1901-01-01 266.000000\n",
|
54
|
+
"1901-01-02 262.125806\n",
|
55
|
+
"1901-01-03 258.251613\n",
|
56
|
+
"1901-01-04 254.377419\n",
|
57
|
+
"1901-01-05 250.503226\n",
|
58
|
+
"1901-01-06 246.629032\n",
|
59
|
+
"1901-01-07 242.754839\n",
|
60
|
+
"1901-01-08 238.880645\n",
|
61
|
+
"1901-01-09 235.006452\n",
|
62
|
+
"1901-01-10 231.132258\n",
|
63
|
+
"1901-01-11 227.258065\n",
|
64
|
+
"1901-01-12 223.383871\n",
|
65
|
+
"1901-01-13 219.509677\n",
|
66
|
+
"1901-01-14 215.635484\n",
|
67
|
+
"1901-01-15 211.761290\n",
|
68
|
+
"1901-01-16 207.887097\n",
|
69
|
+
"1901-01-17 204.012903\n",
|
70
|
+
"1901-01-18 200.138710\n",
|
71
|
+
"1901-01-19 196.264516\n",
|
72
|
+
"1901-01-20 192.390323\n",
|
73
|
+
"1901-01-21 188.516129\n",
|
74
|
+
"1901-01-22 184.641935\n",
|
75
|
+
"1901-01-23 180.767742\n",
|
76
|
+
"1901-01-24 176.893548\n",
|
77
|
+
"1901-01-25 173.019355\n",
|
78
|
+
"1901-01-26 169.145161\n",
|
79
|
+
"1901-01-27 165.270968\n",
|
80
|
+
"1901-01-28 161.396774\n",
|
81
|
+
"1901-01-29 157.522581\n",
|
82
|
+
"1901-01-30 153.648387\n",
|
83
|
+
"1901-01-31 149.774194\n",
|
84
|
+
"1901-02-01 145.900000\n",
|
85
|
+
" Sales\n",
|
86
|
+
"Month \n",
|
87
|
+
"1901-01-01 266.000000\n",
|
88
|
+
"1901-01-02 258.630160\n",
|
89
|
+
"1901-01-03 251.560886\n",
|
90
|
+
"1901-01-04 244.720748\n",
|
91
|
+
"1901-01-05 238.109746\n",
|
92
|
+
"1901-01-06 231.727880\n",
|
93
|
+
"1901-01-07 225.575149\n",
|
94
|
+
"1901-01-08 219.651553\n",
|
95
|
+
"1901-01-09 213.957094\n",
|
96
|
+
"1901-01-10 208.491770\n",
|
97
|
+
"1901-01-11 203.255582\n",
|
98
|
+
"1901-01-12 198.248529\n",
|
99
|
+
"1901-01-13 193.470612\n",
|
100
|
+
"1901-01-14 188.921831\n",
|
101
|
+
"1901-01-15 184.602185\n",
|
102
|
+
"1901-01-16 180.511676\n",
|
103
|
+
"1901-01-17 176.650301\n",
|
104
|
+
"1901-01-18 173.018063\n",
|
105
|
+
"1901-01-19 169.614960\n",
|
106
|
+
"1901-01-20 166.440993\n",
|
107
|
+
"1901-01-21 163.496161\n",
|
108
|
+
"1901-01-22 160.780465\n",
|
109
|
+
"1901-01-23 158.293905\n",
|
110
|
+
"1901-01-24 156.036481\n",
|
111
|
+
"1901-01-25 154.008192\n",
|
112
|
+
"1901-01-26 152.209039\n",
|
113
|
+
"1901-01-27 150.639021\n",
|
114
|
+
"1901-01-28 149.298139\n",
|
115
|
+
"1901-01-29 148.186393\n",
|
116
|
+
"1901-01-30 147.303783\n",
|
117
|
+
"1901-01-31 146.650308\n",
|
118
|
+
"1901-02-01 145.900000\n"
|
119
|
+
]
|
120
|
+
},
|
121
|
+
{
|
122
|
+
"name": "stderr",
|
123
|
+
"output_type": "stream",
|
124
|
+
"text": [
|
125
|
+
"C:\\Users\\admin\\AppData\\Local\\Temp\\ipykernel_7572\\3966586991.py:11: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n",
|
126
|
+
" series = read_csv(url, header=0, parse_dates=[0], index_col=0, date_parser=parser)\n"
|
127
|
+
]
|
128
|
+
},
|
129
|
+
{
|
130
|
+
"data": {
|
131
|
+
"image/png": "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r9/97neYN28exo0bh5/97GfYsWMHOjs7ERMTg7i4OOh0OpjNZpjNZsTExCivu+uuu3Dbbbdh5MiRWLNmDdra2rBr164B+zsgInXoBvsCiChypKam4tprr8WLL74IURRx7bXXIjU1VXn+zJkzcDgcmDNnjvKYXq/HjBkzcOzYsW7vNXHiROWfMzMzAQA1NTX91rOc/7rY2FjEx8ejpqYmoM9FRAOPAQoRqeruu+/G97//fQDAn/70p27PiaIIQGoHvvDxCx/T6/XKP8vPud3ufs9//uvk13rzOiIKLVziISJVXXXVVbDb7bDb7ViyZEm350aOHImoqChs375deczhcGDPnj0YO3as1+eIioqCy+VS7ZqJKPQwg0JEqtJqtcpyjVar7fZcbGwsvvvd7+InP/kJkpOTkZOTg8ceewzt7e1Yvny51+fIy8tDSUkJ9u/fj+HDhyM+Ph4Gg0HVz0FEg4sBChGpLiEhodfnfv/738PtduOOO+5AS0sLpk+fjg8++ABJSUlev/9NN92E119/HVdccQWamprwwgsvqDoIjogGnyDKi8JEREREIYI1KERERBRyGKAQERFRyGGAQkRERCGHAQoRERGFHAYoREREFHIYoBAREVHIYYBCREREIYcBChEREYUcBihEREQUchigEBERUchhgEJEREQhhwEKERERhZz/D6xHLZgK5ToUAAAAAElFTkSuQmCC",
|
132
|
+
"text/plain": [
|
133
|
+
"<Figure size 640x480 with 1 Axes>"
|
134
|
+
]
|
135
|
+
},
|
136
|
+
"metadata": {},
|
137
|
+
"output_type": "display_data"
|
138
|
+
},
|
139
|
+
{
|
140
|
+
"name": "stdout",
|
141
|
+
"output_type": "stream",
|
142
|
+
"text": [
|
143
|
+
" Sales\n",
|
144
|
+
"Month \n",
|
145
|
+
"1901-03-31 198.333333\n",
|
146
|
+
"1901-06-30 156.033333\n",
|
147
|
+
"1901-09-30 216.366667\n",
|
148
|
+
"1901-12-31 215.100000\n",
|
149
|
+
"1902-03-31 184.633333\n"
|
150
|
+
]
|
151
|
+
},
|
152
|
+
{
|
153
|
+
"data": {
|
154
|
+
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHBCAYAAABzIlFzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABMoUlEQVR4nO3dd3hTZd8H8G/apLtNd0PpoEBlldlCAVFAtiAqyJAt6MNGXgc+6PMqPq+CoIIDUUT2sIoMF4qggDI7oLJ3J110kO4mTe73j9JImR1pTpJ+P9eV64JzTpLfCXebL+fcQyaEECAiIiKyQDZSF0BERERUWwwyREREZLEYZIiIiMhiMcgQERGRxWKQISIiIovFIENEREQWi0GGiIiILBaDDBEREVksudQF1IZer0daWhpcXV0hk8mkLoeIiIiqQQiBgoIC+Pv7w8bGONdSLDLIpKWlITAwUOoyiIiIqBZSUlIQEBBglNeyyCDj6uoKoOKDcHNzk7gaIiIiqo78/HwEBgYavseNwSKDTOXtJDc3NwYZIiIiC2PMbiHs7EtEREQWi0GGiIiILBaDDBEREVksi+wjU106nQ5arVbqMqyCQqGAra2t1GUQERFVYZVBRgiBjIwM3LhxQ+pSrIq7uztUKhXn7iEiIrNhlUGmMsT4+vrCycmJX7x1JIRAcXExsrKyAACNGjWSuCIiIqIKVhdkdDqdIcR4eXlJXY7VcHR0BABkZWXB19eXt5mIiMgsWF1n38o+MU5OThJXYn0qP1P2OyIiInNhdUGmEm8nGR8/UyIiMjdWG2SIiIjI+jHIWJl169bB3d1d6jKIiIhMgkHGzGRlZWHq1KkICgqCvb09VCoVBgwYgCNHjkhdGhERkdmxulFLlm748OHQarVYv349mjZtiszMTPz+++/Izc2VujQiIqJaE0Lganah0V+XV2TMyI0bN3Dw4EEsXrwYvXv3RnBwMLp06YL58+dj8ODBAIClS5eibdu2cHZ2RmBgIGbMmIHCwvs3jB9//BHh4eFwcHBA06ZN8fbbb6O8vNywf8GCBYYrQP7+/pgzZ069nicREVm/snId4pJysfLAFTy/Phbh7+zF0E8PGf19GsQVGSEESrQ6Sd7bUWFb7dE+Li4ucHFxwc6dO9G1a1fY29vfcYyNjQ0++eQTNGnSBAkJCZgxYwbmzZuHFStW3PU1d+/ejXHjxuGTTz7BI488gitXruBf//oXAOCtt97Cd999h2XLliEqKgpt2rRBRkYG/v7779qfMBERNUh5RRrEJeUhNikPsYm5OHlNDU25vsoxdnLjXz+RCSGE0V+1nuXn50OpVEKtVsPNza3KvtLSUiQkJCAkJAQODg4AgGJNOVq/uVuKUnH2vwPgZFf9vLht2za88MILKCkpQadOndCzZ0+MHj0a7dq1u+vxW7duxfTp05GdnQ2gorPv3LlzDcszPProoxg0aBDmz59veM6mTZswb948pKWlYenSpVi5ciVOnz4NhUJx39ru9tkSEVHDI4RAYk4xYhNzDeHlctaddwe8nO0Q0cQDEcGeCG/igSAXGXy8PO76/V1bDeKKjCUZPnw4Bg8ejL/++gtHjhzBr7/+iiVLluCrr77CpEmTsG/fPixcuBBnz55Ffn4+ysvLUVpaiqKiIjg7O9/xenFxcYiJicG7775r2KbT6VBaWori4mKMGDECH330EZo2bYqBAwfi8ccfxxNPPAG5nE2DiIgqaMr1OJOmRmxiHmKTKsJLdqHmjuOa+TgjItizIrw08UQTr6rLBOXn5xu9tgZxRcZSbi3dy/PPP489e/bgzz//RMuWLTFt2jSMGjUKnp6eOHjwIKZMmYK8vDy4u7vfcUXG0dERb7/9NoYNG3bH6zZt2hQ2NjYoKSnBnj17sHfvXmzduhUhISE4cODAHVdoeEWGiKhhUBdrcTw5DzGJuYhNysPfKTdQdvttIlsbtAtQIryJBzoHe6JTsAc8ne3u+7r3+/6urQbx326ZTFaj2zvmpnXr1ti5cydiY2NRXl6ODz/8EDY2FfcZv/322/s+t1OnTrhw4QKaN29+z2McHR0xdOhQDB06FDNnzkTLli1x6tQpdOrUyajnQURE5kcIgZTcEsQm5Rr6t1zMvPM2kYeTAuGVV1uCPRDWWAkHhfTr7lnut7sVysnJwYgRIzB58mS0a9cOrq6uiI2NxZIlS/Dkk0+iWbNmKC8vx6effoonnngChw4dwhdffHHf13zzzTcxZMgQBAYGYsSIEbCxscHJkydx6tQpvPPOO1i3bh10Oh0iIyPh5OSEjRs3wtHREcHBwSY6ayIiMiWtTo+zafmITcpDXFIuYhPzkFVQdsdxId7OCA/2QOcmHggP9kQzH2ezXKqGQcaMuLi4IDIyEsuWLcOVK1eg1WoRGBiIF154Aa+//jocHR2xdOlSLF68GPPnz8ejjz6KRYsWYcKECfd8zQEDBuCnn37Cf//7XyxZsgQKhQItW7bE888/DwBwd3fHe++9h5deegk6nQ5t27bFjz/+yJXDiYisRH6pFieSbyA2sSK0xKfcuKO7hcJWhrDGSkQEV/RtCQ/2gLfLnSNnzVGD6CNDxsHPlojIvAkhcO1GCeKSbvZvSczDhcwC3P5N7+YgNwSWiGAPtA90N8ltIvaRISIiIoNynR7nMwoqrrYk5SE2MQ8Z+aV3HBfk6WS42hLRxAPNfVxgY2N+t4lqg0GGiIjIAn3111Us23MRRZqqt4nkNjK08XdDeLDnzf4tHvB1s96r6AwyREREFkZdrMUHv11AqVYPV3s5Ot28RRTexAMdAt0teqRuTTWcMyUiIrIS38Qmo1SrR0uVK36e8whsreQ2UW1Y7aKRFtiH2ezxMyUikp5OL7DhSBIAYFL3Jg06xABWGGQqZ6MtLi6WuBLrU/mZPmhNJiIiqj+/n8tEal4J3J0UeLJDY6nLkZzV3VqytbWFu7s7srKyAABOTk5mOYGPJRFCoLi4GFlZWXB3d4etrfQzORIRNVTrDicCAEZ1DoSjHX8fW12QAQCVSgUAhjBDxuHu7m74bImIyPQuZhbg8JUc2MiA8V05AztgpUFGJpOhUaNG8PX1hVarlbocq6BQKHglhohIYpVXY/q3ViHAw0naYsyEVQaZSra2tvzyJSIiq6Au1mLH8WsAgIndm0hbjBmxus6+RERE1ujb2BSUaHVoqXJF16aeUpdjNhhkiIiIzJxOL7D+SCKAiqsxHMTyDwYZIiIiM/fH+Syk5pVA6ajAUxxyXQWDDBERkZlbdzgBADC6C4dc345BhoiIyIxdzCzAocsccn0vDDJERERmbP3NIdf9WvtxyPVdMMgQERGZKXWxFttvDrme1D1E4mrME4MMERGRmaocct3Cj0Ou74VBhoiIyAzp9AIbjiYCACY9zCHX98IgQ0REZIb+OJ+FlFwOuX4QBhkiIiIzZBhyzVWu74tBhoiIyMxcumXI9TgOub4vBhkiIiIzs+6WIdeBnhxyfT8MMkRERGZEXfLPkGuucv1gDDJERERmZOstQ667NfWSuhyzxyBDRERkJm5d5ZpDrquHQYaIiMhM7OOQ6xpjkCEiIjITlZ18OeS6+hhkiIiIzMClzAIcvJzNIdc1xCBDRERkBir7xvRtxSHXNcEgQ0REJDF1iRbb4m6ucv1wE2mLsTAMMkRERBLjkOvaY5AhIiKSkE4vsOFIEoCKCfA45LpmGGSIiIgktO98FpJziyuGXHf0l7oci8MgQ0REJKHKIdejOgfCyU4ubTEWiEGGiIhIIrcOuR7PIde1wiBDREQkEQ65rjsGGSIiIgncusr1JK5yXWsMMkRERBLYGpuCYo0OD/m5oFszDrmuLQYZIiIiE7t1yPWk7iEccl0HDDJEREQmtv9CxZBrNwc5h1zXEYMMERGRiRlWue4SxCHXdcQgQ0REZEKXswrw1yUOuTaWGgWZBQsWQCaTVXmoVCrDfiEEFixYAH9/fzg6OqJXr144c+ZMldcoKyvD7Nmz4e3tDWdnZwwdOhSpqanGORsiIiIzt/5wRd+YPhxybRQ1viLTpk0bpKenGx6nTp0y7FuyZAmWLl2K5cuXIyYmBiqVCv369UNBQYHhmLlz52LHjh2IiorCwYMHUVhYiCFDhkCn0xnnjIiIiMyUukSLbccr/vP+HIdcG0WNb8zJ5fIqV2EqCSHw0Ucf4Y033sCwYcMAAOvXr4efnx+2bNmCqVOnQq1WY/Xq1di4cSP69u0LANi0aRMCAwOxd+9eDBgwoI6nQ0REZL445Nr4anxF5tKlS/D390dISAhGjx6Nq1evAgASEhKQkZGB/v37G461t7dHz549cfjwYQBAXFwctFptlWP8/f0RFhZmOOZuysrKkJ+fX+VBRERkSbjKdf2oUZCJjIzEhg0bsHv3bqxatQoZGRno3r07cnJykJGRAQDw8/Or8hw/Pz/DvoyMDNjZ2cHDw+Oex9zNokWLoFQqDY/AwMCalE1ERCS5W4dcP92xsdTlWI0aBZlBgwZh+PDhaNu2Lfr27Yuff/4ZQMUtpEq3J0whxANT54OOmT9/PtRqteGRkpJSk7KJiIgkxyHX9aNOw6+dnZ3Rtm1bXLp0ydBv5vYrK1lZWYarNCqVChqNBnl5efc85m7s7e3h5uZW5UFERGQpKodcyzjk2ujqFGTKyspw7tw5NGrUCCEhIVCpVNizZ49hv0ajwYEDB9C9e3cAQHh4OBQKRZVj0tPTcfr0acMxRERE1qZyyDVXuTa+Gl3beuWVV/DEE08gKCgIWVlZeOedd5Cfn4+JEydCJpNh7ty5WLhwIUJDQxEaGoqFCxfCyckJY8aMAQAolUpMmTIFL7/8Mry8vODp6YlXXnnFcKuKiIjI2uSXcsh1fapRkElNTcWzzz6L7Oxs+Pj4oGvXrjh69CiCgysuk82bNw8lJSWYMWMG8vLyEBkZid9++w2urq6G11i2bBnkcjlGjhyJkpIS9OnTB+vWrYOtra1xz4yIiMgMbI1N5ZDreiQTQgipi6ip/Px8KJVKqNVq9pchIiKzpdcL9P5wP5JyivHu02EYG9mw+8fUx/c311oiIiKqJ/svZiEph0Ou6xODDBERUT1ZeygRADCqcyCHXNcTBhkiIqJ6cDmr0DDkekK3JlKXY7UYZIiIiOrBhiOJAIA+LTnkuj4xyBARERlZfqkW38XdHHL9cBNpi7FyDDJERERGVjnkOtTXBd055LpeMcgQEREZkV4vDLeVuMp1/WOQISIiMqLKIdeuDnIM68Qh1/WNQYaIiMiI1t1cV2k0h1ybBIMMERGRkVzOKsSfF6/fXOW6idTlNAgMMkREREZy65DrIC8OuTYFBhkiIiIjyC/VYhuHXJscgwwREZERfBebiiIOuTY5BhkiIqI64pBr6TDIEBER1dGBi9eRyCHXkmCQISIiqqO1hxMBAKMiOOTa1BhkiIiI6uDK9X+GXHOVa9NjkCEiIqqDDTevxnDItTQYZIiIiGqp4JZVrid1byJtMQ0UgwwREVEtfRdXMeS6ua8LHm7OIddSYJAhIiKqBb1eYP3N20occi0dBhkiIqJaqDLkuiOHXEuFQYaIiKgW1t0y5NrZnkOupcIgQ0REVENXrhfiAIdcmwUGGSIiohr6Z8i1L4dcS4xBhoiIqAaqDrkOkbgaYpAhIiKqAQ65Ni8MMkRERNXEIdfmh0GGiIiomg5c4pBrc8MgQ0REVE3rDiUCAEZyyLXZYJAhIiKqhqtVhlwHS10O3cQgQ0REVA0bjiQBqBhyHezlLHE1VIlBhoiI6AEKSrXYGpsCoKKTL5kPBhkiIqIH2HbLkOsezb2lLoduwSBDRER0H3q9wPqbt5U45Nr8MMgQERHdx4FL15GQXcQh12aKQYaIiOg+KifA45Br88QgQ0REdA9Xrxdi/wUOuTZnDDJERET3UDnk+rEWHHJtrhhkiIiI7qLKKtcPN5G2GLonBhkiIqK72BaXisKycjTzceaQazPGIENERHSbW4dcT+KQa7PGIENERHSbPyuHXNvLMaxTgNTl0H0wyBAREd1m3c0h1yM45NrsMcgQERHdIiG7iEOuLQiDDBER0S0qJ8B7rIUvmnhzyLW5Y5AhIiK6qbCs3DDkmqtcWwYGGSIioptuHXL9SCiHXFsCBhkiIiLcHHJ987YSh1xbDgYZIiIiVAy5vsoh1xaHQYaIiAj/dPLlkGvLwiBDREQNXkJ2EfZxyLVFYpAhIqIGr/JqTG8OubY4DDJERNSg7T6TgQ1HEgFUdPIly8IgQ0REDdaxqzmY/fUJ6AUwKiKQQ64tEIMMERE1SOfS8/H8hlhoyvXo19oP7z4dxiHXFohBhoiIGpyU3GJMWBONgtJydGniiU+f7Qi5Lb8SLRH/1YiIqEHJLizD+NXHcL2gDC1Vrlg1MQIOClupy6JaYpAhIqIGo6BUi0lro5GYU4wAD0dsmNwFSkeF1GVRHTDIEBFRg1BWrsPUjXE4fS0fXs522DglEr5uDlKXRXXEIENERFZPpxd46Zu/cfhKDpztbLHuuS4I4XwxVoFBhoiIrJoQAgt+OIOfT6VDYSvDyvERaBuglLosMhIGGSIismqf/H4ZG48mQSYDlo3qgB6cK8aqMMgQEZHV2nQ0Ccv2XgQA/HdoGwxp5y9xRWRsDDJERGSVdp1Kx/9+fxoAMKdPKMZ3ayJtQVQvGGSIiMjqHL6cjblR8RACGBMZhP/pGyp1SVRPGGSIiMiqnL6mxr82xkGj02NQmAr/9ySXHrBmDDJERGQ1ErOLMGltNArLytGtqReWjeoAWxuGGGvGIENERFYhq6AUE9ZEI7tQgzb+bvhyQjiXHmgAGGSIiMji5ZdqMXFNDJJzixHs5YR1z3WBqwOXHmgI6hRkFi1aBJlMhrlz5xq2CSGwYMEC+Pv7w9HREb169cKZM2eqPK+srAyzZ8+Gt7c3nJ2dMXToUKSmptalFCIiaqBKtTq8sD4W59Lz4e1ij42TI+Hjai91WWQitQ4yMTEx+PLLL9GuXbsq25csWYKlS5di+fLliImJgUqlQr9+/VBQUGA4Zu7cudixYweioqJw8OBBFBYWYsiQIdDpdLU/EyIianB0eoEXo07gWEIuXO3lWD+5M4K8nKQui0yoVkGmsLAQY8eOxapVq+Dh4WHYLoTARx99hDfeeAPDhg1DWFgY1q9fj+LiYmzZsgUAoFarsXr1anz44Yfo27cvOnbsiE2bNuHUqVPYu3evcc6KiIisnhAC/9l5CrvPZMJOboMvJ0SgjT+XHmhoahVkZs6cicGDB6Nv375VtickJCAjIwP9+/c3bLO3t0fPnj1x+PBhAEBcXBy0Wm2VY/z9/REWFmY4hoiI6EGW7rmIr6NTYCMDPhndEd2aeUldEklAXtMnREVF4fjx44iJibljX0ZGBgDAz8+vynY/Pz8kJSUZjrGzs6tyJafymMrn366srAxlZWWGv+fn59e0bCIisiLrDiXg0z8uAwDefbotBoapJK6IpFKjKzIpKSl48cUXsWnTJjg4ONzzuNsnHhJCPHAyovsds2jRIiiVSsMjMDCwJmUTEZEV+eHvNLz901kAwMv9HsKzXYIkroikVKMgExcXh6ysLISHh0Mul0Mul+PAgQP45JNPIJfLDVdibr+ykpWVZdinUqmg0WiQl5d3z2NuN3/+fKjVasMjJSWlJmUTEZGV+OvSdbz8bcXSAxO7BWPWY82lLokkVqMg06dPH5w6dQrx8fGGR0REBMaOHYv4+Hg0bdoUKpUKe/bsMTxHo9HgwIED6N69OwAgPDwcCoWiyjHp6ek4ffq04Zjb2dvbw83NrcqDiIgalr9TbmDqxjhodQJD2jXCW0+04dIDVLM+Mq6urggLC6uyzdnZGV5eXobtc+fOxcKFCxEaGorQ0FAsXLgQTk5OGDNmDABAqVRiypQpePnll+Hl5QVPT0+88soraNu27R2dh4mIiADgyvVCPLcuBsUaHR4J9cbSkR1gw6UHCLXo7Psg8+bNQ0lJCWbMmIG8vDxERkbit99+g6urq+GYZcuWQS6XY+TIkSgpKUGfPn2wbt062NpyKmkiIqoqM78UE1ZHI7dIg3YBSnw+Lhx2ck5MTxVkQgghdRE1lZ+fD6VSCbVazdtMRERWTF2sxciVR3AhswBNvZ2xdVo3eLlw1l5LVR/f34y0RERklko0OkxZH4MLmQXwc7PH+sldGGLoDgwyRERkdsp1eszachyxSXlwc5Bj/eQuCPTk0gN0JwYZIiIyK0IIzN9+Cr+fz4K93AarJ3VGSxW7EdDdMcgQEZFZWfzrBWyNS4WtjQyfjemEzk08pS6JzBiDDBERmY2v/rqKLw5cAQAsGtYWfVvffaJUokoMMkREZBZ2nEjFOz+fAwC8NrAlRkZwORp6MAYZIiKS3L4LWXh160kAwJQeIZjWs6nEFZGlYJAhIiJJHU/Ow4xNx1GuF3i6Y2O88XgrLj1A1cYgQ0REkrmcVYDJ62JQotWhVwsfLHmmHZceoBphkCEiIkmk3SjB+NXRuFGsRccgd6wY2wkKW34tUc2wxRARkcnlFWkwYU000tWlaO7rgjUTO8PJzujL/1EDwCBDREQmVawpx+T1MbicVYhGSgdsmNwFHs52UpdFFopBhoiITEar02PG5uM4kXwD7k4KbJjcBf7ujlKXRRaMQYaIiExCrxeY991J7L9wHY4KW6yZ1Bmhfq5Sl0UWjkGGiIjqnRACC3edw44T1yC3kWHFuE7oFOQhdVlkBRhkiIio3q388yq+OpgAAHh/RDv0buErcUVkLRhkiIioXm2NTcF7v5wHAPxncCs83TFA4orImjDIEBFRvdl7NhP/3n4KADCtZzM8/wiXHiDjYpAhIqJ6EZOYi5lbjkOnFxgRHoDXBraQuiSyQgwyRERkdOcz8jFlXQzKyvXo28oXi4a15fpJVC8YZIiIyKhS84oxcU008kvLERHsgU+f7QQ5lx6gesL5oImIyCiScoqwJToZ38akIK9YixZ+rlg9sTMc7WylLo2sGIMMERHVWrlOj9/PZ2HT0ST8dSnbsL2pjzPWT+4CpZNCwuqoIWCQISKiGstQlyIqJhlR0SnIyC8FAMhkwKOhPhgbGYTHWvrydhKZBIMMERFVi14vcPByNjYdTcLv57Og0wsAgJezHUZEBGJMlyAEeTlJXCU1NAwyRER0XzmFZdgal4otx5KRnFts2N4lxBNjI4MwMEwFezn7wZA0GGSIiOgOQgjEJOZh87Ek/HIqAxqdHgDg6iDH8E4BGBsZxAUfySwwyBARkUF+qRY7jl/D5mNJuJhZaNjeLkCJcZHBGNK+EZzs+NVB5oOtkYiIcCpVjc3HkvB9fBpKtDoAgKPCFk928MeYyCC0C3CXtkCie2CQISJqoEo0Ovz4dxo2H0vC36lqw/ZQXxeM6xqMpzo2htKRw6fJvDHIEBE1MJcyC7D5WDK2HU9FQWk5AMDO1gaD2qowNjIYnZt4cDkBshgMMkREDUBZuQ67z2Ri09EkRCfkGrYHeTphTGQQRoQHwMvFXsIKiWqHQYaIyIql5BZj87FkbI1NQU6RBgBgIwP6tvLD2K7BeKS5N2xsePWFLBeDDBGRlSnX6fHH+SxsPpaMPy9dh6iYtw5+bvYY3TkIo7sEopHSUdoiiYyEQYaIyEpk5pciKjoFUTHJSFeXGrY/EuqNsZHB6NuKywaQ9WGQISKyYHq9wKEr2dh8NBl7zmUalg3wcFJgZEQgnu0ShCbezhJXSVR/GGSIiCxQbpEG38WlYMuxZCTm/LNsQOcmHhgbGYyBYSo4KLhsAFk/BhkiIgshhEBcUh42H0vGz6fSoSmvWDbAxV6OYZ0aY2xkMFqouGwANSwMMkREZq6gVIudJ65h87FknM8oMGwPa+yGcZHBeKK9P5zt+eucGia2fCIiM6XXCyzZfQEbjiSiWFOxbICDwgZD2/tjbGQw2gUoOXEdNXgMMkREZmrF/sv44sAVAEBzXxeMjQzCsI4BUDpx2QCiSgwyRERmaN+FLHy45yIA4L9PtsH4rsG8+kJ0FwwyRERmJimnCC9+fQJCAGMigzChWxOpSyIyW5wZiYjIjBRryjF1YxzyS8vRMcgdbz3RWuqSiMwagwwRkZkQQmDedydxPqMAPq72+GJcOOzlnAuG6H4YZIiIzMRXfyXgp5PpkNvIsGJsJ/i5OUhdEpHZY5AhIjIDhy9nY9Ev5wAAbz7RGp2beEpcEZFlYJAhIpLYtRslmPX1CegFMLxTAMZ3DZa6JCKLwSBDRCShUq0O0zbGIbdIg7DGbnj36TAOsyaqAQYZIiKJCCHwxo7TOHVNDU9nO3wxLpwLPRLVEIMMEZFENh5NwrbjqbCRAcuf7YgADyepSyKyOAwyREQSiEnMxX9/PAsAmD+oFbo395a4IiLLxCBDRGRimfmlmLH5OMr1Ak+098fzj4RIXRKRxWKQISIyIU25HtM3xeF6QRlaqlyxeHhbdu4lqgMGGSIiE3r7xzM4nnwDbg5yrBwfDic7LnlHVBcMMkREJvJNTDI2H0uGTAZ8/GxHBHs5S10SkcVjkCEiMoH4lBv4351nAAAv93sIvVv4SlwRkXVgkCEiqmfZhWWYvikOGp0e/Vv7YUav5lKXRGQ1GGSIiOqRVqfHzM3Hka4uRTMfZ3w4sj1sbNi5l8hYGGSIiOrRol3ncSwhFy72cqwcHwFXB4XUJRFZFQYZIqJ6svPENaw5lAAA+HBkezT3dZG4IiLrwyBDRFQPzqSp8e/tJwEAs3o3x4A2KokrIrJODDJEREaWV6TB1I1xKNXq0auFD/6n30NSl0RktRhkiIiMSKcXmBN1Aql5JQj2csLHozrClp17ieoNgwwRkRF98NsF/HUpG44KW6wcHw6lEzv3EtUnBhkiIiPZdSodn++/AgBY/Ew7tFS5SVwRkfVjkCEiMoKLmQV4ZevfAIAXHgnB0Pb+EldE1DAwyBAR1ZG6RIupG+NQrNGhezMvvDawpdQlETUYDDJERHWg1wu89E08ErKL0NjdEcvHdILclr9aiUyFP21ERHXwyR+X8Pv5LNjJbfDFuHB4OttJXRJRg8IgQ0RUS7+fy8RHey8BABY+3RZtA5QSV0TU8NQoyHz++edo164d3Nzc4Obmhm7duuGXX34x7BdCYMGCBfD394ejoyN69eqFM2fOVHmNsrIyzJ49G97e3nB2dsbQoUORmppqnLMhIjKRq9cLMTcqHgAwoVswngkPkLYgogaqRkEmICAA7733HmJjYxEbG4vHHnsMTz75pCGsLFmyBEuXLsXy5csRExMDlUqFfv36oaCgwPAac+fOxY4dOxAVFYWDBw+isLAQQ4YMgU6nM+6ZERHVk8KyckzdGIeCsnJEBHvgP4NbS10SUYMlE0KIuryAp6cn3n//fUyePBn+/v6YO3cuXnvtNQAVV1/8/PywePFiTJ06FWq1Gj4+Pti4cSNGjRoFAEhLS0NgYCB27dqFAQMGVOs98/PzoVQqoVar4ebGeRqIyHSEEJi55Th2ncqAn5s9fpzdA76uDlKXRWQR6uP7u9Z9ZHQ6HaKiolBUVIRu3bohISEBGRkZ6N+/v+EYe3t79OzZE4cPHwYAxMXFQavVVjnG398fYWFhhmPupqysDPn5+VUeRERS+OLAVew6lQGFrQwrxoYzxBBJrMZB5tSpU3BxcYG9vT2mTZuGHTt2oHXr1sjIyAAA+Pn5VTnez8/PsC8jIwN2dnbw8PC45zF3s2jRIiiVSsMjMDCwpmUTEdXZX5eu4/3d5wEAC4a2QXiwxwOeQUT1rcZBpkWLFoiPj8fRo0cxffp0TJw4EWfPnjXsl8mqLo4mhLhj2+0edMz8+fOhVqsNj5SUlJqWTURUJym5xZj99QnoBTAqIhBjugRJXRIRoRZBxs7ODs2bN0dERAQWLVqE9u3b4+OPP4ZKpQKAO66sZGVlGa7SqFQqaDQa5OXl3fOYu7G3tzeMlKp8EBGZSolGh6kb43CjWIv2AUq8/WSbB/4HjYhMo87zyAghUFZWhpCQEKhUKuzZs8ewT6PR4MCBA+jevTsAIDw8HAqFosox6enpOH36tOEYIiJzIoTA/O0ncTY9H17Odvh8XDgcFLZSl0VEN8lrcvDrr7+OQYMGITAwEAUFBYiKisL+/fvx66+/QiaTYe7cuVi4cCFCQ0MRGhqKhQsXwsnJCWPGjAEAKJVKTJkyBS+//DK8vLzg6emJV155BW3btkXfvn3r5QSJiOpi7aFE7IxPg62NDJ+N7QR/d0epSyKiW9QoyGRmZmL8+PFIT0+HUqlEu3bt8Ouvv6Jfv34AgHnz5qGkpAQzZsxAXl4eIiMj8dtvv8HV1dXwGsuWLYNcLsfIkSNRUlKCPn36YN26dbC15f9wiMi8HL2ag3d3nQMAvPF4K3Rt6iVxRUR0uzrPIyMFziNDRPUtXV2CJz49iOxCDZ7q4I9lozqwXwxRHZnVPDJERNaqrFyHaZuOI7tQg9aN3LBoWDuGGCIzxSBDRHQLIQTe3HkGf6fcgLuTAivHh8PRjre+icwVgwwR0S22RCfjm9gU2MiAT0Z3RKCnk9QlEdF9MMgQEd0Ul5SHBT9ULIL76oCWePQhH4krIqIHYZAhIgKQVVCKGZvjoNUJPN5WhWk9m0pdEhFVA4MMETV4mnI9Zm4+jsz8MoT6umDJM+3ZuZfIQjDIEFGD9+7PZxGTmAdXezlWjg+Hi32NptgiIgkxyBBRg/ZdXCrWH0kCAHw0ugOa+rhIXBER1QSDDBE1WKdS1Xh9xykAwNy+oejT6t6L1xKReWKQIaIGKaewDNM2xUFTrkffVr6Y81io1CURUS0wyBBRg1Ou02P21ydw7UYJQrydsXRUB9jYsHMvkSVikCGiBmfJ7gs4fCUHTna2WDk+HG4OCqlLIqJaYpAhogblx7/T8OWfVwEAH4xoj4f8XCWuiIjqgkGGiBqMc+n5mPfdSQDAtJ7N8HjbRhJXRER1xckSiMjqFZaVY8eJa1ix7zJKtDo8EuqNVwe0kLosIjICBhkislpn0/Kx6VgSvj9xDUUaHQAg2MsJn4zuCFt27iWyCgwyRGRVSrU6/HwyHZuPJeF48g3D9mY+zhgbGYxnIgLYuZfIijDIEJFVSMguwpZjSdgal4obxVoAgNxGhgFhKoyLDEbXpp5cP4nICjHIEJHF0ur0+P1cJjYdTcbBy9mG7Y3dHfFsl0CM7BwIX1cHCSskovrGIENEFiddXYKvo1PwTUwyMvPLAAAyGdDrIR+M6xqMXi182QeGqIFgkCEii6DXC/x1ORubjybh9/NZ0OkFAMDbxQ4jIwLxbJcgBHo6SVwlEZkagwwRmbXcIg22xqZgS3QyknKKDdsjQzwxrmswBrRRwU7OKbGIGioGGSIyO0IIxCXlYdPRJOw6lQGNTg8AcHWQY3inAIyNDEIoZ+QlIjDIEJEZKSjVYueJa9h8LBnnMwoM29s2VmJc1yA80d4fTnb8tUVE/+BvBCKS3Jk0NTYdTcb38ddQfHPiOgeFDYa298e4rsFoF+AubYFEZLYYZIhIEpUT1206loQTt01cN65rMIZ1DIDSiRPXEdH9McgQkUklZBdh89EkfHf8n4nrFLYyDGijwlhOXEdENcQgQ0T1TqvTY+/ZTGw6loRDl3MM2xu7O2JMZBBGRgTCx9VewgqJyFIxyBBRvUm7UYKo6GRExaQgq+Cfiet6t/DFuK5B6PkQJ64jorphkCEio9LrBf68dB2bjyXj93OZuDlvHbxd7DCqc8XEdQEenLiOiIyDQYaIjCKnsAxb41Kx5VgyknP/mbiua1NPjI3kxHVEVD8YZIio1oQQiL05cd0vd5m4blzXIDT35cR1RFR/GGSIqMaEEPgmJgVrDyXiQuY/E9e1C1BiXGQwnmjvD0c7WwkrJKKGgkGGiGps+R+X8eGeiwAqJq57sn1jjO0axInriMjkGGSIqEZ2nUo3hJg5fUIxpUcIlI6cuI6IpMEgQ0TVdjL1Bl76Nh4AMPnhELzU7yFpCyKiBo9DCIioWjLUpXhhQyxKtXr0buGDNwa3krokIiIGGSJ6sBKNDs9viEFmfhke8nPBJ8925ER2RGQWGGSI6L70eoGXvo3H6Wv58HS2w+qJneHqwD4xRGQeGGSI6L6W7b2IX05nwM7WBivHhyPQk7PyEpH5YJAhonvaeeIaPv3jMgBg4bC26NzEU+KKiIiqYpAhoruKS8rDvG0nAQDTejbDM+EBEldERHQnBhkiukNqXjGmboyFplyP/q39MG9AC6lLIiK6KwYZIqqisKwcz6+PRXahBq0buWHZqA6w4QglIjJTDDJEZKDTC8yNOoHzGQXwcbXHVxMj4GzPeTOJyHwxyBCRweJfz2PvuSzYy22wakIE/N0dpS6JiOi+GGSICADwbUwKvvzzKgDg/RHt0SHQXdqCiIiqgUGGiHD0ag7e2HkKAPBin1AMbe8vcUVERNXDIEPUwCXlFGH6pjhodQJD2jXC3L6hUpdERFRtDDJEDVh+qRZT1scir1iL9gFKfDCiPWQyjlAiIsvBIEPUQJXr9Ji15QQuZxVC5eaAVRMi4KCwlbosIqIaYZAhaqDe+fkc/rx4HY4KW3w1MQK+bg5Sl0REVGMMMkQN0MajSVh3OBEAsGxUB4Q1VkpbEBFRLTHIEDUwBy9lY8EPZwAArw5ogYFhKokrIiKqPQYZogbkyvVCzNgcB51eYFinxpjRq5nUJRER1QmDDFEDcaNYgynrYpBfWo6IYA8sGtaWI5SIyOIxyBA1AFqdHtM3HUdiTjECPBzxxfhw2Ms5QomILB+DDJGVE0Lgze9P48jVHDjb2WL1xM7wdrGXuiwiIqNgkCGycmsOJeLr6BTYyIBPx3REC5Wr1CURERkNgwyRFdt3Pgvv/nwWAPD6463wWEs/iSsiIjIuudQFkPnKLixDVHQyijQ6KGxtYGcrg8LW5ubjlj/Lb99Xdb+dvOo+O1sbyA37ZexwWk8uZBRg9tcnoBfAs10CMaVHiNQlEREZHYMM3dWNYg3GrDqKi5mF9f5eCtvbg44M8lvCkJ28aji6NQjZGcLUP3+3V9hiYBsVWvu71Xvt5iq7sAxT1segsKwcXZt64u2hYQyMRGSVGGToDiUaHaasj8XFzEL4utpjSDt/lOv10Or00JQLaHV6w0OjE9CW61Gu/+fP/+wX0Oj0KL/lz5py/R3vp9UJaHU6ADqjncOnf1zCsI4BeGXAQ2ikdDTa61qCsnIdpm2MQ2peCZp4OeHzseGwk/MuMhFZJwYZqkKr02PG5jjEJeXBzUGOjVMijdo5VAgBnV7cEXIqQtHNAFR+n30392v1+puhSVTdpxNIzC7Cb2czse14Kn46mYYpPUIwvVczuDoojHYe5koIgfnbTyE2KQ+uDnJ8NbEzPJztpC6LiKjeMMiQgV4vMO+7k9h34TocFDZY+1xno49wkclkkNvKILcFHFF/85j8nXID7+46h+iEXKzYfwVRMSmY2zcUz3YJgsLWeq9OfHHgKrYfvwZbGxlWjO2E5r4uUpdERFSvrPc3OtWIEALv/HwOO05UfAl+PjYc4cGeUpdVa+0D3fHNv7pi1YQINPVxRm6RBm9+fwYDlv2JX09nQAghdYlGt/tMBpbsPg8AWPBEazwS6iNxRURE9Y9BhgAAK/ZfwZpDCQCAD0a0Q++WvhJXVHcymQz9Wvth99xH8X9PhcHbxQ5Xs4swbVMcRnxxBMeT86Qu0WhOX1NjblQ8hAAmdgvG+G5NpC6JiMgkGGQIUdHJeH/3BQDA/w5pjac7BkhckXEpbG0wvmsw9r/aG7Mfaw4HhQ1ik/IwbMVhzNx8HEk5RVKXWCdZ+aV4YUMsSrQ6PBLqjf8d0lrqkoiITEYmLPAae35+PpRKJdRqNdzcGu4QW2P49XQ6Zmw+Dr0AZvRqhnkDW0pdUr3LUJdi6Z4L2BqXCiEqhn+P6xqMOY+FWlzH2FKtDqO+PIq/U26gmY8zts94GEpH6+/UTESWqT6+v3lFpgE7fCUbc76Oh14AozsH4tUBLaQuySRUSgcseaY9ds15BI8+5AOtTmDtoUQ8+v4+rDxwBaVa4w0Dr09CCLyy9W/8nXID7k4KrJnUmSGGiBqcGgWZRYsWoXPnznB1dYWvry+eeuopXLhwocoxQggsWLAA/v7+cHR0RK9evXDmzJkqx5SVlWH27Nnw9vaGs7Mzhg4ditTU1LqfDVXb6Wtq/GtDHDQ6PQa08cM7TzW8CdNaNXLDhsldsHFKF7Rq5IaC0nIs+uU8+nx4ADtPXINeb94XKz/+/RJ+OpkOha0MX4wLR7CXs9QlERGZXI2CzIEDBzBz5kwcPXoUe/bsQXl5Ofr374+ion/6GCxZsgRLly7F8uXLERMTA5VKhX79+qGgoMBwzNy5c7Fjxw5ERUXh4MGDKCwsxJAhQ6DTWcb/hC1dQnYRJq6JNsz6+vHojpBb8ZDkB3kk1Ac/ze6BD0a0RyOlA67dKMHcb+Ix9LODOHwlW+ry7urHv9Pw0d5LAIB3ngpD16ZeEldERCSNOvWRuX79Onx9fXHgwAE8+uijEELA398fc+fOxWuvvQag4uqLn58fFi9ejKlTp0KtVsPHxwcbN27EqFGjAABpaWkIDAzErl27MGDAgAe+L/vI1F5mfimGf34YqXklaOPvhqh/dW0QE8VVV6lWh9UHE/D5/isoLCsHADzW0hfzB7VEqJ95rBodn3IDo1YeQVm5Hi88EoI3BrNzLxFZBrPrI6NWqwEAnp4V840kJCQgIyMD/fv3Nxxjb2+Pnj174vDhwwCAuLg4aLXaKsf4+/sjLCzMcAzVD3WxFhNWRxumrl/3XBeGmNs4KGwxs3dz7H+1FyZ0C4bcRoY/zmdhwEd/Yv72U8jKL5W0vnR1CV7YEIuycj36tPTFvwe1krQeIiKp1TrICCHw0ksvoUePHggLCwMAZGRkAAD8/PyqHOvn52fYl5GRATs7O3h4eNzzmNuVlZUhPz+/yoNqpmL9pBhcyCyAj6s9Nk6JhI+rvdRlmS1vF3v898kw/PY/j2JAGz/oBfB1dDJ6fbAfH+29iKKbV2tMqVhTjufXx+J6QRlaqlzx8bMdYWvTsPo1ERHdrtZBZtasWTh58iS+/vrrO/bd3mlUCPHAjqT3O2bRokVQKpWGR2BgIAAgNjG3ltU3LFqdHjO3HDesv7NhchcEejpJXZZFaOrjgpXjI7B1Wjd0CHRHsUaHj/ZeQq8P9uPr6GSU6+5cBLM+6PUC//NNPM6k5cPbxQ5fTYyAiz1XGCEiqlWQmT17Nn744Qfs27cPAQH/TJ6mUqkA4I4rK1lZWYarNCqVChqNBnl5efc85nbz58+HWq02PFJSUgAAU9bH4ss/r1jldPPGotcLvLbtJP44nwV7uQ3WTOqMVo3Yr6imOjfxxI4Z3fHZmE4I8nTC9YIyzN9+CoM+/gt/nM+s9zb4wW8XsPtMJuxsbbByfAQCPBhEiYiAGgYZIQRmzZqF7du3448//kBISEiV/SEhIVCpVNizZ49hm0ajwYEDB9C9e3cAQHh4OBQKRZVj0tPTcfr0acMxt7O3t4ebm1uVBwDo9AILd53H1I1xUJdoa3IqDYIQAgt3nauyiGDnJpa7fpLUZDIZBrdrhL0v9cSbQ1rD3UmBS1mFmLwuFmNWHcPpa+p6ed9tcalYsf8KAGDJM+0QHuzxgGcQETUcNRq1NGPGDGzZsgXff/89WrT4Z/I0pVIJR0dHAMDixYuxaNEirF27FqGhoVi4cCH279+PCxcuwNW1YtTH9OnT8dNPP2HdunXw9PTEK6+8gpycHMTFxcHW9sErIlf2ev7y91N4//cUaHR6BHk6YcXYTghrrKzpZ2C1Pt9/BYt/rVhE8MMR7TE83LqWHpCaukSLFfsuY+3hRGjKK24xPd2xMV7u/5DRrpjEJuZizKpj0Oj0mNW7OV5pIJMWEpF1qo9RSzUKMvfqw7J27VpMmjQJQMVVgLfffhsrV65EXl4eIiMj8dlnnxk6BANAaWkpXn31VWzZsgUlJSXo06cPVqxYYej78iC3fhBJ+QLTN8chNa8EdnIb/HdoG4zqHNjgJne73TcxyXht2ykAwBuPt8ILjzaVuCLrlZpXjA92X8DO+DQAgJ3cBs893AQzejWv00y7KbnFeOqzQ8gp0mBQmAqfjekEG3buJSILJnmQMRe3fxDqYi1e+jYev5/PAgAM7xSAd54Kg6Pdg6/uWKPdZzIwfVMc9AKY1rMZ/j3I+tdPMgcnU29g4a5zOHq1ohO6h5MCsx8LxbiuwbCT16w7WkGpFs98fgQXMgsQ1tgN307tBic7du4lIsvGIHPT3T4IvV5g5Z9X8f7u89ALoIWfKz4f1wlNfVwkrta0jl7NwYQ10dCU6zEyIgCLh7dr8FenTEkIgX0XsrBw13lczioEAAR7OWHegJZ4vK2qWv8WOr3ACxti8cf5LPi62uOHWT2gUjrUd+lERPWOQeam+30QR6/mYNaWE8guLIOLvRyLh7fD4HaNJKrUtE5fU+PZL4+ioKwc/Vr74fOxnRr00gNSKtfp8W1sKpbuuYjswjIAQKcgd7wxuBXCg+/f4fqdn87iq4MJcFDY4Nup3dAuwN0EFRMR1T8GmZse9EFk5Zdi9tcncCyh4hL/pO5N8PrjrWp8ed+SJGYX4ZkvDiO7UIMuIZ7YMLkLHBQN89aaOSkqK8eXf17Fl39eRcnNVbUHtlHhtUEtEeJ95yKPUdHJ+Pf2ir5Nn43p1GBCOBE1DAwyN1XngyjX6fHhnov4/Oaw1Y5B7lg+phMauzuaslSTyMovxfAvDiMltwStGrnhm6ld4calB8xKVn4plu29iG9iUqAXgNxGhrGRQZjTJxReLhUzLB++ko0Jq6NRrhd4qd9DmNMnVOKqiYiMi0Hmppp8EHvPZuKlb+ORX1oODycFPhrdET0f8jFRpfVPXaLFqJVHcD6jAMFeTtg6rRt8XdmfwlxdzCzAol3nsO/CdQCAq70c03o1Q59Wvhi18ijUJVo82cEfH43qwL5NRGR1GGRuqukHkZJbjBmbj+PUNTVkMmD2Y6F4sU+oxa9TU6rVYcLqaEQn5sLH1R7bpnVHkBdnfLUEhy9n491d53Amreq6YR0C3RH1r668LUhEVsnsVr+2FIGeFVcqxkYGQQjgk98vYeKaaOTc7IRpicp1eszachzRiblwdZBj/XNdGGIsSPfm3vhxVg8sG9XecLvTX+mALyeEM8QQEdVAg7gic6udJ65h/vZTKNHqoHJzwPIxHRFhYdP2CyHw6ncn8V1cKuzlNtg4JRJdQizrHOgfpVod9p7LRESwJ4dZE5FV4xUZI3iqY2P8MOthNPNxRkZ+KUZ/eRRf/XXVohaefO+X8/guLhW2NjIsH9OJIcbCOShsMaSdP0MMEVEtNLggAwChfq74YVYPPNHeH+V6gXd+Pofpm44jv9T8F55ceeAKVv55FQDw3rC26Nf67iuGExERNQQNMsgAgLO9HJ+M7oD/e7INFLYy/HomA0M/PYizt3W+NCffxqZg0S8Vi0DOH9QSIyKqtzYVERGRtWqwQQaoWARzfLcm2DqtOxq7OyIxpxhPrziEb2NTpC7tDnvOZmL+zYnSpj7aFFN7NpO4IiIiIuk16CBTqUOgO36a3QO9W/igrFyPed+dxLzv/kbpzZlYpXbsag5mbTkOnV7gmfAALgJJRER0E4PMTR7Odlg9sTNeHdACNjLg29hUPPXZISRkF0la19m0fDy/IRZl5Xr0beWH94a15URpRERENzHI3MLGRoaZvZtj05RIeLvY4XxGAYZ+ehC/nk6XpJ7knGJMXBuNgtJydGniieVjOnIRSCIiolvwW/Euujf3xs9zHkHnJh4oKCvHtE3H8X8/nYVWpzdZDVkFpRi/5hiuF5ShpcoVqyZGcKI0IiKi2zDI3IOfmwO2vNAVUx9tCgBYfTABo788inR1Sb2/d36pFhPXxCAppxiBno7YMLkLlI5cBJKIiOh2DDL3obC1wfzHW2Hl+HC4OsgRl5SHwZ8cxF+Xrtfbe5ZqdXh+fSzOpefD28UeGydHwteNE6URERHdDYNMNQxoo8JPs3ugjb8bcos0mLAmGh/vvQS93rizAZfr9Jj99QlEJ+TC1V6Odc91RhNvZ6O+BxERkTVhkKmmYC9nbJveHc92CYQQwLK9FzFpXQxyizRGeX0hBF7fcQp7zmbCTm6DVRMjENZYaZTXJiIislYMMjXgoLDFomHt8MGI9nBQ2ODPi9cx+JO/cDw5r86vvfjXC/g2NhU2MuDTZzuia1MvI1RMRERk3RhkauGZ8ADsnPkwmno7I11dilErj2DtoYRaLzy56s+r+OLAFQDAomFtMaCNypjlEhERWS0GmVpqqXLD97MexuC2jaDVCbz941nM2nICBTVceHJbXCre3XUOAPDawJYY1TmoPsolIiKySgwydeDqoMDyMR3x1hOtobCV4edT6Xhy+SGcz6jewpO/n8vEvG0nAQDP9wjBtJ5N67NcIiIiq8MgU0cymQzPPRyCb6Z2g7/SAVezi/DUZ4ewLS71vs+LSczFjM0V6ycN69QYrz/eiksPEBER1RCDjJF0CvLAT3MewaMP+aBUq8fLW//G/O0n77rw5Ln0fExeF4Oycj0ea+mLxcPbwcaGIYaIiKimGGSMyNPZDusmdcZL/R6CTAZ8HZ2C4Z8fRlLOPwtPpuQWY+KaivWTIoI98NmYTlBw/SQiIqJa4TeokdnYyDCnTyg2TO4CT2c7nEnLx5BPD2L3mQxcLyjD+NXHkHVz/aTVEzvD0Y7rJxEREdWWTNR2zLCE8vPzoVQqoVar4ebmJnU595SuLsGsLScQl1Qxz4yfmz0y88sQ4OGIbdO7w49LDxARUQNSH9/fvCJTjxopHRH1r654vkcIACAzvwzeLnbYOCWSIYaIiMgI5FIXYO0Utjb4z5DW6Bziie/jr2FW71CEcP0kIiIio2CQMZEBbVScsZeIiMjIeGuJiIiILBaDDBEREVksBhkiIiKyWAwyREREZLEYZIiIiMhiMcgQERGRxWKQISIiIovFIENEREQWi0GGiIiILBaDDBEREVksBhkiIiKyWAwyREREZLEYZIiIiMhiMcgQERGRxZJLXUBtCCEAAPn5+RJXQkRERNVV+b1d+T1uDBYZZHJycgAAgYGBEldCRERENVVQUAClUmmU17LIIOPp6QkASE5ONtoHYQqdO3dGTEyM1GXUmCXWbWk15+fnIzAwECkpKXBzc5O6nGqztM8ZYM2mwPZsOpZWsxAC4eHh8Pf3N9prWmSQsbGp6NqjVCot6ofE1tbWouqtZIl1W2LNAODm5mZRdVvi58yaTYftuf5ZYs12dnaG73FjYGdfE5o5c6bUJdSKJdZtiTVbIkv8nFkz3Yslfs6sGZAJY/a4MZH8/HwolUqo1WqLS6JEd8M2TdaE7ZlMySKvyNjb2+Ott96Cvb291KUQGQXbNFkTtmcyJYu8IkNEREQEWOgVGSIiIiKAQYaIiIgsGIOMkaWkpGDKlCnw9/eHnZ0dgoOD8eKLLxom8dNqtXjttdfQtm1bODs7w9/fHxMmTEBaWprZ1gwACxYsQMuWLeHs7AwPDw/07dsXx44dM+uabzV16lTIZDJ89NFHpi3UCrBNm0/Nt2Kbrh22Z/Op+VZ1as+CjObKlSvC19dX9OjRQ+zfv18kJSWJXbt2iTZt2ojQ0FCRk5Mjbty4Ifr27Su++eYbcf78eXHkyBERGRkpwsPDzbZmIYTYvHmz2LNnj7hy5Yo4ffq0mDJlinBzcxNZWVlmW3OlHTt2iPbt2wt/f3+xbNkyk9drydimzavmSmzTtcP2bF41V6prezbrIJOcnCwmT54sGjVqJBQKhQgKChJz5swR2dnZhmO2bdsm+vfvL7y8vAQAceLECcnqHThwoAgICBDFxcVVtqenpwsnJycxbdq0uz4vOjpaABBJSUmmKLOK2tasVqsFALF3715TlFlFTWpOTU0VjRs3FqdPnxbBwcGS/9Jnm65/bNOmw/Zc/9ieH8xsg0x1E92GDRvE22+/LVatWiXpD0lOTo6QyWRi4cKFd93/wgsvCA8PD6HX6+/Yt2fPHiGTyYRara7vMquobc1lZWXi/fffF0qlUly/ft0UpRrUpGadTid69+4tPvroIyGEkPyXPtt0/WObNh225/rH9lw9ZrtEwcyZM2FnZ4fffvsNjo6OAICgoCB07NgRzZo1wxtvvIHPP/8c48ePBwAkJiZKWC1w6dIlCCHQqlWru+5v1aoV8vLycP36dfj6+hq2l5aW4t///jfGjBlj8omjalrzTz/9hNGjR6O4uBiNGjXCnj174O3tbbY1r169GnK5HHPmzDFpjffCNl3/2KZNh+25/rE9V49ZdvbNzc3F7t27MWPGDMMPSCWVSoWxY8fim2++Meoy4PWtslY7OzvDNq1Wi9GjR0Ov12PFihVSlXZPt9fcu3dvxMfH4/Dhwxg4cCBGjhyJrKwsKUu8Q2XNKSkp+Pjjj7Fu3TrIZDKJq2KbNhds08bB9mwe2J4rmGWQqUmiMxfNmzeHTCbD2bNn77r//Pnz8PHxgbu7O4CKH5CRI0ciISEBe/bskWQa75rW7OzsjObNm6Nr166GJL169WoTVlz9mv/66y9kZWUhKCgIcrkccrkcSUlJePnll9GkSROT1gywTZsK27RpsD2bBttz9ZhlkHmQuyVnqXl5eaFfv35YsWIFSkpKquzLyMjA5s2bMWnSJAD//IBcunQJe/fuhZeXlwQV16zmuxFCoKysrJ6rrKq6NY8fPx4nT55EfHy84eHv749XX30Vu3fvNmnN1cE2bRxs0+aB7dk42J6rqca9akwgOztbyGQy8e677951/wsvvCB8fHyqbEtISJC8R/zFixeFt7e3eOSRR8SBAwdEcnKy+OWXX0RYWJjo0KGDKCgoEFqtVgwdOlQEBASI+Ph4kZ6ebniUlZWZZc2FhYVi/vz54siRIyIxMVHExcWJKVOmCHt7e3H69GmzrPlupOwYyTZtXjWzTdcN27N51dzQ27NZBhkhhOjfv79o3LjxPYdvvfrqq1W2m8MPSWUdEydOFH5+fkImkwkAYtiwYaKoqKhKnXd77Nu3zyxrLikpEU8//bTw9/cXdnZ2olGjRmLo0KEiOjpaknqrU/PdSD1qiW3afGpmm647tmfzqbmht2ezDTLVTXQ5OTnixIkT4ueffxYARFRUlDhx4oRIT0+X+AwqvPnmm8LFxUUcPnxY6lKqjTXXD7Zp6bBm42N7lg5rrspsg4wQ1Ut0a9euvWtyfuutt6Qr/DZr1qwRy5YtEzqdTupSqo011w+2aemwZuNje5YOa/6HTAjLGR/31ltvYenSpfjtt9/QrVs3qcshqjO2abImbM8kBYsKMgCwdu1aqNVqzJkzBzY2FjnoiqgKtmmyJmzPZGoWF2SIiIiIKjEuExERkcVikCEiIiKLxSBDREREFkuyIPPnn3/iiSeegL+/P2QyGXbu3Fllf2ZmJiZNmgR/f384OTlh4MCBuHTpUpVjysrKMHv2bHh7e8PZ2RlDhw5FampqlWPeffdddO/eHU5OTob1KIjqgynadGJiIqZMmYKQkBA4OjqiWbNmeOutt6DRaExxitSAmOp39NChQxEUFAQHBwc0atQI48ePR1paWn2fHlkRyYJMUVER2rdvj+XLl9+xTwiBp556ClevXsX333+PEydOIDg4GH379kVRUZHhuLlz52LHjh2IiorCwYMHUVhYiCFDhkCn0xmO0Wg0GDFiBKZPn26S86KGyxRt+vz589Dr9Vi5ciXOnDmDZcuW4YsvvsDrr79usvOkhsFUv6N79+6Nb7/9FhcuXMC2bdtw5coVPPPMMyY5R7ISRp2VppYAiB07dhj+fuHCBQGgyhoR5eXlwtPTU6xatUoIIcSNGzeEQqEQUVFRhmOuXbsmbGxsxK+//nrHe6xdu1Yolcp6OweiW5miTVdasmSJCAkJMf5JEN1kyvb8/fffC5lMJjQajfFPhKySWfaRqVyt08HBwbDN1tYWdnZ2OHjwIAAgLi4OWq0W/fv3Nxzj7++PsLAwHD582LQFEz1AfbZptVoNT0/Peqqc6E711Z5zc3OxefNmdO/eHQqFoh7PgKyJWQaZli1bIjg4GPPnz0deXh40Gg3ee+89ZGRkID09HUDFcuB2dnbw8PCo8lw/Pz9kZGRIUTbRPdVXm75y5Qo+/fRTTJs2rd7PgaiSsdvza6+9BmdnZ3h5eSE5ORnff/+9yc6FLJ9ZBhmFQoFt27bh4sWL8PT0hJOTE/bv349BgwbB1tb2vs8VQkAmk5moUqLqqY82nZaWhoEDB2LEiBF4/vnn66t0ojsYuz2/+uqrOHHiBH777TfY2tpiwoQJEJyrlarJLIMMAISHhyM+Ph43btxAeno6fv31V+Tk5CAkJAQAoFKpoNFokJeXV+V5WVlZ8PPzk6JkovsyZptOS0tD79690a1bN3z55ZcmOweiSsZsz97e3njooYfQr18/REVFYdeuXTh69KjJzoUsm9kGmUpKpRI+Pj64dOkSYmNj8eSTTwKo+CFSKBTYs2eP4dj09HScPn0a3bt3l6pcogeqa5u+du0aevXqhU6dOmHt2rVcz4YkZezf0ZVXYir74RA9iFyqNy4sLMTly5cNf09ISEB8fDw8PT0RFBSErVu3wsfHB0FBQTh16hRefPFFPPXUU4aOY0qlElOmTMHLL78MLy8veHp64pVXXkHbtm3Rt29fw+smJycjNzcXycnJ0Ol0iI+PBwA0b94cLi4uJj1nsm6maNNpaWno1asXgoKC8MEHH+D69euG91OpVKY9YbJqpmjP0dHRiI6ORo8ePeDh4YGrV6/izTffRLNmzbh6NlWfVMOl9u3bJwDc8Zg4caIQQoiPP/5YBAQECIVCIYKCgsR//vMfUVZWVuU1SkpKxKxZs4Snp6dwdHQUQ4YMEcnJyVWOmThx4l3fZ9++fSY6U2ooTNGm165de9f3kPBHmayUKdrzyZMnRe/evYWnp6ewt7cXTZo0EdOmTROpqammPFWycFz9moiIiCwWb64TERGRxWKQISIiIovFIENEREQWi0GGiIiILBaDDBEREVksBhkiIiKyWAwyREREZLEYZIjIashkMuzcuVPqMojIhBhkiKjOJk2aBJlMhmnTpt2xb8aMGZDJZJg0aZLR3m/BggXo0KGD0V6PiCwXgwwRGUVgYCCioqJQUlJi2FZaWoqvv/4aQUFBElZGRNaMQYaIjKJTp04ICgrC9u3bDdu2b9+OwMBAdOzY0bCtrKwMc+bMga+vLxwcHNCjRw/ExMQY9u/fvx8ymQy///47IiIi4OTkhO7du+PChQsAgHXr1uHtt9/G33//DZlMBplMhnXr1hmen52djaeffhpOTk4IDQ3FDz/8UP8nT0SSYZAhIqN57rnnsHbtWsPf16xZg8mTJ1c5Zt68edi2bRvWr1+P48ePo3nz5hgwYAByc3OrHPfGG2/gww8/RGxsLORyueF1Ro0ahZdffhlt2rRBeno60tPTMWrUKMPz3n77bYwcORInT57E448/jrFjx97x2kRkPRhkiMhoxo8fj4MHDyIxMRFJSUk4dOgQxo0bZ9hfVFSEzz//HO+//z4GDRqE1q1bY9WqVXB0dMTq1aurvNa7776Lnj17onXr1vj3v/+Nw4cPo7S0FI6OjnBxcYFcLodKpYJKpYKjo6PheZMmTcKzzz6L5s2bY+HChSgqKkJ0dLTJPgMiMi251AUQkfXw9vbG4MGDsX79egghMHjwYHh7exv2X7lyBVqtFg8//LBhm0KhQJcuXXDu3Lkqr9WuXTvDnxs1agQAyMrKemB/m1uf5+zsDFdXV2RlZdXpvIjIfDHIEJFRTZ48GbNmzQIAfPbZZ1X2CSEAVAyTvn377dsUCoXhz5X79Hr9A9//1udVPrc6zyMiy8RbS0RkVAMHDoRGo4FGo8GAAQOq7GvevDns7Oxw8OBBwzatVovY2Fi0atWq2u9hZ2cHnU5ntJqJyHLxigwRGZWtra3hNpGtrW2Vfc7Ozpg+fTpeffVVeHp6IigoCEuWLEFxcTGmTJlS7fdo0qQJEhISEB8fj4CAALi6usLe3t6o50FEloFBhoiMzs3N7Z773nvvPej1eowfPx4FBQWIiIjA7t274eHhUe3XHz58OLZv347evXvjxo0bWLt2rVEn3CMiyyETlTetiYiIiCwM+8gQERGRxWKQISIiIovFIENEREQWi0GGiIiILBaDDBEREVksBhkiIiKyWAwyREREZLEYZIiIiMhiMcgQERGRxWKQISIiIovFIENEREQWi0GGiIiILNb/A7V1mpBBZAEDAAAAAElFTkSuQmCC",
|
155
|
+
"text/plain": [
|
156
|
+
"<Figure size 640x480 with 1 Axes>"
|
157
|
+
]
|
158
|
+
},
|
159
|
+
"metadata": {},
|
160
|
+
"output_type": "display_data"
|
161
|
+
},
|
162
|
+
{
|
163
|
+
"name": "stdout",
|
164
|
+
"output_type": "stream",
|
165
|
+
"text": [
|
166
|
+
" Sales\n",
|
167
|
+
"Month \n",
|
168
|
+
"1901-12-31 2357.5\n",
|
169
|
+
"1902-12-31 3153.5\n",
|
170
|
+
"1903-12-31 5742.6\n"
|
171
|
+
]
|
172
|
+
},
|
173
|
+
{
|
174
|
+
"data": {
|
175
|
+
"image/png": "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S0FIRERE3JaCkIiIiLgtBSERERFxWwpCIiIi4ra8zC6gqRiGAUBZWZnJlYiIiMjZ+ma//c1+vKm12SBUXFwMQExMjMmViIiISGMVFxdjtVqb/HXabBAKDQ0F4ODBg83yRopI8ykrKyMmJoZDhw4RHBxsdjkicgE5HA5iY2Nd+/Gm1maDkIfHqdOfrFar/lCKtFHBwcH6fIu0Ud/sx5v8dZrlVURERERaIAUhERERcVttNgj5+vry2GOP4evra3YpInKB6fMt0nY19+fbYjRXf5qIiIhIC9NmjwiJiIiI/BQFIREREXFbCkIiIiLithSERERExG216CD06aefcu211xIdHY3FYuGdd95pMF5QUMCECROIjo4mICCA1NRU9uzZ02CO0+lk2rRphIeHExgYyOjRozl8+HCDOU8++SSDBw8mICCAkJCQJt4qEYHm+XwfOHCASZMm0blzZ/z9/bn44ot57LHHqK6ubo5NFHFbzbX/Hj16NLGxsfj5+REVFUVaWhpHjx5tVK0tOgidOHGCSy65hLlz5542ZhgG119/Pfv27ePdd99l69atxMXFMXz4cE6cOOGaN336dFauXMmKFSvYsGEDFRUVjBo1irq6Otec6upqbrrpJu6+++5m2S4RaZ7P965du6ivr2fevHnk5eUxZ84c/vGPf/DII48023aKuKPm2n8PHTqUN998k927d/PWW2+xd+9efvWrXzWuWKOVAIyVK1e6ft69e7cBGLm5ua7namtrjdDQUGP+/PmGYRhGaWmp4e3tbaxYscI158iRI4aHh4eRnp5+2mssWrTIsFqtTbYNInJmzfH5/sazzz5rdO7c+cJvhIicUXN+vt99913DYrEY1dXVZ11fiz4i9GOcTicAfn5+ruc8PT3x8fFhw4YNAGzZsoWamhpGjBjhmhMdHU1CQgIbN25s3oJF5Kw15efb4XA0280cReR0TfX5Pn78OMuWLWPw4MF4e3ufdT2tNgj17NmTuLg4Hn74YUpKSqiurubpp5/GbreTn58PgN1ux8fHh/bt2zdYNjIyErvdbkbZInIWmurzvXfvXl566SXuuuuuJt8GETmzC/35/s1vfkNgYCBhYWEcPHiQd999t1H1tNog5O3tzVtvvcUXX3xBaGgoAQEBrFu3jpEjR+Lp6fmjyxqGgcViaaZKRaSxmuLzffToUVJTU7npppuYPHlyU5UuIj/hQn++f/3rX7N161bWrFmDp6cnt99+O0YjbprRaoMQQP/+/cnJyaG0tJT8/HzS09MpLi6mc+fOANhsNqqrqykpKWmwXGFhIZGRkWaULCJn6UJ+vo8ePcrQoUNJTk7m5ZdfbrZtEJEzu5Cf7/DwcLp3787VV1/NihUr+OCDD8jIyDjrWlp1EPqG1WqlQ4cO7Nmzh82bN3PdddcBp95ob29v1q5d65qbn59Pbm4ugwcPNqtcEWmE8/18HzlyhCuvvJJ+/fqxaNEiPDzaxJ89kTbhQu+/vzkS9M15SGfD6xxrbxYVFRV8+eWXrp/3799PTk4OoaGhxMbG8s9//pMOHToQGxvL9u3beeCBB7j++utdJ1dZrVYmTZrEjBkzCAsLIzQ0lJkzZ9KnTx+GDx/uWu/Bgwc5fvw4Bw8epK6ujpycHAC6du1Ku3btmnWbRdxFc3y+jx49ypVXXklsbCx/+tOfKCoqcr2ezWZr3g0WcSPN8fnOysoiKyuLn/3sZ7Rv3559+/bxhz/8gYsvvpjk5OSzL/as+8tM8MknnxjAaY/x48cbhmEYf/nLX4yOHTsa3t7eRmxsrPG73/3OcDqdDdZRWVlp3HfffUZoaKjh7+9vjBo1yjh48GCDOePHjz/j63zyySfNtKUi7qc5Pt+LFi0642u08D99Iq1ec3y+t23bZgwdOtQIDQ01fH19jU6dOhl33XWXcfjw4UbVajGMRpxRJCIiItKG6MtyERERcVsKQiIiIuK2FIRERETEbSkIiYiIiNtSEBIRERG3pSAkIiIibktBSERERNyWgpCIiIi4LQUhEXErFouFd955x+wyRKSFUBASkWYxYcIELBYLd91112lj99xzDxaLhQkTJlyw15s1axaXXnrpBVufiLRNCkIi0mxiYmJYsWIFlZWVrueqqqp4/fXXiY2NNbEyEXFXCkIi0mz69etHbGwsb7/9tuu5t99+m5iYGC677DLXc06nk/vvv5+IiAj8/Pz42c9+RnZ2tmt83bp1WCwWPvroIwYMGEBAQACDBw9m9+7dACxevJjHH3+czz//HIvFgsViYfHixa7ljx07xi9/+UsCAgLo1q0b//73v5t+40WkRVIQEpFmdccdd7Bo0SLXz6+88goTJ05sMOehhx7irbfeYsmSJXz22Wd07dqVlJQUjh8/3mDeo48+yvPPP8/mzZvx8vJyrefmm29mxowZxMfHk5+fT35+PjfffLNruccff5wxY8awbds2fvGLXzBu3LjT1i0i7kFBSESaVVpaGhs2bODAgQN89dVX/O9//+O2225zjZ84cYK///3vPPfcc4wcOZLevXszf/58/P39WbhwYYN1PfnkkwwZMoTevXvz29/+lo0bN1JVVYW/vz/t2rXDy8sLm82GzWbD39/ftdyECRO49dZb6dq1K0899RQnTpwgKyur2d4DEWk5vMwuQETcS3h4ONdccw1LlizBMAyuueYawsPDXeN79+6lpqaGyy+/3PWct7c3gwYNYufOnQ3W1bdvX9e/o6KiACgsLPzJ842+u1xgYCBBQUEUFhae13aJSOukICQizW7ixIncd999APz1r39tMGYYBnCqzf37z3//OW9vb9e/vxmrr6//ydf/7nLfLHs2y4lI26OvxkSk2aWmplJdXU11dTUpKSkNxrp27YqPjw8bNmxwPVdTU8PmzZvp1avXWb+Gj48PdXV1F6xmEWmbdERIRJqdp6en62suT0/PBmOBgYHcfffd/PrXvyY0NJTY2FieffZZTp48yaRJk876NTp16sT+/fvJycmhY8eOBAUF4evre0G3Q0RaPwUhETFFcHDwD449/fTT1NfXk5aWRnl5OQMGDGD16tW0b9/+rNd/44038vbbbzN06FBKS0tZtGjRBb1go4i0DRbjmy/kRURERNyMzhESERERt6UgJCIiIm5LQUhERETcloKQiIiIuC0FIREREXFbCkIiIiLithSERERExG0pCImIiIjbUhASERERt6UgJCIiIm5LQUhERETc1v8Hsh6n2TQCJCYAAAAASUVORK5CYII=",
|
176
|
+
"text/plain": [
|
177
|
+
"<Figure size 640x480 with 1 Axes>"
|
178
|
+
]
|
179
|
+
},
|
180
|
+
"metadata": {},
|
181
|
+
"output_type": "display_data"
|
182
|
+
}
|
183
|
+
],
|
184
|
+
"source": [
|
185
|
+
"import pandas as pd\n",
|
186
|
+
"import numpy as np\n",
|
187
|
+
"import seaborn as sns\n",
|
188
|
+
"from pandas import read_csv\n",
|
189
|
+
"from matplotlib import pyplot\n",
|
190
|
+
"import datetime\n",
|
191
|
+
"\n",
|
192
|
+
"url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/shampoo.csv'\n",
|
193
|
+
"def parser(x):\n",
|
194
|
+
" return datetime.datetime.strptime('190'+x, '%Y-%m') # Correct format string\n",
|
195
|
+
"series = read_csv(url, header=0, parse_dates=[0], index_col=0, date_parser=parser)\n",
|
196
|
+
"print(series)\n",
|
197
|
+
"upsampled = series.resample('D') # Changed series1 to series\n",
|
198
|
+
"interpolated = upsampled.interpolate(method='linear')\n",
|
199
|
+
"print(interpolated.head(32))\n",
|
200
|
+
"interpolated = upsampled.interpolate(method='spline', order=2) # Changed splline to spline\n",
|
201
|
+
"print(interpolated.head(32))\n",
|
202
|
+
"interpolated.plot()\n",
|
203
|
+
"pyplot.show()\n",
|
204
|
+
"resample = series.resample('Q') \n",
|
205
|
+
"quarterly_mean_sales = resample.mean()\n",
|
206
|
+
"print(quarterly_mean_sales.head())\n",
|
207
|
+
"quarterly_mean_sales.plot()\n",
|
208
|
+
"pyplot.show()\n",
|
209
|
+
"resample = series.resample('A')\n",
|
210
|
+
"annual_total_sales = resample.sum() \n",
|
211
|
+
"print(annual_total_sales)\n",
|
212
|
+
"annual_total_sales.plot() \n",
|
213
|
+
"pyplot.show()"
|
214
|
+
]
|
215
|
+
},
|
216
|
+
{
|
217
|
+
"cell_type": "code",
|
218
|
+
"execution_count": null,
|
219
|
+
"id": "383d4a30-6b74-4aa7-8fbc-2780db0f58bd",
|
220
|
+
"metadata": {},
|
221
|
+
"outputs": [],
|
222
|
+
"source": []
|
223
|
+
},
|
224
|
+
{
|
225
|
+
"cell_type": "code",
|
226
|
+
"execution_count": null,
|
227
|
+
"id": "38fc9158-2588-4d9f-86c9-e3c54ad96981",
|
228
|
+
"metadata": {},
|
229
|
+
"outputs": [],
|
230
|
+
"source": []
|
231
|
+
},
|
232
|
+
{
|
233
|
+
"cell_type": "code",
|
234
|
+
"execution_count": null,
|
235
|
+
"id": "8afcbd6b-ca71-40b5-a1c8-01513240c649",
|
236
|
+
"metadata": {},
|
237
|
+
"outputs": [],
|
238
|
+
"source": []
|
239
|
+
},
|
240
|
+
{
|
241
|
+
"cell_type": "code",
|
242
|
+
"execution_count": 10,
|
243
|
+
"id": "eba0460e-3215-48f4-a800-b196bb134580",
|
244
|
+
"metadata": {},
|
245
|
+
"outputs": [
|
246
|
+
{
|
247
|
+
"name": "stdout",
|
248
|
+
"output_type": "stream",
|
249
|
+
"text": [
|
250
|
+
"Requirement already satisfied: catboost in c:\\users\\admin\\anaconda3\\lib\\site-packages (1.2.7)\n",
|
251
|
+
"Requirement already satisfied: graphviz in c:\\users\\admin\\anaconda3\\lib\\site-packages (from catboost) (0.20.3)\n",
|
252
|
+
"Requirement already satisfied: matplotlib in c:\\users\\admin\\anaconda3\\lib\\site-packages (from catboost) (3.8.0)\n",
|
253
|
+
"Requirement already satisfied: numpy<2.0,>=1.16.0 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from catboost) (1.26.4)\n",
|
254
|
+
"Requirement already satisfied: pandas>=0.24 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from catboost) (2.1.4)\n",
|
255
|
+
"Requirement already satisfied: scipy in c:\\users\\admin\\anaconda3\\lib\\site-packages (from catboost) (1.11.4)\n",
|
256
|
+
"Requirement already satisfied: plotly in c:\\users\\admin\\anaconda3\\lib\\site-packages (from catboost) (5.9.0)\n",
|
257
|
+
"Requirement already satisfied: six in c:\\users\\admin\\anaconda3\\lib\\site-packages (from catboost) (1.16.0)\n",
|
258
|
+
"Requirement already satisfied: python-dateutil>=2.8.2 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from pandas>=0.24->catboost) (2.8.2)\n",
|
259
|
+
"Requirement already satisfied: pytz>=2020.1 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from pandas>=0.24->catboost) (2023.3.post1)\n",
|
260
|
+
"Requirement already satisfied: tzdata>=2022.1 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from pandas>=0.24->catboost) (2023.3)\n",
|
261
|
+
"Requirement already satisfied: contourpy>=1.0.1 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from matplotlib->catboost) (1.2.0)\n",
|
262
|
+
"Requirement already satisfied: cycler>=0.10 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from matplotlib->catboost) (0.11.0)\n",
|
263
|
+
"Requirement already satisfied: fonttools>=4.22.0 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from matplotlib->catboost) (4.25.0)\n",
|
264
|
+
"Requirement already satisfied: kiwisolver>=1.0.1 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from matplotlib->catboost) (1.4.4)\n",
|
265
|
+
"Requirement already satisfied: packaging>=20.0 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from matplotlib->catboost) (23.1)\n",
|
266
|
+
"Requirement already satisfied: pillow>=6.2.0 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from matplotlib->catboost) (10.2.0)\n",
|
267
|
+
"Requirement already satisfied: pyparsing>=2.3.1 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from matplotlib->catboost) (3.0.9)\n",
|
268
|
+
"Requirement already satisfied: tenacity>=6.2.0 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from plotly->catboost) (8.2.2)\n",
|
269
|
+
"Note: you may need to restart the kernel to use updated packages.\n"
|
270
|
+
]
|
271
|
+
}
|
272
|
+
],
|
273
|
+
"source": [
|
274
|
+
"pip install catboost"
|
275
|
+
]
|
276
|
+
},
|
277
|
+
{
|
278
|
+
"cell_type": "code",
|
279
|
+
"execution_count": 12,
|
280
|
+
"id": "ffaf23e3-c9d7-4821-9001-ab3872db2d23",
|
281
|
+
"metadata": {},
|
282
|
+
"outputs": [
|
283
|
+
{
|
284
|
+
"name": "stdout",
|
285
|
+
"output_type": "stream",
|
286
|
+
"text": [
|
287
|
+
"Collecting lightgbm\n",
|
288
|
+
" Downloading lightgbm-4.5.0-py3-none-win_amd64.whl.metadata (17 kB)\n",
|
289
|
+
"Requirement already satisfied: numpy>=1.17.0 in c:\\users\\admin\\anaconda3\\lib\\site-packages (from lightgbm) (1.26.4)\n",
|
290
|
+
"Requirement already satisfied: scipy in c:\\users\\admin\\anaconda3\\lib\\site-packages (from lightgbm) (1.11.4)\n",
|
291
|
+
"Downloading lightgbm-4.5.0-py3-none-win_amd64.whl (1.4 MB)\n",
|
292
|
+
" ---------------------------------------- 0.0/1.4 MB ? eta -:--:--\n",
|
293
|
+
" --- ------------------------------------ 0.1/1.4 MB 3.3 MB/s eta 0:00:01\n",
|
294
|
+
" --------------- ------------------------ 0.6/1.4 MB 7.1 MB/s eta 0:00:01\n",
|
295
|
+
" --------------- ------------------------ 0.6/1.4 MB 7.1 MB/s eta 0:00:01\n",
|
296
|
+
" --------------- ------------------------ 0.6/1.4 MB 7.1 MB/s eta 0:00:01\n",
|
297
|
+
" --------------- ------------------------ 0.6/1.4 MB 7.1 MB/s eta 0:00:01\n",
|
298
|
+
" --------------- ------------------------ 0.6/1.4 MB 7.1 MB/s eta 0:00:01\n",
|
299
|
+
" --------------- ------------------------ 0.6/1.4 MB 7.1 MB/s eta 0:00:01\n",
|
300
|
+
" ------------------- -------------------- 0.7/1.4 MB 2.0 MB/s eta 0:00:01\n",
|
301
|
+
" ------------------- -------------------- 0.7/1.4 MB 2.0 MB/s eta 0:00:01\n",
|
302
|
+
" ------------------- -------------------- 0.7/1.4 MB 2.0 MB/s eta 0:00:01\n",
|
303
|
+
" ------------------- -------------------- 0.7/1.4 MB 2.0 MB/s eta 0:00:01\n",
|
304
|
+
" ------------------- -------------------- 0.7/1.4 MB 1.3 MB/s eta 0:00:01\n",
|
305
|
+
" ----------------------- ---------------- 0.8/1.4 MB 1.4 MB/s eta 0:00:01\n",
|
306
|
+
" ----------------------- ---------------- 0.8/1.4 MB 1.4 MB/s eta 0:00:01\n",
|
307
|
+
" ----------------------- ---------------- 0.8/1.4 MB 1.4 MB/s eta 0:00:01\n",
|
308
|
+
" ----------------------- ---------------- 0.8/1.4 MB 1.4 MB/s eta 0:00:01\n",
|
309
|
+
" ----------------------- ---------------- 0.8/1.4 MB 1.4 MB/s eta 0:00:01\n",
|
310
|
+
" ----------------------- ---------------- 0.8/1.4 MB 1.4 MB/s eta 0:00:01\n",
|
311
|
+
" --------------------------- ------------ 1.0/1.4 MB 1.2 MB/s eta 0:00:01\n",
|
312
|
+
" --------------------------- ------------ 1.0/1.4 MB 1.2 MB/s eta 0:00:01\n",
|
313
|
+
" --------------------------- ------------ 1.0/1.4 MB 1.2 MB/s eta 0:00:01\n",
|
314
|
+
" --------------------------- ------------ 1.0/1.4 MB 1.2 MB/s eta 0:00:01\n",
|
315
|
+
" --------------------------- ------------ 1.0/1.4 MB 1.2 MB/s eta 0:00:01\n",
|
316
|
+
" --------------------------- ------------ 1.0/1.4 MB 1.2 MB/s eta 0:00:01\n",
|
317
|
+
" -------------------------------- ------- 1.2/1.4 MB 1.0 MB/s eta 0:00:01\n",
|
318
|
+
" -------------------------------- ------- 1.2/1.4 MB 1.0 MB/s eta 0:00:01\n",
|
319
|
+
" -------------------------------- ------- 1.2/1.4 MB 1.0 MB/s eta 0:00:01\n",
|
320
|
+
" -------------------------------- ------- 1.2/1.4 MB 1.0 MB/s eta 0:00:01\n",
|
321
|
+
" -------------------------------- ------- 1.2/1.4 MB 1.0 MB/s eta 0:00:01\n",
|
322
|
+
" ------------------------------------ --- 1.3/1.4 MB 927.6 kB/s eta 0:00:01\n",
|
323
|
+
" ------------------------------------ --- 1.3/1.4 MB 927.6 kB/s eta 0:00:01\n",
|
324
|
+
" ------------------------------------ --- 1.3/1.4 MB 927.6 kB/s eta 0:00:01\n",
|
325
|
+
" ------------------------------------ --- 1.3/1.4 MB 927.6 kB/s eta 0:00:01\n",
|
326
|
+
" ------------------------------------ --- 1.3/1.4 MB 927.6 kB/s eta 0:00:01\n",
|
327
|
+
" --------------------------------------- 1.4/1.4 MB 873.6 kB/s eta 0:00:01\n",
|
328
|
+
" ---------------------------------------- 1.4/1.4 MB 866.0 kB/s eta 0:00:00\n",
|
329
|
+
"Installing collected packages: lightgbm\n",
|
330
|
+
"Successfully installed lightgbm-4.5.0\n",
|
331
|
+
"Note: you may need to restart the kernel to use updated packages.\n"
|
332
|
+
]
|
333
|
+
}
|
334
|
+
],
|
335
|
+
"source": [
|
336
|
+
"pip install lightgbm"
|
337
|
+
]
|
338
|
+
},
|
339
|
+
{
|
340
|
+
"cell_type": "code",
|
341
|
+
"execution_count": 14,
|
342
|
+
"id": "828a622e-1a77-44de-9cae-d12a1ca7e942",
|
343
|
+
"metadata": {},
|
344
|
+
"outputs": [
|
345
|
+
{
|
346
|
+
"ename": "FileNotFoundError",
|
347
|
+
"evalue": "[Errno 2] No such file or directory: '/kaggle/input/store-sales-time-series-forecasting/train.csv'",
|
348
|
+
"output_type": "error",
|
349
|
+
"traceback": [
|
350
|
+
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
351
|
+
"\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)",
|
352
|
+
"Cell \u001b[1;32mIn[14], line 9\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mnumpy\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mnp\u001b[39;00m\n\u001b[0;32m 8\u001b[0m \u001b[38;5;66;03m# Load data\u001b[39;00m\n\u001b[1;32m----> 9\u001b[0m train_data \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m/kaggle/input/store-sales-time-series-forecasting/train.csv\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m 10\u001b[0m test_data \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m/kaggle/input/store-sales-time-series-forecasting/test.csv\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m 11\u001b[0m oil_data \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m/kaggle/input/store-sales-time-series-forecasting/oil.csv\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
|
353
|
+
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:948\u001b[0m, in \u001b[0;36mread_csv\u001b[1;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options, dtype_backend)\u001b[0m\n\u001b[0;32m 935\u001b[0m kwds_defaults \u001b[38;5;241m=\u001b[39m _refine_defaults_read(\n\u001b[0;32m 936\u001b[0m dialect,\n\u001b[0;32m 937\u001b[0m delimiter,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 944\u001b[0m dtype_backend\u001b[38;5;241m=\u001b[39mdtype_backend,\n\u001b[0;32m 945\u001b[0m )\n\u001b[0;32m 946\u001b[0m kwds\u001b[38;5;241m.\u001b[39mupdate(kwds_defaults)\n\u001b[1;32m--> 948\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _read(filepath_or_buffer, kwds)\n",
|
354
|
+
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:611\u001b[0m, in \u001b[0;36m_read\u001b[1;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[0;32m 608\u001b[0m _validate_names(kwds\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnames\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[0;32m 610\u001b[0m \u001b[38;5;66;03m# Create the parser.\u001b[39;00m\n\u001b[1;32m--> 611\u001b[0m parser \u001b[38;5;241m=\u001b[39m TextFileReader(filepath_or_buffer, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwds)\n\u001b[0;32m 613\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;129;01mor\u001b[39;00m iterator:\n\u001b[0;32m 614\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parser\n",
|
355
|
+
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1448\u001b[0m, in \u001b[0;36mTextFileReader.__init__\u001b[1;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[0;32m 1445\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m kwds[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 1447\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles: IOHandles \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m-> 1448\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_make_engine(f, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine)\n",
|
356
|
+
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1705\u001b[0m, in \u001b[0;36mTextFileReader._make_engine\u001b[1;34m(self, f, engine)\u001b[0m\n\u001b[0;32m 1703\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m mode:\n\u001b[0;32m 1704\u001b[0m mode \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m-> 1705\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;241m=\u001b[39m get_handle(\n\u001b[0;32m 1706\u001b[0m f,\n\u001b[0;32m 1707\u001b[0m mode,\n\u001b[0;32m 1708\u001b[0m encoding\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mencoding\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[0;32m 1709\u001b[0m compression\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcompression\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[0;32m 1710\u001b[0m memory_map\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmemory_map\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mFalse\u001b[39;00m),\n\u001b[0;32m 1711\u001b[0m is_text\u001b[38;5;241m=\u001b[39mis_text,\n\u001b[0;32m 1712\u001b[0m errors\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mencoding_errors\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstrict\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[0;32m 1713\u001b[0m storage_options\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstorage_options\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[0;32m 1714\u001b[0m )\n\u001b[0;32m 1715\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 1716\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles\u001b[38;5;241m.\u001b[39mhandle\n",
|
357
|
+
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\io\\common.py:863\u001b[0m, in \u001b[0;36mget_handle\u001b[1;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[0;32m 858\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(handle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[0;32m 859\u001b[0m \u001b[38;5;66;03m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[0;32m 860\u001b[0m \u001b[38;5;66;03m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[0;32m 861\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mencoding \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mmode:\n\u001b[0;32m 862\u001b[0m \u001b[38;5;66;03m# Encoding\u001b[39;00m\n\u001b[1;32m--> 863\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(\n\u001b[0;32m 864\u001b[0m handle,\n\u001b[0;32m 865\u001b[0m ioargs\u001b[38;5;241m.\u001b[39mmode,\n\u001b[0;32m 866\u001b[0m encoding\u001b[38;5;241m=\u001b[39mioargs\u001b[38;5;241m.\u001b[39mencoding,\n\u001b[0;32m 867\u001b[0m errors\u001b[38;5;241m=\u001b[39merrors,\n\u001b[0;32m 868\u001b[0m newline\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 869\u001b[0m )\n\u001b[0;32m 870\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 871\u001b[0m \u001b[38;5;66;03m# Binary mode\u001b[39;00m\n\u001b[0;32m 872\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(handle, ioargs\u001b[38;5;241m.\u001b[39mmode)\n",
|
358
|
+
"\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '/kaggle/input/store-sales-time-series-forecasting/train.csv'"
|
359
|
+
]
|
360
|
+
}
|
361
|
+
],
|
362
|
+
"source": [
|
363
|
+
"import pandas as pd\n",
|
364
|
+
"from catboost import CatBoostRegressor\n",
|
365
|
+
"from lightgbm import LGBMRegressor\n",
|
366
|
+
"from sklearn.model_selection import train_test_split\n",
|
367
|
+
"from sklearn.preprocessing import MinMaxScaler\n",
|
368
|
+
"import numpy as np\n",
|
369
|
+
"\n",
|
370
|
+
"# Load data\n",
|
371
|
+
"train_data = pd.read_csv('/kaggle/input/store-sales-time-series-forecasting/train.csv')\n",
|
372
|
+
"test_data = pd.read_csv('/kaggle/input/store-sales-time-series-forecasting/test.csv')\n",
|
373
|
+
"oil_data = pd.read_csv('/kaggle/input/store-sales-time-series-forecasting/oil.csv')\n",
|
374
|
+
"transactions_data = pd.read_csv('/kaggle/input/store-sales-time-series-forecasting/transactions.csv')\n",
|
375
|
+
"holidays_data = pd.read_csv('/kaggle/input/store-sales-time-series-forecasting/holidays_events.csv')\n",
|
376
|
+
"stores_data = pd.read_csv('/kaggle/input/store-sales-time-series-forecasting/stores.csv')\n",
|
377
|
+
"\n",
|
378
|
+
"# Combine train and test data\n",
|
379
|
+
"combined_data = pd.concat([train_data, test_data], ignore_index=True)\n",
|
380
|
+
"\n",
|
381
|
+
"# Feature engineering (date, oil, transactions, stores, holidays)\n",
|
382
|
+
"# ... (Refer to the original code for detailed feature engineering functions)\n",
|
383
|
+
"\n",
|
384
|
+
"# Data preprocessing\n",
|
385
|
+
"combined_data['date'] = pd.to_datetime(combined_data['date'])\n",
|
386
|
+
"# ... (Apply feature engineering functions like add_payday_flow, preprocess_oil_data, etc.)\n",
|
387
|
+
"\n",
|
388
|
+
"# Scaling\n",
|
389
|
+
"numerical_features = ['onpromotion', 'oil_price'] \n",
|
390
|
+
"scaler = MinMaxScaler()\n",
|
391
|
+
"combined_data[numerical_features] = scaler.fit_transform(combined_data[numerical_features])\n",
|
392
|
+
"\n",
|
393
|
+
"# Split data\n",
|
394
|
+
"train = combined_data[~combined_data['sales'].isna()]\n",
|
395
|
+
"test = combined_data[combined_data['sales'].isna()]\n",
|
396
|
+
"\n",
|
397
|
+
"# Encode categorical features\n",
|
398
|
+
"categorical_features = ['is_holiday_in_store_location', 'store_city', 'store_state', \n",
|
399
|
+
" 'store_type', 'cluster', 'payday_flow', 'family']\n",
|
400
|
+
"for col in categorical_features:\n",
|
401
|
+
" combined_data[col] = pd.Categorical(combined_data[col]).codes\n",
|
402
|
+
" \n",
|
403
|
+
"# Logarithmic transformation of target variable\n",
|
404
|
+
"train['sales_log'] = np.log1p(train['sales'])\n",
|
405
|
+
"\n",
|
406
|
+
"# Split into training and validation sets\n",
|
407
|
+
"X = train.drop(columns=['sales', 'sales_log'])\n",
|
408
|
+
"y = train['sales_log']\n",
|
409
|
+
"X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)\n",
|
410
|
+
"\n",
|
411
|
+
"\n",
|
412
|
+
"# Model training (CatBoost)\n",
|
413
|
+
"catboost_model = CatBoostRegressor(\n",
|
414
|
+
" iterations=1000, \n",
|
415
|
+
" learning_rate=0.1, \n",
|
416
|
+
" depth=8, \n",
|
417
|
+
" eval_metric='RMSE', \n",
|
418
|
+
" verbose=False, \n",
|
419
|
+
" random_seed=42,\n",
|
420
|
+
" l2_leaf_reg=5,\n",
|
421
|
+
" bagging_temperature=0.7\n",
|
422
|
+
")\n",
|
423
|
+
"catboost_model.fit(X_train, y_train)\n",
|
424
|
+
"\n",
|
425
|
+
"# Model training (LightGBM)\n",
|
426
|
+
"lightgbm_model = LGBMRegressor(\n",
|
427
|
+
" n_estimators=1000,\n",
|
428
|
+
" learning_rate=0.05,\n",
|
429
|
+
" max_depth=8,\n",
|
430
|
+
" random_state=42,\n",
|
431
|
+
" subsample=0.8,\n",
|
432
|
+
" reg_lambda=0.1,\n",
|
433
|
+
" reg_alpha=0,\n",
|
434
|
+
" num_leaves=100,\n",
|
435
|
+
" min_child_samples=20,\n",
|
436
|
+
" colsample_bytree=0.6,\n",
|
437
|
+
" verbose=-1\n",
|
438
|
+
")\n",
|
439
|
+
"lightgbm_model.fit(X_train, y_train)\n",
|
440
|
+
"\n",
|
441
|
+
"# Make predictions\n",
|
442
|
+
"catboost_predictions_log = catboost_model.predict(test[X_train.columns])\n",
|
443
|
+
"lightgbm_predictions_log = lightgbm_model.predict(test[X_train.columns])\n",
|
444
|
+
"\n",
|
445
|
+
"# Convert predictions back to original scale\n",
|
446
|
+
"catboost_predictions = np.expm1(catboost_predictions_log)\n",
|
447
|
+
"lightgbm_predictions = np.expm1(lightgbm_predictions_log)\n",
|
448
|
+
"\n",
|
449
|
+
"# Combine predictions\n",
|
450
|
+
"final_predictions = (catboost_predictions + lightgbm_predictions) / 2\n",
|
451
|
+
"\n",
|
452
|
+
"# Create submission file\n",
|
453
|
+
"submission = test[['id']].copy()\n",
|
454
|
+
"submission['sales'] = final_predictions\n",
|
455
|
+
"submission.to_csv('submission.csv', index=False)"
|
456
|
+
]
|
457
|
+
},
|
458
|
+
{
|
459
|
+
"cell_type": "code",
|
460
|
+
"execution_count": 15,
|
461
|
+
"id": "7436a092-0543-4ce0-97f1-47f4257a6522",
|
462
|
+
"metadata": {},
|
463
|
+
"outputs": [
|
464
|
+
{
|
465
|
+
"ename": "FileNotFoundError",
|
466
|
+
"evalue": "[Errno 2] No such file or directory: '/kaggle/input/store-sales-time-series-forecasting/train.csv'",
|
467
|
+
"output_type": "error",
|
468
|
+
"traceback": [
|
469
|
+
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
470
|
+
"\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)",
|
471
|
+
"Cell \u001b[1;32mIn[15], line 9\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01msklearn\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpreprocessing\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m MinMaxScaler\n\u001b[0;32m 8\u001b[0m \u001b[38;5;66;03m# Load data using correct file paths\u001b[39;00m\n\u001b[1;32m----> 9\u001b[0m train \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m/kaggle/input/store-sales-time-series-forecasting/train.csv\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m 10\u001b[0m test \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m/kaggle/input/store-sales-time-series-forecasting/test.csv\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m 11\u001b[0m oil \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m/kaggle/input/store-sales-time-series-forecasting/oil.csv\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
|
472
|
+
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:948\u001b[0m, in \u001b[0;36mread_csv\u001b[1;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options, dtype_backend)\u001b[0m\n\u001b[0;32m 935\u001b[0m kwds_defaults \u001b[38;5;241m=\u001b[39m _refine_defaults_read(\n\u001b[0;32m 936\u001b[0m dialect,\n\u001b[0;32m 937\u001b[0m delimiter,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 944\u001b[0m dtype_backend\u001b[38;5;241m=\u001b[39mdtype_backend,\n\u001b[0;32m 945\u001b[0m )\n\u001b[0;32m 946\u001b[0m kwds\u001b[38;5;241m.\u001b[39mupdate(kwds_defaults)\n\u001b[1;32m--> 948\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _read(filepath_or_buffer, kwds)\n",
|
473
|
+
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:611\u001b[0m, in \u001b[0;36m_read\u001b[1;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[0;32m 608\u001b[0m _validate_names(kwds\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnames\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[0;32m 610\u001b[0m \u001b[38;5;66;03m# Create the parser.\u001b[39;00m\n\u001b[1;32m--> 611\u001b[0m parser \u001b[38;5;241m=\u001b[39m TextFileReader(filepath_or_buffer, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwds)\n\u001b[0;32m 613\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;129;01mor\u001b[39;00m iterator:\n\u001b[0;32m 614\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parser\n",
|
474
|
+
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1448\u001b[0m, in \u001b[0;36mTextFileReader.__init__\u001b[1;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[0;32m 1445\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m kwds[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 1447\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles: IOHandles \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m-> 1448\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_make_engine(f, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine)\n",
|
475
|
+
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\io\\parsers\\readers.py:1705\u001b[0m, in \u001b[0;36mTextFileReader._make_engine\u001b[1;34m(self, f, engine)\u001b[0m\n\u001b[0;32m 1703\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m mode:\n\u001b[0;32m 1704\u001b[0m mode \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m-> 1705\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;241m=\u001b[39m get_handle(\n\u001b[0;32m 1706\u001b[0m f,\n\u001b[0;32m 1707\u001b[0m mode,\n\u001b[0;32m 1708\u001b[0m encoding\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mencoding\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[0;32m 1709\u001b[0m compression\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcompression\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[0;32m 1710\u001b[0m memory_map\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmemory_map\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mFalse\u001b[39;00m),\n\u001b[0;32m 1711\u001b[0m is_text\u001b[38;5;241m=\u001b[39mis_text,\n\u001b[0;32m 1712\u001b[0m errors\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mencoding_errors\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstrict\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[0;32m 1713\u001b[0m storage_options\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstorage_options\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m),\n\u001b[0;32m 1714\u001b[0m )\n\u001b[0;32m 1715\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 1716\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles\u001b[38;5;241m.\u001b[39mhandle\n",
|
476
|
+
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\io\\common.py:863\u001b[0m, in \u001b[0;36mget_handle\u001b[1;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[0;32m 858\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(handle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[0;32m 859\u001b[0m \u001b[38;5;66;03m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[0;32m 860\u001b[0m \u001b[38;5;66;03m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[0;32m 861\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mencoding \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mmode:\n\u001b[0;32m 862\u001b[0m \u001b[38;5;66;03m# Encoding\u001b[39;00m\n\u001b[1;32m--> 863\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(\n\u001b[0;32m 864\u001b[0m handle,\n\u001b[0;32m 865\u001b[0m ioargs\u001b[38;5;241m.\u001b[39mmode,\n\u001b[0;32m 866\u001b[0m encoding\u001b[38;5;241m=\u001b[39mioargs\u001b[38;5;241m.\u001b[39mencoding,\n\u001b[0;32m 867\u001b[0m errors\u001b[38;5;241m=\u001b[39merrors,\n\u001b[0;32m 868\u001b[0m newline\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 869\u001b[0m )\n\u001b[0;32m 870\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 871\u001b[0m \u001b[38;5;66;03m# Binary mode\u001b[39;00m\n\u001b[0;32m 872\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(handle, ioargs\u001b[38;5;241m.\u001b[39mmode)\n",
|
477
|
+
"\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '/kaggle/input/store-sales-time-series-forecasting/train.csv'"
|
478
|
+
]
|
479
|
+
}
|
480
|
+
],
|
481
|
+
"source": [
|
482
|
+
"import pandas as pd\n",
|
483
|
+
"import numpy as np\n",
|
484
|
+
"from catboost import CatBoostRegressor\n",
|
485
|
+
"from lightgbm import LGBMRegressor\n",
|
486
|
+
"from sklearn.model_selection import train_test_split\n",
|
487
|
+
"from sklearn.preprocessing import MinMaxScaler\n",
|
488
|
+
"\n",
|
489
|
+
"# Load data using correct file paths\n",
|
490
|
+
"train = pd.read_csv('/kaggle/input/store-sales-time-series-forecasting/train.csv')\n",
|
491
|
+
"test = pd.read_csv('/kaggle/input/store-sales-time-series-forecasting/test.csv')\n",
|
492
|
+
"oil = pd.read_csv('/kaggle/input/store-sales-time-series-forecasting/oil.csv')\n",
|
493
|
+
"transactions = pd.read_csv('/kaggle/input/store-sales-time-series-forecasting/transactions.csv')\n",
|
494
|
+
"holidays = pd.read_csv('/kaggle/input/store-sales-time-series-forecasting/holidays_events.csv')\n",
|
495
|
+
"stores = pd.read_csv('/kaggle/input/store-sales-time-series-forecasting/stores.csv')\n",
|
496
|
+
"\n",
|
497
|
+
"# Combine train and test data\n",
|
498
|
+
"combined_data = pd.concat([train, test], ignore_index=True)\n",
|
499
|
+
"\n",
|
500
|
+
"# Feature engineering and preprocessing\n",
|
501
|
+
"combined_data['date'] = pd.to_datetime(combined_data['date'])\n",
|
502
|
+
"combined_data['year'] = combined_data['date'].dt.year\n",
|
503
|
+
"combined_data['month'] = combined_data['date'].dt.month\n",
|
504
|
+
"combined_data['day'] = combined_data['date'].dt.day\n",
|
505
|
+
"combined_data['day_of_week'] = combined_data['date'].dt.dayofweek\n",
|
506
|
+
"combined_data['is_weekend'] = combined_data['date'].dt.dayofweek.apply(lambda x: 1 if x >= 5 else 0)\n",
|
507
|
+
"combined_data['is_payday'] = combined_data['date'].dt.day.apply(lambda x: 1 if x in [15, 30] else 0)\n",
|
508
|
+
"\n",
|
509
|
+
"# Function for payday variable\n",
|
510
|
+
"def add_payday_flow(data):\n",
|
511
|
+
" data['payday_flow'] = data['date'].dt.day.apply(\n",
|
512
|
+
" lambda x: '30_before' if x >= 24 or x <= 1 else\n",
|
513
|
+
" '30_after' if 2 <= x <= 8 else\n",
|
514
|
+
" '15_before' if 9 <= x <= 14 else\n",
|
515
|
+
" '15_after' if 16 <= x <= 23 else 'other'\n",
|
516
|
+
" )\n",
|
517
|
+
" return data\n",
|
518
|
+
"\n",
|
519
|
+
"combined_data = add_payday_flow(combined_data)\n",
|
520
|
+
"\n",
|
521
|
+
"# Oil data preprocessing\n",
|
522
|
+
"oil['date'] = pd.to_datetime(oil['date'])\n",
|
523
|
+
"oil = oil.rename(columns={'dcoilwtico': 'oil_price'})\n",
|
524
|
+
"combined_data = combined_data.merge(oil, on='date', how='left')\n",
|
525
|
+
"combined_data['oil_price'].fillna(method='ffill', inplace=True)\n",
|
526
|
+
"\n",
|
527
|
+
"# Transactions data preprocessing\n",
|
528
|
+
"transactions['date'] = pd.to_datetime(transactions['date'])\n",
|
529
|
+
"combined_data = combined_data.merge(transactions, on=['date', 'store_nbr'], how='left')\n",
|
530
|
+
"combined_data['transactions'].fillna(0, inplace=True)\n",
|
531
|
+
"\n",
|
532
|
+
"# Stores data preprocessing\n",
|
533
|
+
"stores = stores.rename(columns={'city': 'store_city', 'state': 'store_state', 'type': 'store_type'})\n",
|
534
|
+
"combined_data = combined_data.merge(stores, on='store_nbr', how='left')\n",
|
535
|
+
"\n",
|
536
|
+
"# Holidays data preprocessing\n",
|
537
|
+
"def preprocess_holiday_data(holidays_data, combined_data):\n",
|
538
|
+
" holidays_data['date'] = pd.to_datetime(holidays_data['date'])\n",
|
539
|
+
" holiday_data_filtered = holidays_data[\n",
|
540
|
+
" (holidays_data['transferred'] != True) & \n",
|
541
|
+
" (holidays_data['type'] != \"Work Day\") \n",
|
542
|
+
" ].copy()\n",
|
543
|
+
"\n",
|
544
|
+
" holiday_data_filtered['is_holiday'] = np.where(\n",
|
545
|
+
" holiday_data_filtered['type'] == \"Holiday\", \"Yes\", \"No\"\n",
|
546
|
+
" )\n",
|
547
|
+
"\n",
|
548
|
+
" holiday_data_filtered['holiday_location'] = np.where(\n",
|
549
|
+
" holiday_data_filtered['type'] == \"Holiday\",\n",
|
550
|
+
" holiday_data_filtered['locale'],\n",
|
551
|
+
" \"Non-Holiday\"\n",
|
552
|
+
" )\n",
|
553
|
+
"\n",
|
554
|
+
" holiday_data_filtered['holiday_location_name'] = np.where(\n",
|
555
|
+
" holiday_data_filtered['type'] == \"Holiday\",\n",
|
556
|
+
" holiday_data_filtered['locale_name'],\n",
|
557
|
+
" \"Non-Holiday\"\n",
|
558
|
+
" )\n",
|
559
|
+
"\n",
|
560
|
+
" combined_data = combined_data.merge(\n",
|
561
|
+
" holiday_data_filtered[['date', 'is_holiday', 'holiday_location', 'holiday_location_name']],\n",
|
562
|
+
" on='date',\n",
|
563
|
+
" how='left'\n",
|
564
|
+
" )\n",
|
565
|
+
"\n",
|
566
|
+
" combined_data['is_holiday'] = combined_data['is_holiday'].fillna(\"No\")\n",
|
567
|
+
" combined_data['holiday_location'] = combined_data['holiday_location'].fillna(\"Non-Holiday\")\n",
|
568
|
+
" combined_data['holiday_location_name'] = combined_data['holiday_location_name'].fillna(\"Non-Holiday\")\n",
|
569
|
+
"\n",
|
570
|
+
" # Create a holiday indicator for the store's location.\n",
|
571
|
+
" def is_holiday_in_store_location(row):\n",
|
572
|
+
" if row['is_holiday'] == \"Yes\" and row['holiday_location'] == \"National\":\n",
|
573
|
+
" return \"Yes\"\n",
|
574
|
+
" elif row['is_holiday'] == \"Yes\" and row['holiday_location'] == \"Local\" and row['store_city'] == row['holiday_location_name']:\n",
|
575
|
+
" return \"Yes\"\n",
|
576
|
+
" elif row['is_holiday'] == \"Yes\" and row['holiday_location'] == \"Regional\" and row['store_state'] == row['holiday_location_name']:\n",
|
577
|
+
" return \"Yes\"\n",
|
578
|
+
" else:\n",
|
579
|
+
" return \"No\"\n",
|
580
|
+
"\n",
|
581
|
+
" combined_data['is_holiday_in_store_location'] = combined_data.apply(is_holiday_in_store_location, axis=1)\n",
|
582
|
+
"\n",
|
583
|
+
" combined_data['is_holiday_in_store_location'] = combined_data['is_holiday_in_store_location'].astype('category')\n",
|
584
|
+
"\n",
|
585
|
+
" # Remove unnecessary columns.\n",
|
586
|
+
" columns_to_drop = ['date', 'holiday_location', 'holiday_location_name', 'type', 'description', 'transferred', 'locale', 'locale_name', 'is_holiday']\n",
|
587
|
+
" combined_data.drop(columns=columns_to_drop, inplace=True, errors='ignore')\n",
|
588
|
+
"\n",
|
589
|
+
" return combined_data\n",
|
590
|
+
"\n",
|
591
|
+
"combined_data = preprocess_holiday_data(holidays, combined_data)\n",
|
592
|
+
"\n",
|
593
|
+
"# Scaling\n",
|
594
|
+
"numerical_features = ['onpromotion', 'oil_price', 'transactions']\n",
|
595
|
+
"scaler = MinMaxScaler()\n",
|
596
|
+
"combined_data[numerical_features] = scaler.fit_transform(combined_data[numerical_features])\n",
|
597
|
+
"\n",
|
598
|
+
"# Encode categorical features\n",
|
599
|
+
"categorical_features = ['is_holiday_in_store_location', 'store_city', 'store_state',\n",
|
600
|
+
" 'store_type', 'cluster', 'payday_flow', 'family']\n",
|
601
|
+
"for col in categorical_features:\n",
|
602
|
+
" combined_data[col] = pd.Categorical(combined_data[col]).codes\n",
|
603
|
+
"\n",
|
604
|
+
"# Split data\n",
|
605
|
+
"train = combined_data[~combined_data['sales'].isna()]\n",
|
606
|
+
"test = combined_data[combined_data['sales'].isna()]\n",
|
607
|
+
"\n",
|
608
|
+
"# Logarithmic transformation of target variable\n",
|
609
|
+
"train['sales_log'] = np.log1p(train['sales'])\n",
|
610
|
+
"\n",
|
611
|
+
"# Split into training and validation sets\n",
|
612
|
+
"X = train.drop(columns=['sales', 'sales_log', 'date']) # Exclude 'date'\n",
|
613
|
+
"y = train['sales_log']\n",
|
614
|
+
"X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)\n",
|
615
|
+
"\n",
|
616
|
+
"# Model training (CatBoost)\n",
|
617
|
+
"catboost_model = CatBoostRegressor(\n",
|
618
|
+
" iterations=1000,\n",
|
619
|
+
" learning_rate=0.1,\n",
|
620
|
+
" depth=8,\n",
|
621
|
+
" eval_metric='RMSE',\n",
|
622
|
+
" verbose=False,\n",
|
623
|
+
" random_seed=42,\n",
|
624
|
+
" l2_leaf_reg=5,\n",
|
625
|
+
" bagging_temperature=0.7\n",
|
626
|
+
")\n",
|
627
|
+
"catboost_model.fit(X_train, y_train)\n",
|
628
|
+
"\n",
|
629
|
+
"# Model training (LightGBM)\n",
|
630
|
+
"lightgbm_model = LGBMRegressor(\n",
|
631
|
+
" n_estimators=1000,\n",
|
632
|
+
" learning_rate=0.05,\n",
|
633
|
+
" max_depth=8,\n",
|
634
|
+
" random_state=42,\n",
|
635
|
+
" subsample=0.8,\n",
|
636
|
+
" reg_lambda=0.1,\n",
|
637
|
+
" reg_alpha=0,\n",
|
638
|
+
" num_leaves=100,\n",
|
639
|
+
" min_child_samples=20,\n",
|
640
|
+
" colsample_bytree=0.6,\n",
|
641
|
+
" verbose=-1\n",
|
642
|
+
")\n",
|
643
|
+
"lightgbm_model.fit(X_train, y_train)\n",
|
644
|
+
"\n",
|
645
|
+
"# Make predictions\n",
|
646
|
+
"catboost_predictions_log = catboost_model.predict(test[X_train.columns])\n",
|
647
|
+
"lightgbm_predictions_log = lightgbm_model.predict(test[X_train.columns])\n",
|
648
|
+
"\n",
|
649
|
+
"# Convert predictions back to original scale\n",
|
650
|
+
"catboost_predictions = np.expm1(catboost_predictions_log)\n",
|
651
|
+
"lightgbm_predictions = np.expm1(lightgbm_predictions_log)\n",
|
652
|
+
"\n",
|
653
|
+
"# Combine predictions\n",
|
654
|
+
"final_predictions = (catboost_predictions + lightgbm_predictions) / 2\n",
|
655
|
+
"\n",
|
656
|
+
"# Create submission file\n",
|
657
|
+
"submission = test[['id']].copy()\n",
|
658
|
+
"submission['sales'] = final_predictions\n",
|
659
|
+
"submission.to_csv('submission.csv', index=False)"
|
660
|
+
]
|
661
|
+
},
|
662
|
+
{
|
663
|
+
"cell_type": "code",
|
664
|
+
"execution_count": null,
|
665
|
+
"id": "cfd655a7-2f71-4635-a2ec-c520c2713a80",
|
666
|
+
"metadata": {},
|
667
|
+
"outputs": [],
|
668
|
+
"source": [
|
669
|
+
" "
|
670
|
+
]
|
671
|
+
},
|
672
|
+
{
|
673
|
+
"cell_type": "code",
|
674
|
+
"execution_count": null,
|
675
|
+
"id": "924e0483-3e7c-4ca3-8bd3-21b7cfd6355e",
|
676
|
+
"metadata": {},
|
677
|
+
"outputs": [],
|
678
|
+
"source": []
|
679
|
+
},
|
680
|
+
{
|
681
|
+
"cell_type": "code",
|
682
|
+
"execution_count": null,
|
683
|
+
"id": "8c591bf5-d100-4efa-87c5-e309a2197969",
|
684
|
+
"metadata": {},
|
685
|
+
"outputs": [],
|
686
|
+
"source": []
|
687
|
+
},
|
688
|
+
{
|
689
|
+
"cell_type": "code",
|
690
|
+
"execution_count": null,
|
691
|
+
"id": "65f03ab8-9ca6-442a-8d25-ca5ff6da636a",
|
692
|
+
"metadata": {},
|
693
|
+
"outputs": [],
|
694
|
+
"source": [
|
695
|
+
"\n",
|
696
|
+
"\n"
|
697
|
+
]
|
698
|
+
}
|
699
|
+
],
|
700
|
+
"metadata": {
|
701
|
+
"kernelspec": {
|
702
|
+
"display_name": "Python 3 (ipykernel)",
|
703
|
+
"language": "python",
|
704
|
+
"name": "python3"
|
705
|
+
},
|
706
|
+
"language_info": {
|
707
|
+
"codemirror_mode": {
|
708
|
+
"name": "ipython",
|
709
|
+
"version": 3
|
710
|
+
},
|
711
|
+
"file_extension": ".py",
|
712
|
+
"mimetype": "text/x-python",
|
713
|
+
"name": "python",
|
714
|
+
"nbconvert_exporter": "python",
|
715
|
+
"pygments_lexer": "ipython3",
|
716
|
+
"version": "3.11.7"
|
717
|
+
}
|
718
|
+
},
|
719
|
+
"nbformat": 4,
|
720
|
+
"nbformat_minor": 5
|
721
|
+
}
|