├── data
└── Advertising.csv
└── Lasso and Ridge Regression.ipynb
/data/Advertising.csv:
--------------------------------------------------------------------------------
1 | ,TV,radio,newspaper,sales
2 | 1,230.1,37.8,69.2,22.1
3 | 2,44.5,39.3,45.1,10.4
4 | 3,17.2,45.9,69.3,9.3
5 | 4,151.5,41.3,58.5,18.5
6 | 5,180.8,10.8,58.4,12.9
7 | 6,8.7,48.9,75,7.2
8 | 7,57.5,32.8,23.5,11.8
9 | 8,120.2,19.6,11.6,13.2
10 | 9,8.6,2.1,1,4.8
11 | 10,199.8,2.6,21.2,10.6
12 | 11,66.1,5.8,24.2,8.6
13 | 12,214.7,24,4,17.4
14 | 13,23.8,35.1,65.9,9.2
15 | 14,97.5,7.6,7.2,9.7
16 | 15,204.1,32.9,46,19
17 | 16,195.4,47.7,52.9,22.4
18 | 17,67.8,36.6,114,12.5
19 | 18,281.4,39.6,55.8,24.4
20 | 19,69.2,20.5,18.3,11.3
21 | 20,147.3,23.9,19.1,14.6
22 | 21,218.4,27.7,53.4,18
23 | 22,237.4,5.1,23.5,12.5
24 | 23,13.2,15.9,49.6,5.6
25 | 24,228.3,16.9,26.2,15.5
26 | 25,62.3,12.6,18.3,9.7
27 | 26,262.9,3.5,19.5,12
28 | 27,142.9,29.3,12.6,15
29 | 28,240.1,16.7,22.9,15.9
30 | 29,248.8,27.1,22.9,18.9
31 | 30,70.6,16,40.8,10.5
32 | 31,292.9,28.3,43.2,21.4
33 | 32,112.9,17.4,38.6,11.9
34 | 33,97.2,1.5,30,9.6
35 | 34,265.6,20,0.3,17.4
36 | 35,95.7,1.4,7.4,9.5
37 | 36,290.7,4.1,8.5,12.8
38 | 37,266.9,43.8,5,25.4
39 | 38,74.7,49.4,45.7,14.7
40 | 39,43.1,26.7,35.1,10.1
41 | 40,228,37.7,32,21.5
42 | 41,202.5,22.3,31.6,16.6
43 | 42,177,33.4,38.7,17.1
44 | 43,293.6,27.7,1.8,20.7
45 | 44,206.9,8.4,26.4,12.9
46 | 45,25.1,25.7,43.3,8.5
47 | 46,175.1,22.5,31.5,14.9
48 | 47,89.7,9.9,35.7,10.6
49 | 48,239.9,41.5,18.5,23.2
50 | 49,227.2,15.8,49.9,14.8
51 | 50,66.9,11.7,36.8,9.7
52 | 51,199.8,3.1,34.6,11.4
53 | 52,100.4,9.6,3.6,10.7
54 | 53,216.4,41.7,39.6,22.6
55 | 54,182.6,46.2,58.7,21.2
56 | 55,262.7,28.8,15.9,20.2
57 | 56,198.9,49.4,60,23.7
58 | 57,7.3,28.1,41.4,5.5
59 | 58,136.2,19.2,16.6,13.2
60 | 59,210.8,49.6,37.7,23.8
61 | 60,210.7,29.5,9.3,18.4
62 | 61,53.5,2,21.4,8.1
63 | 62,261.3,42.7,54.7,24.2
64 | 63,239.3,15.5,27.3,15.7
65 | 64,102.7,29.6,8.4,14
66 | 65,131.1,42.8,28.9,18
67 | 66,69,9.3,0.9,9.3
68 | 67,31.5,24.6,2.2,9.5
69 | 68,139.3,14.5,10.2,13.4
70 | 69,237.4,27.5,11,18.9
71 | 70,216.8,43.9,27.2,22.3
72 | 71,199.1,30.6,38.7,18.3
73 | 72,109.8,14.3,31.7,12.4
74 | 73,26.8,33,19.3,8.8
75 | 74,129.4,5.7,31.3,11
76 | 75,213.4,24.6,13.1,17
77 | 76,16.9,43.7,89.4,8.7
78 | 77,27.5,1.6,20.7,6.9
79 | 78,120.5,28.5,14.2,14.2
80 | 79,5.4,29.9,9.4,5.3
81 | 80,116,7.7,23.1,11
82 | 81,76.4,26.7,22.3,11.8
83 | 82,239.8,4.1,36.9,12.3
84 | 83,75.3,20.3,32.5,11.3
85 | 84,68.4,44.5,35.6,13.6
86 | 85,213.5,43,33.8,21.7
87 | 86,193.2,18.4,65.7,15.2
88 | 87,76.3,27.5,16,12
89 | 88,110.7,40.6,63.2,16
90 | 89,88.3,25.5,73.4,12.9
91 | 90,109.8,47.8,51.4,16.7
92 | 91,134.3,4.9,9.3,11.2
93 | 92,28.6,1.5,33,7.3
94 | 93,217.7,33.5,59,19.4
95 | 94,250.9,36.5,72.3,22.2
96 | 95,107.4,14,10.9,11.5
97 | 96,163.3,31.6,52.9,16.9
98 | 97,197.6,3.5,5.9,11.7
99 | 98,184.9,21,22,15.5
100 | 99,289.7,42.3,51.2,25.4
101 | 100,135.2,41.7,45.9,17.2
102 | 101,222.4,4.3,49.8,11.7
103 | 102,296.4,36.3,100.9,23.8
104 | 103,280.2,10.1,21.4,14.8
105 | 104,187.9,17.2,17.9,14.7
106 | 105,238.2,34.3,5.3,20.7
107 | 106,137.9,46.4,59,19.2
108 | 107,25,11,29.7,7.2
109 | 108,90.4,0.3,23.2,8.7
110 | 109,13.1,0.4,25.6,5.3
111 | 110,255.4,26.9,5.5,19.8
112 | 111,225.8,8.2,56.5,13.4
113 | 112,241.7,38,23.2,21.8
114 | 113,175.7,15.4,2.4,14.1
115 | 114,209.6,20.6,10.7,15.9
116 | 115,78.2,46.8,34.5,14.6
117 | 116,75.1,35,52.7,12.6
118 | 117,139.2,14.3,25.6,12.2
119 | 118,76.4,0.8,14.8,9.4
120 | 119,125.7,36.9,79.2,15.9
121 | 120,19.4,16,22.3,6.6
122 | 121,141.3,26.8,46.2,15.5
123 | 122,18.8,21.7,50.4,7
124 | 123,224,2.4,15.6,11.6
125 | 124,123.1,34.6,12.4,15.2
126 | 125,229.5,32.3,74.2,19.7
127 | 126,87.2,11.8,25.9,10.6
128 | 127,7.8,38.9,50.6,6.6
129 | 128,80.2,0,9.2,8.8
130 | 129,220.3,49,3.2,24.7
131 | 130,59.6,12,43.1,9.7
132 | 131,0.7,39.6,8.7,1.6
133 | 132,265.2,2.9,43,12.7
134 | 133,8.4,27.2,2.1,5.7
135 | 134,219.8,33.5,45.1,19.6
136 | 135,36.9,38.6,65.6,10.8
137 | 136,48.3,47,8.5,11.6
138 | 137,25.6,39,9.3,9.5
139 | 138,273.7,28.9,59.7,20.8
140 | 139,43,25.9,20.5,9.6
141 | 140,184.9,43.9,1.7,20.7
142 | 141,73.4,17,12.9,10.9
143 | 142,193.7,35.4,75.6,19.2
144 | 143,220.5,33.2,37.9,20.1
145 | 144,104.6,5.7,34.4,10.4
146 | 145,96.2,14.8,38.9,11.4
147 | 146,140.3,1.9,9,10.3
148 | 147,240.1,7.3,8.7,13.2
149 | 148,243.2,49,44.3,25.4
150 | 149,38,40.3,11.9,10.9
151 | 150,44.7,25.8,20.6,10.1
152 | 151,280.7,13.9,37,16.1
153 | 152,121,8.4,48.7,11.6
154 | 153,197.6,23.3,14.2,16.6
155 | 154,171.3,39.7,37.7,19
156 | 155,187.8,21.1,9.5,15.6
157 | 156,4.1,11.6,5.7,3.2
158 | 157,93.9,43.5,50.5,15.3
159 | 158,149.8,1.3,24.3,10.1
160 | 159,11.7,36.9,45.2,7.3
161 | 160,131.7,18.4,34.6,12.9
162 | 161,172.5,18.1,30.7,14.4
163 | 162,85.7,35.8,49.3,13.3
164 | 163,188.4,18.1,25.6,14.9
165 | 164,163.5,36.8,7.4,18
166 | 165,117.2,14.7,5.4,11.9
167 | 166,234.5,3.4,84.8,11.9
168 | 167,17.9,37.6,21.6,8
169 | 168,206.8,5.2,19.4,12.2
170 | 169,215.4,23.6,57.6,17.1
171 | 170,284.3,10.6,6.4,15
172 | 171,50,11.6,18.4,8.4
173 | 172,164.5,20.9,47.4,14.5
174 | 173,19.6,20.1,17,7.6
175 | 174,168.4,7.1,12.8,11.7
176 | 175,222.4,3.4,13.1,11.5
177 | 176,276.9,48.9,41.8,27
178 | 177,248.4,30.2,20.3,20.2
179 | 178,170.2,7.8,35.2,11.7
180 | 179,276.7,2.3,23.7,11.8
181 | 180,165.6,10,17.6,12.6
182 | 181,156.6,2.6,8.3,10.5
183 | 182,218.5,5.4,27.4,12.2
184 | 183,56.2,5.7,29.7,8.7
185 | 184,287.6,43,71.8,26.2
186 | 185,253.8,21.3,30,17.6
187 | 186,205,45.1,19.6,22.6
188 | 187,139.5,2.1,26.6,10.3
189 | 188,191.1,28.7,18.2,17.3
190 | 189,286,13.9,3.7,15.9
191 | 190,18.7,12.1,23.4,6.7
192 | 191,39.5,41.1,5.8,10.8
193 | 192,75.5,10.8,6,9.9
194 | 193,17.2,4.1,31.6,5.9
195 | 194,166.8,42,3.6,19.6
196 | 195,149.7,35.6,6,17.3
197 | 196,38.2,3.7,13.8,7.6
198 | 197,94.2,4.9,8.1,9.7
199 | 198,177,9.3,6.4,12.8
200 | 199,283.6,42,66.2,25.5
201 | 200,232.1,8.6,8.7,13.4
202 |
--------------------------------------------------------------------------------
/Lasso and Ridge Regression.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Ridge Regression and Lasso\n",
8 | "\n",
9 | "This notebook explores ridge regression and lasso. These alternative linear fitting techniques can improve a model's performance and interpretability."
10 | ]
11 | },
12 | {
13 | "cell_type": "markdown",
14 | "metadata": {},
15 | "source": [
16 | "## Import libraries "
17 | ]
18 | },
19 | {
20 | "cell_type": "code",
21 | "execution_count": 1,
22 | "metadata": {},
23 | "outputs": [],
24 | "source": [
25 | "import pandas as pd\n",
26 | "import numpy as np\n",
27 | "import matplotlib.pyplot as plt\n",
28 | "\n",
29 | "%matplotlib inline"
30 | ]
31 | },
32 | {
33 | "cell_type": "markdown",
34 | "metadata": {},
35 | "source": [
36 | "## Exploratory Data Analysis "
37 | ]
38 | },
39 | {
40 | "cell_type": "code",
41 | "execution_count": 2,
42 | "metadata": {},
43 | "outputs": [
44 | {
45 | "data": {
46 | "text/html": [
47 | "
\n",
48 | "\n",
61 | "
\n",
62 | " \n",
63 | " \n",
64 | " | \n",
65 | " Unnamed: 0 | \n",
66 | " TV | \n",
67 | " radio | \n",
68 | " newspaper | \n",
69 | " sales | \n",
70 | "
\n",
71 | " \n",
72 | " \n",
73 | " \n",
74 | " | 0 | \n",
75 | " 1 | \n",
76 | " 230.1 | \n",
77 | " 37.8 | \n",
78 | " 69.2 | \n",
79 | " 22.1 | \n",
80 | "
\n",
81 | " \n",
82 | " | 1 | \n",
83 | " 2 | \n",
84 | " 44.5 | \n",
85 | " 39.3 | \n",
86 | " 45.1 | \n",
87 | " 10.4 | \n",
88 | "
\n",
89 | " \n",
90 | " | 2 | \n",
91 | " 3 | \n",
92 | " 17.2 | \n",
93 | " 45.9 | \n",
94 | " 69.3 | \n",
95 | " 9.3 | \n",
96 | "
\n",
97 | " \n",
98 | " | 3 | \n",
99 | " 4 | \n",
100 | " 151.5 | \n",
101 | " 41.3 | \n",
102 | " 58.5 | \n",
103 | " 18.5 | \n",
104 | "
\n",
105 | " \n",
106 | " | 4 | \n",
107 | " 5 | \n",
108 | " 180.8 | \n",
109 | " 10.8 | \n",
110 | " 58.4 | \n",
111 | " 12.9 | \n",
112 | "
\n",
113 | " \n",
114 | "
\n",
115 | "
"
116 | ],
117 | "text/plain": [
118 | " Unnamed: 0 TV radio newspaper sales\n",
119 | "0 1 230.1 37.8 69.2 22.1\n",
120 | "1 2 44.5 39.3 45.1 10.4\n",
121 | "2 3 17.2 45.9 69.3 9.3\n",
122 | "3 4 151.5 41.3 58.5 18.5\n",
123 | "4 5 180.8 10.8 58.4 12.9"
124 | ]
125 | },
126 | "execution_count": 2,
127 | "metadata": {},
128 | "output_type": "execute_result"
129 | }
130 | ],
131 | "source": [
132 | "DATAPATH = 'data/Advertising.csv'\n",
133 | "\n",
134 | "data = pd.read_csv(DATAPATH)\n",
135 | "data.head()"
136 | ]
137 | },
138 | {
139 | "cell_type": "code",
140 | "execution_count": 3,
141 | "metadata": {},
142 | "outputs": [],
143 | "source": [
144 | "data.drop(['Unnamed: 0'], axis=1, inplace=True)"
145 | ]
146 | },
147 | {
148 | "cell_type": "code",
149 | "execution_count": 4,
150 | "metadata": {},
151 | "outputs": [
152 | {
153 | "data": {
154 | "text/html": [
155 | "\n",
156 | "\n",
169 | "
\n",
170 | " \n",
171 | " \n",
172 | " | \n",
173 | " TV | \n",
174 | " radio | \n",
175 | " newspaper | \n",
176 | " sales | \n",
177 | "
\n",
178 | " \n",
179 | " \n",
180 | " \n",
181 | " | 0 | \n",
182 | " 230.1 | \n",
183 | " 37.8 | \n",
184 | " 69.2 | \n",
185 | " 22.1 | \n",
186 | "
\n",
187 | " \n",
188 | " | 1 | \n",
189 | " 44.5 | \n",
190 | " 39.3 | \n",
191 | " 45.1 | \n",
192 | " 10.4 | \n",
193 | "
\n",
194 | " \n",
195 | " | 2 | \n",
196 | " 17.2 | \n",
197 | " 45.9 | \n",
198 | " 69.3 | \n",
199 | " 9.3 | \n",
200 | "
\n",
201 | " \n",
202 | " | 3 | \n",
203 | " 151.5 | \n",
204 | " 41.3 | \n",
205 | " 58.5 | \n",
206 | " 18.5 | \n",
207 | "
\n",
208 | " \n",
209 | " | 4 | \n",
210 | " 180.8 | \n",
211 | " 10.8 | \n",
212 | " 58.4 | \n",
213 | " 12.9 | \n",
214 | "
\n",
215 | " \n",
216 | "
\n",
217 | "
"
218 | ],
219 | "text/plain": [
220 | " TV radio newspaper sales\n",
221 | "0 230.1 37.8 69.2 22.1\n",
222 | "1 44.5 39.3 45.1 10.4\n",
223 | "2 17.2 45.9 69.3 9.3\n",
224 | "3 151.5 41.3 58.5 18.5\n",
225 | "4 180.8 10.8 58.4 12.9"
226 | ]
227 | },
228 | "execution_count": 4,
229 | "metadata": {},
230 | "output_type": "execute_result"
231 | }
232 | ],
233 | "source": [
234 | "data.head()"
235 | ]
236 | },
237 | {
238 | "cell_type": "code",
239 | "execution_count": 5,
240 | "metadata": {},
241 | "outputs": [
242 | {
243 | "data": {
244 | "text/plain": [
245 | "Index(['TV', 'radio', 'newspaper', 'sales'], dtype='object')"
246 | ]
247 | },
248 | "execution_count": 5,
249 | "metadata": {},
250 | "output_type": "execute_result"
251 | }
252 | ],
253 | "source": [
254 | "data.columns"
255 | ]
256 | },
257 | {
258 | "cell_type": "code",
259 | "execution_count": 6,
260 | "metadata": {},
261 | "outputs": [],
262 | "source": [
263 | "def scatter_plot(feature, target):\n",
264 | " plt.figure(figsize=(16, 8))\n",
265 | " plt.scatter(\n",
266 | " data[feature],\n",
267 | " data[target],\n",
268 | " c='black'\n",
269 | " )\n",
270 | " plt.xlabel(\"Money spent on {} ads ($)\".format(feature))\n",
271 | " plt.ylabel(\"Sales ($k)\")\n",
272 | " plt.show()"
273 | ]
274 | },
275 | {
276 | "cell_type": "code",
277 | "execution_count": 7,
278 | "metadata": {},
279 | "outputs": [
280 | {
281 | "data": {
282 | "image/png": "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\n",
283 | "text/plain": [
284 | ""
285 | ]
286 | },
287 | "metadata": {},
288 | "output_type": "display_data"
289 | }
290 | ],
291 | "source": [
292 | "scatter_plot('TV', 'sales')"
293 | ]
294 | },
295 | {
296 | "cell_type": "code",
297 | "execution_count": 8,
298 | "metadata": {},
299 | "outputs": [
300 | {
301 | "data": {
302 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7AAAAHjCAYAAAAaOPOyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xu0LHld3/3Pt8/lweY++wxkBLr6IWKU6+DZEAVDAB98CBIgESWkxYOoLcTEwZgVkYrh4mpFUXSMktjKyOBuUZ4HERaOERY4GSVxdM8wwkS8hdXdKhNmzjnAADtBmP7mj+4+03uf7t23uv2q3q+1ep2za1f3/u2q2lX1rd/39/2ZuwsAAAAAgKKr5d0AAAAAAABWQQALAAAAAAgCASwAAAAAIAgEsAAAAACAIBDAAgAAAACCQAALAAAAAAgCASwAAAAAIAgEsAAAAACAIBDAAgAAAACCcDLvBqzizJkz3mw2824GAAAAACAFt9xyy3l3v3LZekEEsM1mU/v7+3k3AwAAAACQAjMbrLIeKcQAAAAAgCAQwAIAAAAAgkAACwAAAAAIAgEsAAAAACAIBLAAAAAAgCAQwAIAAAAAgkAACwAAAAAIAgEsAAAAACAIBLAAAAAAgCAQwAIAAAAAgkAACwAAAAAIAgEsAAAAACAIBLAAAAAAgCAQwAIAAAAAgkAACwAAAAAIAgEsAAAAAASi1+up2WyqVqup2Wyq1+vl3aRMncy7AQAAAACA5Xq9ntrttg4ODiRJg8FA7XZbktRqtfJsWmbogQUAAACAAMRxfCl4nTo4OFAcxzm1KHsEsAAAAAAQgOFwuNbyMiKABQAAAIAANBqNtZaXEQEsAAAAAASg0+moXq8fWlav19XpdHJqUfYIYAEAAAAgAK1WS91uV1EUycwURZG63W5lCjhJkrl73m1Yand31/f39/NuBgAAAAAgBWZ2i7vvLluPHlgAAAAAQBAIYAEAAAAAQSCABQAAAAAEgQAWAAAAABAEAlgAAAAAK+n1emo2m6rVamo2m+r1enk3CRVzMu8GAAAAACi+Xq+ndrutg4MDSdJgMFC73ZakSk3jgnzRAwsAAABgqTiOLwWvUwcHB4rjOKcWoYoIYAEAAAAsNRwO11oOpIEAFgAAAMBSjUZjreVAGghgAQAAACzV6XRUr9cPLavX6+p0Ojm1CFVEAAsAAABgqVarpW63qyiKZGaKokjdbpcCTsiUuXvebVhqd3fX9/f3824GAAAAACAFZnaLu+8uW48eWAAAAABAEAhgAQAAAABBIIAFAAAAAASBABYAAACoiF6vp2azqVqtpmazqV6vl3eTgLWczLsBAAAAANLX6/XUbrd1cHAgSRoMBmq325JEJWEEgx5YAAAAoALiOL4UvE4dHBzommuuSbVXll7f5FV5m9IDCwAAAFTAcDicu/zChQu6cOGCpOR7Zen1TV7VtynzwAIAAAAV0Gw2NRgMVlo3iiL1+/3UfmZSn19FZd2mzAMLAAAA4JJOp6N6vb7Suot6a9e16HOS+vwqqvo2JYAFAAAAKqDVaqnb7SqKIpmZoijSzs7O3HUbjUYiP3PR5yT1+VVU9W1KAAsAAABURKvVUr/f12g0Ur/f17XXXntZr2y9Xlen00nk583r9U3y86uo6ts0tQDWzB5hZr9rZh8zs/9uZtdMlr/WzP7GzG6bvJ6TVhsAAAAALDavV7bb7SZWDCjtz6+iqm/T1Io4mdlVkq5y91vN7P6SbpH0AknfKulz7v6Tq34WRZwAAAAAoLxWLeKU2jQ67n6HpDsm//+smX1M0sPS+nkAAAAAgHLLZAysmTUlPVHSzZNF/9LMPmJm15nZgxe8p21m+2a2f9ddd2XRTAAAAABAgaUewJrZ/SS9U9Ir3f1uSf9R0t+VdLXGPbQ/Ne997t519113373yyivTbiYAAAAAoOBSDWDN7JTGwWvP3X9Dktz9k+5+j7uPJP2ipCen2QYAAAAAKJNer6dms6laraZms6ler5d3kzKT2hhYMzNJb5H0MXd/08zyqybjYyXpn0i6Pa02AAAAAECZ9Ho9tdttHRwcSJIGg4Ha7bYkVaIScZpViL9e0u9J+qik0WTxqyW9WOP0YZfUl/Q9MwHtXFQhBgAAAACp2WxqMBhctjyKIvX7/ewblJAiVCH+fUk251s3pPUzAQAAAKDMhsPhWsvLJpMqxAAAAEAVVHlsIrLRaDTWWl42BLAAAABAAqZjEweDgdz90thEglgkqdPpqF6vH1pWr9fV6XRyalG2CGABAACABMRxfKmwztTBwYHiOM6pRSijVqulbrerKIpkZoqiSN1utxIFnCQCWAAAACARZRubSDp0cbVaLfX7fY1GI/X7/coErxIBLAAAAJCIMo1NJB0aRUUACwAAACSgTGMTSYdGURHAAgAAAAko09jEsqVDozzM3fNuw1K7u7u+v7+fdzMAAACASmg2mxoMBpctj6JI/X4/+wah9MzsFnffXbYePbAAAAAADilTOjTKhQAWAAAAwCFlSodGuRDAAgAAIBdM01JsVZ6qpSzK+Dd2Mu8GAAAAoHqm07RMK91Op2mRRKAEbKHX6ymOYw0GA5mZpjWPyvI3RhEnAAAAZI4iQUDyjj4Ymqeof2OrFnEigAUAAEDmarWa5t2HmplGo1EOLQLCt+jB0Kyi/o1RhRgAAACF1Wg01loOYLlV5ukN/W+MABYAAACZY5oWIHnLgtMy/I0RwAIAACBzTNMCJG/egyEzk6TS/I0xBhYAAAAASmJahXg4HKrRaKjT6QQRtFLECQAAAAAQBIo4AQAAABXT6/XUbDZVq9XUbDbV6/XybhKQqJN5NwAAAADA9o7OAToYDNRutyUpiBRSYBX0wAIAAAAlEMfxpeB16uDgQHEc59QiIHkEsAAAAEAJLJoDdJW5QYFQEMACAAAAJbBoDtBlc4MCISGABQAAAEpg3hyg9XpdnU4npxYBySOABQAAAEqg1Wqp2+0qiiKZmaIoUrfbpYATSoV5YAEAAAAAuWIeWAAAAABAqRDAAgAAACXU6/XUbDZVq9XUbDbV6/XyblJiyvy74Xgn824AAAAAgGT1ej212+1L88IOBgO1221JCn5MbJl/NyzHGFgAAACgZJrNpgaDwWXLoyhSv9/PvkEJKvPvVmWMgQUAAAAqajgcrrU8JKH9bqQ7J4sAFgAAACiZRqOx1vKQhPS7TdOdB4OB3P1SujNB7OYIYAEAAICS6XQ6qtfrh5bV63V1Op2cWpRcT2QRf7dF4ji+NFZ36uDgQHEc59Si8BHAAgAAIHekWSar1Wqp2+0qiiKZmaIoUrfbza3IUZI9kUX73Y4TWrpzCCjiBAAAgFwdrSorjXvUihqUYH1VLbxU1d97ExRxAgAAQBDSSrOkV7c4qtoTGVK6cygIYAEAAJCrNIIbiucUS0iFl5IUUrpzKEghBgAAQK7SSLMkdbNYSBPHMqQQAwAAIAhppFlWNWW1qOiJRFLogQUAAEDuer2e4jjWcDhUo9FQp9PZKrihBxYICz2wAAAACEar1VK/39doNFK/39+6Z25er66ZaTAYUNAJCBgBLAAAAEpnNmVVGgev08xDCjptjsrOyBspxAAAACg10omTQSEmpGnVFGICWAAAAJRarVbTvHteM9NoNMqhRWHiQQDSxBhYAAAAVNLRNNcrrrhi7npln4M0aVR2RhEQwAIAAKA0pmmug8FA7q7BYKC7775bp0+fPrTettP0VNGigJ8HAcgSASwAAMgURWCQpjiOD43RlKQvfvGLuv/9788cpFtKY75eYF0n824AAACojqNFYKbVYCURTCARi9JZL168qPPnz2fcmnKZ/o0mOV8vsC6KOAEAgMxQBAZp4xgDwkQRJwAAUDgUgUHaSHPFOhjSEB4CWAAAkBmKwCBtrVZL3W6X8a5Yal7Br3a7TRBbcKQQAwCAzBwdAyuNe8cIMABkjXTzYiGFGAAAFA69YwCKgiENYaIHFgAAAEDl0ANbLPTAAgAAAMACFPwKEwEsAAAoHCqDAkgbQxrCRAoxAAAoFAo9AUD1kEIMAAAylVSvaRzHh4JXSTo4OFAcx0k0ExP0ciNrHHNIwsm8GwAAAMJ3tNd0Op+ipLV7TakMmr4k9xewCo45JIUUYgAAsLUkq3lSGTR9bGNkjWMOy5BCDAAAMpNkrymVQdNHLzeyxjGHpBDAAgCArTUajbWWH4fKoOlLcn8Bq+CYQ1IIYAEAwNaS7jVttVrq9/sajUbq9/sErwmjlxtZ45hDUghgAQDA1ug1DQv7C1njmENSKOIEAAAAAMgVRZwAAECQ0pwrknkoASBsBLAAAKAwpnNFDgYDufuluSKTCDTT/OwsEYQDqLLUUojN7BGS3ibp70gaSeq6+7VmdoWkX5fUlNSX9K3u/qnjPosUYgAAqiHNuSLLMA/lNAg/ODi4tKxerzOWEEDwVk0hTjOAvUrSVe5+q5ndX9Itkl4g6aWSLrr7G8zsVZIe7O4/eNxnEcACAFANtVpN8+5NzEyj0aiwn52VMgThADBP7mNg3f0Od7918v/PSvqYpIdJer6k6yerXa9xUAsAAJDqXJFlmIdyOByutRwAyiaTMbBm1pT0REk3S3qou98hjYNcSQ/Jog0AAKD40pwrsgzzUJYhCAeAbaQewJrZ/SS9U9Ir3f3uNd7XNrN9M9u/66670msgAAC4TF6FgtKcK7IM81CWIQgHgG2kOg+smZ2S9F5Jv+Pub5os+zNJT3f3OybjZG9097933OcwBhYAgOxQKCh9vV5PcRxrOByq0Wio0+msvG23eS8AFFURijiZxmNcL7r7K2eWv1HShZkiTle4+7897rMIYAEAyA6FgtLFAwIAuFzuRZwkPVXSSyQ908xum7yeI+kNkp5lZn8h6VmTrwEAQEFQKChdcRwfCl4l6eDgQHEcb/yZzA2LVXGsIHQn0/pgd/99Sbbg29+Q1s8FAADbaTQac3tgKRSUjKQfEBzt0R0MBmq325JEjy4O4VhBGWRShRgAAISDQkHpSrqScBo9uignjhWUAQEsAAA4pAzVeoss6QcEpHxjVRwrKAMCWAAAcJlWq6V+v6/RaKR+v0/wmqCkHxBcccUVay1HdTGPMMqAABYAACBjPCBAHhgegDIggAUAAAjYxYsX11qeNKrahoPhActxPBdfavPAJol5YAEAAObLc95e5rRFmXA856sI88ACAAAgZXmmhVLVFmXC8RwGAlgAAICCWiWdMc+0UKraLkYqang4nsNACjEAAEABhZDOmGf6cpGFsO9wOY7nfJFCDAAAEnFcTxK9TOkJIZ2RqrbzhbDvcDmO5zDQAwsAABY6ridJEr1MKarVapp3n2ZmGo1GObRovl6vpziONRwO1Wg01Ol0Kr//Q9l3uBzHc35W7YElgAUAAAsdl1IniXS7FJHOGC72HbA+UogBAMDWjitqQsGTdJHOGC72HZAeAlgAALBQo9FYuPy472F7eVYXxnbYd0B6SCEGAAALMQYWAJAFUogBAMDWjutJopcJyB+VwFE19MACAAAAAWK+WZQJPbAAAKD06H1ClTHfLKqIABYAAARp2vs0GAzk7hoMBmq32xsFsQTCCBGVwFFFBLAAACBISfU+JRkIA1miEjiqiAAWAAAEKaneJ9IwESrmm0UVEcACAIAgJdX7RBomQkUlcFQRASwAAAhSUr1PpGEiZK1WS/1+X6PRSP1+n+AVpUcACwAAEpF1IaSkep9IwywuimsVA/sBRcI8sAAAYGuhz0fZ6/UUx7GGw6EajYY6nU4Q7S6z0I+psmA/ICurzgNLAAsAALbWbDY1GAwuWx5Fkfr9fvYNQvA4poqB/YCsEMACAIDM1Go1zbunMDONRqMcWoTQcUwVA/sBWVk1gGUMLAAA2BqFkJA0jqliYD+gaAhgAQDA1iiEhKRxTBUD+wFFQwALAAgCVTCLjfkokTSOqWJgP6BoGAMLACg8qmACAFBujIEFAJRGHMeHgldJOjg4UBzHObUIAADkgQAWAJC4pNN9h8PhWsuLgJRnAACSdzLvBgAAyuVouu9gMFC73ZakjdN9G43G3HkIi1oFM41tAAAA6IEFACQsjXTf0KpgkvK8GXqtw8c+BJA2AlgAQKLSSPcNrQpmiCnPeZv2Wg8GA7n7pV5rAqBwsA+LhwcKKCOqEAMAEtVsNuem+0ZRpH6/n32DcsA2WB/bLHzsw2KhejtCQxViAEAuQkv33da8Ho6qbYMk0Gu9mSL1sLEPi4WhDCgrAlgAQKJCS/fdxqKUSUkrb4MiBSB5WlSQq6iFuoqgaCm77MNi4YECyooUYgAANrRtyiQpfvdiW6yvaCm77MNiKdrxASxDCjEAACnbtoeDFL97laHnPuve9KL1sJVhH5YJQxlQVvTAAgCwoW17OGq1muZdh81Mo9EoiSYiI3n0PtLDhmV6vZ7iONZwOFSj0VCn0+GBAgqLHlgAAFK2bQ8HYwbLI4/edHrYsEyr1VK/39doNFK/3yd4RSkQwAIAsKFtUyYJQMojj3ReUnaBsFC0LxmkEAMAkCNS/MqBdF4Ax6HI2XKkEAMAMCOJJ99pPD0nxa8c6E0HcByK9iXnZN4NAAAgbUeffM/O17pqwJjEZ6C8pscAvekA5ila1fCQkUIMACi9JNI7SREFAGyKa8hypBADADCRxJNvnp4DADbFMIPkEMACAEovielqmPIGALApqoYnhwAWAFB6STz55uk5AGAbFO1LBgEsAKD0knjyzdNzAADyRxEnAKXAXJoAAADhWrWIE9PoAAge05sAAABUAynEAILH5OAAgDLp9XpqNpuq1WpqNpvq9Xp5NwkoDAJYAMELeXqTqt+kVP33B7Bc1c4T06yiwWAgd7+UVVT23xtYFWNgAQTvzJkzunDhwmXLd3Z2dP78+RxatJqjqc/SuKptVQoDVf33B7BcFc8TzWZTg8HgsuVRFKnf72ffICAjq46BJYAFELxQA9iq36RU/fcHsFwVzxO1Wk3z7s/NTKPRKIcWAdlYNYAlhRhA8C5evLjW8qIIOfU5CVX//QEsV8XzRKPRWGs5UDUEsACCl+XFPsmxWFW/San67w9guSqeJzqdjur1+qFl9XpdnU4npxYBxUIACyB4WV3sky6sUfWblFV+/6oVbwFwWBXPk61WS91uV1EUycwURVGpx/wCa3P3Y1+Svk7Sz0v6iKS7JA0l3SDpeyU9cNn7k3idPXvWAeA4e3t7HkWRm5lHUeR7e3uJ/4woilzSZa8oijb+zCzaXWTH/f57e3ter9cPbet6vV65bQRUXdXPk0BVSNr3FWLDY4s4mdlvS/qEpHdL2pd0p6T7SPpKSc+Q9I8lvcnd35N0YD2LIk4AiiDtwhq9Xk9xHGs4HKrRaKjT6VT2iXuv19O5c+d0zz33XPa9MhdvKQKOQwBAHlYt4nRyyfdf4u5HS3h+TtKtk9dPmdmZDdsIAEFpNBpzq2EmMRbr6FQR0/RkSZULHqbbYl7wKpW7eEveOA4BAEV37BjYafBqZv/o6PfM7OWz6wBA2aU5FiuO40PzHErSwcGB4jje+rNDM29bzCpz8Za8cRwCAIpu1SJOP2xmz5x+YWY/KOn56TQJAIopzcIaVZwqYpHjfueyF2/JG8chgG1RfA9pWzWAfZ6kHzWzf2BmHUlPniwDgEpptVrq9/sajUbq9/uJpVVmNVVECDcWi37nEydOUIkzZVWcsgSHhXCOQHElXa0fmGelAHaSJvw8jasRf7mkF7r7F9NsGABUSRZTRYRyY7FoW1x//fUErymr4pQluFco5wgUF8MQkIVlVYg/q/HUBVOnJX1psszd/QHpNm+MKsQAqiDt6q/NZnNuEaoiVvWlEm5+2PbVFdI5AsWUdrV+lNuqVYiPDWC3bMB1kp4r6U53f+xk2WslfbfG88lK0qvd/YZln0UACySHm9Pq4sYCZcF5LB2cI7AtHoJgG6sGsKuOgZ394IaZfdUKq75V0rPnLP9pd7968loavAJIDulh1cb4RpQB57H0cI7AthiGgCwsDWDN7MfM7NGT/3+zpN+T9Otm9qPHvc/db5J0MZFWAkgEY1Oq5Wgxluc85zncWMygWE2YOI+lh+AD20qzWj8wtTSF2Mxuc/erJ///fUnfKekvJd3q7k9Y8t6mpPceSSF+qaS7Je1L+gF3/9SC97YltSWp0WicnZeOAGA9pIdVx7SXavZGv16v69y5c7rhhhsqn3q5aPtwo1V8nMfSRXo2gLwkkkJsZq+RdJWZvc7MfkzS35X0Ikn/TtIDzezfm9nT1mjXf5x8xtWS7pD0U4tWdPeuu++6++6VV165xo8Aqu24XiXSw9JRxJ68Rb1UN9xwQyrTAIWGXrxwcR5LV1pThQFAUo4NYN39dZJulBRJeoykt7n76yX9mKS/cffXT1KFV+Lun3T3e9x9JOkXNZ5PFkBClo0NIz0seWmPx9s0OB4Oh2strxq2T7g4jwHA8Yr4YD1R7n7sS9J9Jb1C49ThU5NlXyHpuSu8tynp9pmvr5r5//dL+rVln+HuOnv2rANYLooi12Saq9lXFEWX1tnb2/MoitzMPIoi39vby6/BJbDKNt/U3t6e1+v1Q59br9dX2mdptqsM2D5h4zwGAPNtc++QN0n7vkJsmOY0Om+X9HRJZyR9UtJrJl9fPdmYfUnf4+53LPssptEBVsPYsOyluc23mY6AMZ7HS3v7MI4QAMollPN6yFMZJTUGtmtmj1vwvfua2cvMbO6ec/cXu/tV7n7K3R/u7m9x95e4++Pc/fHu/rxVglcAq2NsWPbS3ObbpLmGXAkyi9SnNLcP07wAQLmEdF6vwhCZY3tgzexqSa+W9DhJt0u6S9J9JD1K0gMkXSfpP7n7F9JsJD2wwGrodctemts85KeomyrDMVzF/QYAZRbSeT2kth6VSA+su9/m7t8q6UmSfl7jOWDfI+m73P0J7n5t2sErgNWF3OsWqjS3+bbFakIs4lCG6sBVePoNAFUS0nm9CoXuUhsDmyR6YAFU1aZjbkLtySzDOO6Qn34DAC4X2nk9lPG6R63aA0sACwAlFNrFdirUds8K9eEBAGA+zuvZSCSFGAAQppDSnWaVIfWJVP71hJjqDqBaOK8Xy9o9sGZWk3Q/d787nSZdjh5YAEUQUkpOyD2ZIW1nbIdeDQDAVKIpxGb2q5JeLukeSbdIeqCkN7n7G7dt6CoIYAHkLbQb7dDai2oK+UELACBZSacQP3rS4/oCSTdIakh6yRbtA4CghFYdl3QnhCDJVHdSkQGgGk6uuN4pMzulcQD7c+7+RTMrfvUnAEhIiGNKW60WASsKrdFozO2BbTQaa33O0YyDwWCgdrstSfwNAEDJrNoD+wuS+pLuK+kmM4skZTYGFgDytuiGet0bbQD3SqpoV2gZEgCAza0UwLr7z7r7w9z9OT42kPSMlNsGAIVRhuq4QNEkleoeYoYEAGAzKwWwZvZQM3uLmf325OtHSzqXassAoEAYUwqko9Vqqd/vazQaqd/vb/Q3RYYEAFTHqinEb5X0O5K+fPL1n0t6ZRoNAoCiSuJGG0DyyJAAgOpYNYA94+7vkDSSJHf/ksZT6gAAAOSKDAmgXKgqjuOsWoX482a2I8klycy+VtJnUmsVAADAGqi6DZQDVcWxjLkvnw3HzL5G0n+Q9FhJt0u6UtIL3f0j6TZvbHd31/f397P4UQAAAABy0mw2506vFUWR+v1+9g1CZszsFnffXbbeqlWIb5X0DyU9RdL3SHpMVsErEKJFqS+kxOSPfQAAQHFRVRzLHJtCbGb/dMG3vtLM5O6/kUKbgKAtSn350Ic+pOuvv56UmByRlgQAQLE1Go25PbBUFcfUsSnEZvbLx7zX3f1lyTfpcqQQIySLUl9OnDihe+65vPYZKTHZIS0JALLT6/UUx7GGw6EajYY6nQ4PC7HU0YfN0riqOIXZyi+RFGJ3/45jXpkEr0BeNk01XZTiMi94PW59JI+0pM2QEg9gXdMgZDAYyN0vZbxwnsAyVBXHMisVcZIkM/smSY+RdJ/pMnd/fUrtOoQeWGRtm6d/9MAWFz2w61v0t3Du3LlDKfHT5dxkAJA43wJYX6JFnMzsP0l6kaR/JckkfYukaKsWAgUWx/GhG3NJOjg4UBzHS9/b6XRUr9cPLavX62q323OXdzqd7RuMlSzaN+yDxRb9LXS73Y3/RgCUHxkvANKyUgAr6Snu/u2SPuXur5P0dZIekV6zgHxtc+FdlPry5je/mZSYnJGWtD5S4gFsYlHBHQrxANjWqvPA3uzuf9/M/kDSP5V0QdLt7v6otBsokUKM7JH6BIyREg9gExTiAbCuRFOIJb3XzB4k6Y2SbpXUl/T2zZsHFFuSqaZFLnRT5LYhHevuc1Lii42/YRQVGS8AUuPua70k/V+SHrju+7Z5nT171oGs7e3teRRFbmYeRZHv7e1t9Bn1et0lXXrV6/WNPitpRW4b0rHpPl/0t5DE3wg2x98wAKBMJO37CrHhsnlgnyTpr9z9f06+/nZJ3yxpIOm17n4xlaj6CFKIw8B8b5fbNhU5zW1KmnT1sM/Lhf0JACiTpFKIf0HS304+8GmS3iDpbZI+I6m7bSORryRTz5jvbb5tikGlvU2pEFk97PNyYX8CAKpoWQB7YqaX9UWSuu7+Tnf/YUlfkW7TkKakg6Ntpp0ps22qMKa9TakQWT3s83JhfwIAqmhpAGtmJyf//wZJH5z53sk56yMQSQdH9ATMt00xqHW3aVLFeSjCU17s83JhfyJLFAwDUBjHDZCVFEv6kKR3S/qw7p125yskfWiVQbZJvCjilDwzO1T4Y/oys40+L4qiuZ8XRdHKn1HWgjCb/l7rbNOki/OgvNjn5cL+RBayLBjGMQ1Ul5Io4iRJZva1kq6S9D53//xk2VdKup+735pADL0URZySl3Txj23ne2O+uMuts00o5gIASEtW1xjuBYBqS2weWHf/A3d/1zR4nSz786yCV6Qj6dSzbed7Ywzt5dbZpqRwH4/UNwDYXFbXGO4FAKxiaQCLciraBOMEYPO1Wi31+32NRiP1+/2F+4diLotRIRsAtpPVNYZ7AQCrIICtsFWDo1VsGyQQgG2HYi67hgyqAAAfEUlEQVSL8UQfALaT1TWGewEAqyCARSK2DRLmXRwl6fz58zpz5gypn0sUrUe9SHiiDwDbyeoaw8NYAKtYWsSpCCjiVHy1Wk3zjiUz02g0Wukzer2errnmGl24cGHhOhRzwLrOnDkz95ja2dnR+fPnc2gRAGCRXq+nOI41HA7VaDTU6XS45gMVsWoRJwJYJCKpCoWLPmebz0S1EcACAAAUX2JViIFVKrgmlfazSlonqZ9Yx8WLF9daDmA9VPkGAGSJABbHWrU4U1LjY1Yp1EAxB6yDoiBAeqjyDQDIGgEsFur1ejp37tzKxZmSqGq8qJjTFMUcsK7jsgNC6zkKrb0oP6p8AwCyRgBbQknc5E6fqt9zzz1zv59WGu/RntydnR3t7OxQWRcbW5QdICmoniN6upC2Ta4dVPlODw+sAGA+ijiVzPQmd/aJ+CaVe5cVU6KQEkKXVOGxrITWXoRl02sHx2U6krqWA0BIKOJUUUmlcx339PzUqVNL03hDfXK8TrtD/R0xFlrPUWjtRVg2vXYwb2c6SM0GgMUIYEtm0c3sYDBYK8A6rsCNmR373lBTHddp97rrEugWT2jFnUJrL8Ky6QOSpAr44TAeWAHFx/1djty98K+zZ886VhNFkUua+6rX6763t7fS5+zt7Xm9Xl/4WVEUrd2G495TBOu0e9V1523HdfYD0hPavgmtvQhLqOftsmJ/AMXGNTkdkvZ9hdgw9+B0lRcB7Oq2CTyPesUrXrHwc8xs4fvMbO33FME67V51XW5Csre3t+dRFLmZeRRFx15M1lm3CEJrL8LBzVixsD+AYuP+Lh0EsBW2t7e3duB59Mb4Fa94BT2wCfTAhhrMh2rTmz4CQ4C/g6JhfwDFxf1dOghgK26dYGzeTf+iP8xVAoJQnxyv0+5V1w01mA/VJts71OMVAADkg/u7dBDAVtw6N+XHjZud91rlxj7UJ8dJp58SHGVrkyeiXISyM/s3s7Oz4zs7O8GdIwAA4P4uHasGsMwDW2K9Xk9xHGs4HKrRaKjT6cytDFmr1bTqccDcfutbdT9ge5vMSbno+DczjUajpJtYWfPmtZzFHJcAgJBwf5e8VeeBJYDFwpt+Mzt0Y5/GDSZ//EjSvCBp2XG7SdCL9S3azrPY5gAAVNeqASzzwGLhRPQvf/nLU53bL9T5YlFcm8xJuej473Q6aTe3UlaZv5I5LgEAwDL0wEJSPj2h9HyhKMgESB89sAAA4Dj0wGItrVZL/X5fo9FI/X4/k5v3Rb0ty3pher2ems2marWams1mLj22RWgDkpPH8V8183q6Z9HrDQAAVkEAi9w0Go21lkvFSDsuQhtQbmV8QHI0vXtnZ0c7OzupDVEAgFCU8ZwPpIkUYuQm1II7RWgDymuTvwsAQJg45wP3IoUYhbdJwZ1N046TVIQ2oLziOL5sqpmDgwPFcZxTiwCgWrLsEd30nE+vLaqMABa5Wnfs4SZpx0nLuw1ctMqNByQAkJ+shwltcs5nKBOqjgAWQSnClCd5toGLVvnl/YAEAKos6yyYTc75ZOqg6ghgK6IsvXabpB2XqQ2LLlrXXHNNbvu3LMdWURThIQ0AVFXWWTCbnPPJ1EHluXvhX2fPnnVsbm9vz0+dOuWSLr1OnTrle3t7eTcNazKzQ/tx0ater2eyf/f29rxer+fys4tqb2/PoyhyM/MoijbaFkl8BgBgfVEUzb2uRlGU2s9c95yfRxuBLEja9xViQ6oQV8CZM2d04cKFy5bv7Ozo/PnzObQIm1pUAXmeLKoiU5H5MKpJAkDYQjiPh9BGYBNUIcYl84LX45YXXZVTVuelGi2SRSoRaUyHMS4JAMK2yTChrO9LijCcCsgTPbAVYGYLvxfC/p/FU8fxNojjWMPhUI1GQ5/73OfmPoygBzZ7tVpt7t+UmWk0GuXQIgBAmrgvAZJDD2wFzD7xO3PmjM6cOTP36d/Ozs7c9y9aXmT0cF0+9dC1116bW9EfCg4dRgVhAKgW7kuA7BHABurodCoXLlzQhQsX5k6tcu211+r06dOH3n/69Glde+21eTR9K6SsXi7PVCLSmA4joAeAauG+BMgeKcSBWqWYz2wa59G0006nE2SQQcoqiq4sf2sAgOW4LwGSQwpxwFYpBrDKk73ZdY6mnYZ6Q00PF4quLH9rCNemBWWqXCAP2BT3JUD2Ugtgzew6M7vTzG6fWXaFmb3fzP5i8u+D0/r5oTqaGnw0HXhqlTF1ZRx3R8oqACy26jUkqfcBVcd9CZC91FKIzexpkj4n6W3u/tjJsp+QdNHd32Bmr5L0YHf/wWWfVaUU4lVTUeZVvZtFBTwAqJ5N0xlJgwQA5C33FGJ3v0nSxSOLny/p+sn/r5f0grR+fqhWLQZw9Infzs6OdnZ2ePqHtZAyCJTLpgVlKEQDAAjFyYx/3kPd/Q5Jcvc7zOwhi1Y0s7aktlTOVNhFGo3G3Kfg87ZBq9UiSMXGjvbiT1MGJXFcAYFa5xqSxPsAAMhaYYs4uXvX3XfdfffKK6/MuzmZoRgAssLcdUD5bHoN4doDAAhF1gHsJ83sKkma/Htnxj+/8KpWDCC0FNbQ2nucbVMG522LVbdPmbYjUCSbXkOqdu0BAATM3VN7SWpKun3m6zdKetXk/6+S9BOrfM7Zs2e9qvb29jyKIjczj6LI9/b28m5SYvb29rxer7ukS696vV7Y3zG09i4TRdGh32X6iqJo6XvnbYtTp0756dOnl26fsm1HoIjKfO0AAJSTpH1fITZMswrx2yU9XdIZSZ+U9BpJvynpHZIakoaSvsXdjxZ6ukyVqhDPmldpuEzVhUOrehlae5fZ5vhatC3mObp9yrYdgaIp+7UDAFBORahC/GJ3v8rdT7n7w939Le5+wd2/wd0fNfl3afBaVb1eT+fOnSv1GMXQql6G1t5ltkkZXOd3Prpu2bYjsK2kU+oZ3w6khyEwQP5S64FNUtV6YJfN8WpmGo1GGbcqeaH1xIXW3jTRAwskI43e0lqtpnnX9rJcO4C8kN0ApCv3Hlgstuzp3byn57PKMq1BaFUvQ2tvmuZti1OnTun06dOHls3bPmxH4F5p9JYuukaU5doB5IXsBqAgVhkom/erTEWcVilgY2Zzi+vMWzd0oRUaybq9Rd4+89q2anuL/HsBWVp0vjezjT+TQmlAOtL4e0X2uAcpLuVdxClJZUohXiV9ctE6J06c0PXXX0+aSkWQqgSUX1op9b1eT3EcazgcqtFoqNPpcN4AtsQQmPBxb1VspBAX1CoFbBalWBK8VgupSkD5pZVS32q11O/3NRqN1O/3uXYgMVUuYsQQmPBxb1UOBLAZW2VsEhPKQ6JaL1AFnO8Rkmnv1WAwkLtrMBio3W5XJojl7zV83FuVAynEGSN1AasiVQkAUCRclxA6juFiI4W4oHh6h1WRqgQAKBJ6rxA67q3KgQA2B4xNwip42AEAKBKmaELouLcqB1KIAQAAsBTDoACkiRTijFS5Gh8AAMhGEe436L0CUAQEsFuYV43vZS97mc6cOUNAm6IiXMQBAMhKkar/MgwK6+K+DUkjhXgLiyqZzSK1JlmkLwEAqobKqQgV921Yx6opxASwW6jValpl+3GBSc6ii/jOzo7Onz+fQ4sAAEjXovsNM9NoNMqhRcBqePiCdTAGNgOrVt2jvHxyFm3LCxcukJICACglqv8iVEy9hDQQwG5h3lxS83CBSc5x2zKO4wxbAgDFwjiz8mLuSoSKhy9IAwHsFo5W49vZ2dGpU6cOrcMFJlnHbUue5mWDm2SgeIpU5AfJo/ovQsXDF6SBMbAJ6/V6iuNYw+FQjUZDnU6HC0zCzpw5owsXLly2nPEU6aMYA1BMjDMDUFTcG2NVFHFCaRFE5YebZKCYKPIDAAgdRZxQWqRS5YdiDEAxMc4MAFAVBLAIEhOp54ObZKCYGGcGAKgKAtjAUVAHWeImGSgmMlMAAFVBABswqk4ia9wkA8VFZgowxsN9oNwo4hQwCuoAAADci0KPQLioQlwBVJ0EAAC4Fw/3gXBRhbgCKKgDAABwL6rlA+VHABswCuoAAADci4f7QPkRwAaMgjoAAAD34uE+UH6MgQUAAEBp9Ho9xXGs4XCoRqOhTqfDw30gAIyBRSooTQ9gVZwvAOSBKaWAcjuZdwMQjqOl6afzzkri4gDgEM4XAAAgDaQQY2WUpgewKs4XAABgHaQQI3GUpgewKs4XAAAgDQSwBVekMWSUpgewKs4XAJJSpHshAPkjgC2w6RiywWAgd780hiyvEzel6QGsivMFgCQU7V4IQP4IYAssjuNLBVCmDg4OFMdxLu1h3tny4yk3ksL5AkASinYvBBRB1e/XKOJUYLVaTfP2j5lpNBrl0CKU2dGqsdK4x4ygAwCQF+6FgMPKfL+2ahEnAtgCo4onssTxBgAoGq5NwGFl/pugCnEJMIYMWaJqLEJW9XQqoKy4FwIO436NALbQZseQSdKJEycujfvg5gxJo2osQkWRF6C8GE8PHMb9GinEQShzrjuKg+MMoSpzOhUAALPKfL9GCnGJUIEPWeApN0JFOhUAoCq4X6MHNghU4AOAxeiBBQAgfPTAlgi57ggNBXWQJYq8AABQHQSwAeDmDCGpekEdgvfskU4FIG2c24HiIIU4EL1eT3EcazgcqtFoqNPpcHOGQqpyOmeZCysAQFVxbgeysWoKMQEsgERVecx2lYN3ACgrzu1ANhgDCyAXVR6zTTVcACgfzu1AsRDAAkhUlcdsVzl4B4Cy4twOFAsBLIBEVbmgTpWDdwAoK87tQLEwBhYAEkTBNQAoH87tQPoo4gQAAAAACAJFnAAAAAAApUIACwAAAAAIAgEsAAAAACAIBLBITK/XU7PZVK1WU7PZVK/Xy7tJAAAAAErkZN4NQDn0ej21220dHBxIkgaDgdrttiRRpQ8AAABAIuiBRSLiOL4UvE4dHBwojuOcWgQAAACgbAhgkYjhcLjWcgBAeBgqAgDIGwEsEtFoNNZaDgAIy3SoyGAwkLtfGipCEAsAyBIBLBLR6XRUr9cPLavX6+p0Ojm1CMgevVMoM4aKAACKgAAWiWi1Wup2u4qiSGamKIrU7XYp4ITKoHcKZbfNUBEe7gAAkmLunncbltrd3fX9/f28mwEACzWbTQ0Gg8uWR1Gkfr+ffYOAhG16jB+tUi+NM3R4yAkAmGVmt7j77rL16IEFgARQyAxlt+lQEVKPAQBJIoBNCelSQLVQyAxlt+lQkTwf7nAtBoDyIYBNAWPhgOqhkBmqoNVqqd/vazQaqd/vr5QCnNfDHa7FAFBOBLApIF0KqB4KmQHz5fVwh2sxAJQTRZxSUKvVNG+7mplGo1EOLQIAID+9Xk9xHGs4HKrRaKjT6aT+cIdrMQCEZdUiTiezaEzVNBqNuZUaGQsHAKiiVquVeTYC12IAKKdcUojNrG9mHzWz28wsnK7VFTEWDgCAfHEtBoByynMM7DPc/epVuolDw1g4AADyxbUYAMoplzGwZtaXtOvu51dZP7QxsAAAAACA1a06BjavHliX9D4zu8XM2vNWMLO2me2b2f5dd92VcfPCw1x3AAAAAMouryJOT3X3T5jZQyS938z+1N1vml3B3buSutK4BzaPRoZiOtfddLqA6Vx3kkiVAgAAAFAaufTAuvsnJv/eKeldkp6cRzvKgrnuAAAAAFRB5gGsmd3XzO4//b+kb5R0e9btKJPhcLjWcgAAAAAIUR49sA+V9Ptm9seS/lDSb7n7f86hHaWxaE475roDAAAAUCaZB7Du/nF3f8Lk9Rh3Z0K2LTHXHQAAAIAqyHMeWCSEue4AAAAAVEEu88Cui3lgAQAAAKC8ij4PLAAAAAAAayGABQAAAAAEgQAWAAAAABAEAlgAAAAAQBAIYAEAAAAAQSCABQAAAAAEgQAWAAAAABAEAlgAAAAAQBAIYAEAAAAAQSCABQAAAAAEgQAWAAAAABAEAlgAAAAAQBAIYAEAAAAAQSCABQAAAAAEgQAWAAAAABAEAlgAAAAAQBAIYAEAAAAAQSCABbCWXq+nZrOpWq2mZrOpXq+Xd5MAAABQESfzbgCAcPR6PbXbbR0cHEiSBoOB2u22JKnVauXZNAAAAFQAPbAAVhbH8aXgderg4EBxHOfUIgAAAFQJASyAlQ2Hw7WWAwAAAEkigAWwskajsdZyAAAAIEkEsABW1ul0VK/XDy2r1+vqdDo5tQgAAABVQgALYGWtVkvdbldRFMnMFEWRut0uBZwAAACQCXP3vNuw1O7uru/v7+fdDAAAAABACszsFnffXbYePbAAAAAAgCAQwAIAAAAAgkAACwAAAAAIAgEsAAAAACAIBLAAAAAAgCAQwAIAAAAAgkAACwAAAAAIAgEsAAAAACAIBLAAAAAAgCAQwAIAAAAAgkAACwAAAAAIAgEsAAAAACAIBLAAAAAAgCAQwAIAAAAAgkAACwAAAAAIAgEsAAAAACAIBLAAAAAAgCAQwAIAAAAJ6fV6ajabqtVqajab6vV6eTcJKJWTeTcAAAAAKINer6d2u62DgwNJ0mAwULvdliS1Wq08mwaUBj2wAAAAQALiOL4UvE4dHBwojuOcWgSUDwEsAAAAkIDhcLjWcgDrI4AFAAAAEtBoNNZaDmB9BLAAAABAAjqdjur1+qFl9XpdnU4npxYB5UMACwAAACSg1Wqp2+0qiiKZmaIoUrfbpYATkCBz97zbsNTu7q7v7+/n3QwAAAAAQArM7BZ33122Hj2wAAAAAIAgEMACAAAAAIJAAAsAAAAACAIBLAAAAAAgCASwAAAAAIAgEMACAAAAAIJAAAsAAAAACAIBLAAAAAAgCASwAAAAAIAgEMACAAAAAIJAAAsAAAAACAIBLAAAAAAgCASwAAAAAIAgEMACAAAAAIJAAAsAAAAACIK5e95tWMrM7pI0yLsdS5yRdD7vRgDiWESxcDyiKDgWUSQcjyiSohyPkbtfuWylIALYEJjZvrvv5t0OgGMRRcLxiKLgWESRcDyiSEI7HkkhBgAAAAAEgQAWAAAAABAEAtjkdPNuADDBsYgi4XhEUXAsokg4HlEkQR2PjIEFAAAAAASBHlgAAAAAQBAIYAEAAAAAQSCA3ZKZPdvM/szM/tLMXpV3e1AtZnadmd1pZrfPLLvCzN5vZn8x+ffBebYR1WBmjzCz3zWzj5nZfzezaybLOR6ROTO7j5n9oZn98eR4fN1k+f9tZjdPjsdfN7PTebcV1WBmJ8zsw2b23snXHIvIhZn1zeyjZnabme1PlgV1rSaA3YKZnZD085L+kaRHS3qxmT0631ahYt4q6dlHlr1K0gfc/VGSPjD5GkjblyT9gLt/taSvlfS9k/MhxyPy8AVJz3T3J0i6WtKzzexrJf24pJ+eHI+fkvSdObYR1XKNpI/NfM2xiDw9w92vnpn7NahrNQHsdp4s6S/d/ePu/reSfk3S83NuEyrE3W+SdPHI4udLun7y/+slvSDTRqGS3P0Od7918v/Panyj9jBxPCIHPva5yZenJi+X9ExJ//9kOccjMmFmD5f0TZJ+afK1iWMRxRLUtZoAdjsPk/RXM1//9WQZkKeHuvsd0jiokPSQnNuDijGzpqQnSrpZHI/IySRl8zZJd0p6v6T/IenT7v6lySpcs5GVn5H0byWNJl/viGMR+XFJ7zOzW8ysPVkW1LX6ZN4NCJzNWca8RAAqy8zuJ+mdkl7p7nePOxqA7Ln7PZKuNrMHSXqXpK+et1q2rULVmNlzJd3p7reY2dOni+esyrGIrDzV3T9hZg+R9H4z+9O8G7QuemC389eSHjHz9cMlfSKntgBTnzSzqyRp8u+dObcHFWFmpzQOXnvu/huTxRyPyJW7f1rSjRqPzX6QmU0f3nPNRhaeKul5ZtbXeKjZMzXukeVYRC7c/ROTf+/U+OHekxXYtZoAdjt/JOlRk0pypyX9M0nvyblNwHsknZv8/5ykd+fYFlTEZEzXWyR9zN3fNPMtjkdkzsyunPS8ysy+TNL/o/G47N+V9MLJahyPSJ27/5C7P9zdmxrfJ37Q3VviWEQOzOy+Znb/6f8lfaOk2xXYtdrcyVjYhpk9R+MnaSckXefunZybhAoxs7dLerqkM5I+Kek1kn5T0jskNSQNJX2Lux8t9AQkysy+XtLvSfqo7h3n9WqNx8FyPCJTZvZ4jQuRnND4Yf073P31ZvZIjXvBrpD0YUnf5u5fyK+lqJJJCvG/cffnciwiD5Pj7l2TL09K+lV375jZjgK6VhPAAgAAAACCQAoxAAAAACAIBLAAAAAAgCAQwAIAAAAAgkAACwAAAAAIAgEsAAAAACAIBLAAgMyZmZvZr8x8fdLM7jKz9+bZrrSY2avzbsMsM3urmb1w8v9fMrNHJ/z5TTO7fY31zcw+aGYPOPIZLz2y3r80s+9IsKkAgMAQwAIA8vB5SY81sy+bfP0sSX+TY3vSlnoAa2YnN3mfu3+Xu/9J0u1Z03Mk/bG73y1JZvYKSb8j6UfM7EYz+zuT9a6T9H05tREAUAAEsACAvPy2pG+a/P/Fkt4+/YaZXWFmv2lmHzGzPzCzx0+Wv9bMrpsENR83s++bec+3mdkfmtltZvYLZnbCzL7TzH56Zp3vNrM3zTZist5bzex2M/uomX3/ZPmNZvYzZvZfJ9978mT5fSdt+CMz+7CZPX+y/KVm9htm9p/N7C/M7Ccmy98g6csm7eod3Qhm9uLJz73dzH58ZvnnzKxjZn882QYPnfPe15pZ18zeJ+ltk17L3zOzWyevp0zWMzP7OTP7EzP7LUkPmfmMG81s97i2HPmZ/37yu98++dk2WX520tb/Jul7Z9Z/zMx++YiZPWrOx7YkvXuy/v0lvU7St0v6YUkv1fiBh9z9QFJ/ui8AANVDAAsAyMuvSfpnZnYfSY+XdPPM914n6cPu/niNey/fNvO9r5L0/0p6sqTXmNkpM/tqSS+S9FR3v1rSPRoHRb8m6Xlmdmry3u+Q9MtH2nG1pIe5+2Pd/XFHvn9fd3+KpH+hce+fJMWSPujuT5L0DElvNLP7znzWiyQ9TtKLzOwR7v4qSf/L3a9299bsDzazL5f045KeOXnvk8zsBdOfLekP3P0Jkm6S9N0LtuNZSc93938u6U5Jz3L3r5m042cn6/wTSX9v0q7vlvSUox+ypC2zfs7dn+Tuj5X0ZZKeO1n+y5K+z92/7sj6L5d07WS/7Er66zmf+VRJt0z+P5J0WtIDJMnd++7+2Zl19yX9g3kbAgBQfgSwAIBcuPtHJDU17n294ci3v17Sr0zW+6CkHTN74OR7v+XuX3D38xoHbA+V9A0aB3J/ZGa3Tb5+pLt/XtIHJT3XzL5K0il3/+iRn/VxSY80s/9gZs+WdPfM994+acNNkh5gZg+S9I2SXjX5OTdKuo+kxmT9D7j7Z9z9f0v6E0nRks3wJEk3uvtd7v4lST1JT5t8728lTccE3zLZVvO8x93/1+T/pyT9opl9VNL/J2k6tvVpkt7u7ve4+ycm22Sdtsx6hpndPPkZz5T0mMm+eZC7/5fJOr8ys/5/k/RqM/tBSdFMW2ddMQ1SJ/vs2yX9qMYpxD9pZvWZde+U9OULtgUAoOQ2Gi8DAEBC3iPpJyU9XdLOzHKbs65P/v3CzLJ7NL6WmaTr3f2H5rzvlzTuxf1TXd77Knf/lJk9QeNe3e+V9K2SXnbkZ862wSR9s7v/2ew3zOzvL2jbceb9nlNfdPfpzz/usz4/8//vl/RJSU/Q+CH1/z7S9k3bMl5h3Fv+Zkm77v5XZvZajQN4W/T57v6rZnazxuniv2Nm3zV5KDHrS2ZWc/fR5D3vMbOPSPrHGvfa/oCkH5msex9J84JgAEAF0AMLAMjTdZJeP6dX9CaNU4BlZk+XdH5a4GeBD0h6oZk9ZPKeK8wskiR3v1nSIyT9c82Ms50yszOSau7+To3HXH7NzLdfNFnn6yV9xt0/o3FxoX81M/bziSv8nl+cSWOedbOkf2hmZ8zshMa90f9lznqreqCkOyaB4EsknZgsv0njdO0TZnaVxqnPm7TlPpN/z5vZ/SS9UJLc/dOSPjPZTtJk30mSmT1S0sfd/Wc1fmDx+Dk/+88kPXKy/v2m+07SZyV9TNL9Z9b9SkkrVzgGAJQLPbAAgNy4+19LunbOt14r6ZcnvXAHks4t+Zw/MbN/J+l9ZlaT9EWNe1MHk1XeIelqd//UnLc/bPKzpg91Z3txP2Vm/1Xj8ZjTXtkfkfQzkj4yCWL7uncc6CLdyfq3zo6Ddfc7zOyHJP2uxr2YN7j7u5d81nHeLOmdZvYtk8+c9s6+S+N0349K+nPNCZJXaYu7f9rMfnHyOX1JfzTz7e+QdJ2ZHWgc5E+9SNK3mdkXJf1PSa+f0+7f0rgX/i81ToP+BUlnNO6VH2r88GHqqRqPkQYAVJDdm50EAEA52Xh+2Z929w+s8Z4bJf0bd99PrWGQJE16hd/m7s+aWdaU9HR3f+vMsidK+tfu/pKs2wgAKAZSiAEApWVmDzKzP9e4CvDKwSuy5e53aFx86gEziz8t6bYjq57ROM0bAFBR9MACAAAAAIJADywAAAAAIAgEsAAAAACAIBDAAgAAAACCQAALAAAAAAgCASwAAAAAIAj/B3sAVqE71rWSAAAAAElFTkSuQmCC\n",
303 | "text/plain": [
304 | ""
305 | ]
306 | },
307 | "metadata": {},
308 | "output_type": "display_data"
309 | }
310 | ],
311 | "source": [
312 | "scatter_plot('radio', 'sales')"
313 | ]
314 | },
315 | {
316 | "cell_type": "code",
317 | "execution_count": 9,
318 | "metadata": {},
319 | "outputs": [
320 | {
321 | "data": {
322 | "image/png": "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\n",
323 | "text/plain": [
324 | ""
325 | ]
326 | },
327 | "metadata": {},
328 | "output_type": "display_data"
329 | }
330 | ],
331 | "source": [
332 | "scatter_plot('newspaper', 'sales')"
333 | ]
334 | },
335 | {
336 | "cell_type": "markdown",
337 | "metadata": {},
338 | "source": [
339 | "## Modelling "
340 | ]
341 | },
342 | {
343 | "cell_type": "markdown",
344 | "metadata": {},
345 | "source": [
346 | "### Multiple linear regression - least squares fitting "
347 | ]
348 | },
349 | {
350 | "cell_type": "code",
351 | "execution_count": 22,
352 | "metadata": {},
353 | "outputs": [
354 | {
355 | "name": "stdout",
356 | "output_type": "stream",
357 | "text": [
358 | "-3.07294659710021\n"
359 | ]
360 | }
361 | ],
362 | "source": [
363 | "from sklearn.model_selection import cross_val_score\n",
364 | "from sklearn.linear_model import LinearRegression\n",
365 | "\n",
366 | "Xs = data.drop(['sales'], axis=1)\n",
367 | "y = data['sales'].values.reshape(-1,1)\n",
368 | "\n",
369 | "lin_reg = LinearRegression()\n",
370 | "\n",
371 | "MSEs = cross_val_score(lin_reg, Xs, y, scoring='neg_mean_squared_error', cv=5)\n",
372 | "\n",
373 | "mean_MSE = np.mean(MSEs)\n",
374 | "\n",
375 | "print(mean_MSE)"
376 | ]
377 | },
378 | {
379 | "cell_type": "markdown",
380 | "metadata": {},
381 | "source": [
382 | "### Ridge regression "
383 | ]
384 | },
385 | {
386 | "cell_type": "code",
387 | "execution_count": 17,
388 | "metadata": {},
389 | "outputs": [
390 | {
391 | "data": {
392 | "text/plain": [
393 | "GridSearchCV(cv=5, error_score='raise',\n",
394 | " estimator=Ridge(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=None,\n",
395 | " normalize=False, random_state=None, solver='auto', tol=0.001),\n",
396 | " fit_params=None, iid=True, n_jobs=1,\n",
397 | " param_grid={'alpha': [1e-15, 1e-10, 1e-08, 0.0001, 0.001, 0.01, 1, 5, 10, 20]},\n",
398 | " pre_dispatch='2*n_jobs', refit=True, return_train_score=True,\n",
399 | " scoring='neg_mean_squared_error', verbose=0)"
400 | ]
401 | },
402 | "execution_count": 17,
403 | "metadata": {},
404 | "output_type": "execute_result"
405 | }
406 | ],
407 | "source": [
408 | "from sklearn.model_selection import GridSearchCV\n",
409 | "from sklearn.linear_model import Ridge\n",
410 | "\n",
411 | "alpha = [1e-15, 1e-10, 1e-8, 1e-4, 1e-3,1e-2, 1, 5, 10, 20]\n",
412 | "\n",
413 | "ridge = Ridge()\n",
414 | "\n",
415 | "parameters = {'alpha': [1e-15, 1e-10, 1e-8, 1e-4, 1e-3,1e-2, 1, 5, 10, 20]}\n",
416 | "\n",
417 | "ridge_regressor = GridSearchCV(ridge, parameters,scoring='neg_mean_squared_error', cv=5)\n",
418 | "\n",
419 | "ridge_regressor.fit(Xs, y)"
420 | ]
421 | },
422 | {
423 | "cell_type": "code",
424 | "execution_count": 18,
425 | "metadata": {},
426 | "outputs": [
427 | {
428 | "data": {
429 | "text/plain": [
430 | "{'alpha': 20}"
431 | ]
432 | },
433 | "execution_count": 18,
434 | "metadata": {},
435 | "output_type": "execute_result"
436 | }
437 | ],
438 | "source": [
439 | "ridge_regressor.best_params_"
440 | ]
441 | },
442 | {
443 | "cell_type": "code",
444 | "execution_count": 23,
445 | "metadata": {},
446 | "outputs": [
447 | {
448 | "data": {
449 | "text/plain": [
450 | "-3.0726713383411433"
451 | ]
452 | },
453 | "execution_count": 23,
454 | "metadata": {},
455 | "output_type": "execute_result"
456 | }
457 | ],
458 | "source": [
459 | "ridge_regressor.best_score_"
460 | ]
461 | },
462 | {
463 | "cell_type": "markdown",
464 | "metadata": {},
465 | "source": [
466 | "### Lasso "
467 | ]
468 | },
469 | {
470 | "cell_type": "code",
471 | "execution_count": 24,
472 | "metadata": {},
473 | "outputs": [
474 | {
475 | "name": "stderr",
476 | "output_type": "stream",
477 | "text": [
478 | "C:\\Users\\marco\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n",
479 | " ConvergenceWarning)\n",
480 | "C:\\Users\\marco\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n",
481 | " ConvergenceWarning)\n",
482 | "C:\\Users\\marco\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n",
483 | " ConvergenceWarning)\n"
484 | ]
485 | },
486 | {
487 | "data": {
488 | "text/plain": [
489 | "GridSearchCV(cv=5, error_score='raise',\n",
490 | " estimator=Lasso(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=1000,\n",
491 | " normalize=False, positive=False, precompute=False, random_state=None,\n",
492 | " selection='cyclic', tol=0.0001, warm_start=False),\n",
493 | " fit_params=None, iid=True, n_jobs=1,\n",
494 | " param_grid={'alpha': [1e-15, 1e-10, 1e-08, 0.0001, 0.001, 0.01, 1, 5, 10, 20]},\n",
495 | " pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
496 | " scoring='neg_mean_squared_error', verbose=0)"
497 | ]
498 | },
499 | "execution_count": 24,
500 | "metadata": {},
501 | "output_type": "execute_result"
502 | }
503 | ],
504 | "source": [
505 | "from sklearn.linear_model import Lasso\n",
506 | "\n",
507 | "lasso = Lasso()\n",
508 | "\n",
509 | "parameters = {'alpha': [1e-15, 1e-10, 1e-8, 1e-4, 1e-3,1e-2, 1, 5, 10, 20]}\n",
510 | "\n",
511 | "lasso_regressor = GridSearchCV(lasso, parameters, scoring='neg_mean_squared_error', cv = 5)\n",
512 | "\n",
513 | "lasso_regressor.fit(Xs, y)"
514 | ]
515 | },
516 | {
517 | "cell_type": "code",
518 | "execution_count": 25,
519 | "metadata": {},
520 | "outputs": [
521 | {
522 | "data": {
523 | "text/plain": [
524 | "{'alpha': 1}"
525 | ]
526 | },
527 | "execution_count": 25,
528 | "metadata": {},
529 | "output_type": "execute_result"
530 | }
531 | ],
532 | "source": [
533 | "lasso_regressor.best_params_"
534 | ]
535 | },
536 | {
537 | "cell_type": "code",
538 | "execution_count": 26,
539 | "metadata": {},
540 | "outputs": [
541 | {
542 | "data": {
543 | "text/plain": [
544 | "-3.041405896751369"
545 | ]
546 | },
547 | "execution_count": 26,
548 | "metadata": {},
549 | "output_type": "execute_result"
550 | }
551 | ],
552 | "source": [
553 | "lasso_regressor.best_score_"
554 | ]
555 | }
556 | ],
557 | "metadata": {
558 | "kernelspec": {
559 | "display_name": "Python 3",
560 | "language": "python",
561 | "name": "python3"
562 | },
563 | "language_info": {
564 | "codemirror_mode": {
565 | "name": "ipython",
566 | "version": 3
567 | },
568 | "file_extension": ".py",
569 | "mimetype": "text/x-python",
570 | "name": "python",
571 | "nbconvert_exporter": "python",
572 | "pygments_lexer": "ipython3",
573 | "version": "3.6.4"
574 | }
575 | },
576 | "nbformat": 4,
577 | "nbformat_minor": 2
578 | }
579 |
--------------------------------------------------------------------------------