Format: application/octet-stream
1 {
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "metadata": {},
6 "source": [
7 "---\n",
8 "\n",
9 "_You are currently looking at **version 1.5** of this notebook. To download notebooks and datafiles, as well as get help on Jupyter notebooks in the Coursera platform, visit the [Jupyter Notebook FAQ](https://www.coursera.org/learn/python-machine-learning/resources/bANLa) course resource._\n",
10 "\n",
11 "---"
12 ]
13 },
14 {
15 "cell_type": "markdown",
16 "metadata": {},
17 "source": [
18 "# Assignment 2\n",
19 "\n",
20 "In this assignment you'll explore the relationship between model complexity and generalization performance, by adjusting key parameters of various supervised learning models. Part 1 of this assignment will look at regression and Part 2 will look at classification.\n",
21 "\n",
22 "## Part 1 - Regression"
23 ]
24 },
25 {
26 "cell_type": "markdown",
27 "metadata": {},
28 "source": [
29 "First, run the following block to set up the variables needed for later sections."
30 ]
31 },
32 {
33 "cell_type": "code",
34 "execution_count": 1,
35 "metadata": {
36 "scrolled": false
37 },
38 "outputs": [],
39 "source": [
40 "import numpy as np\n",
41 "import pandas as pd\n",
42 "from sklearn.model_selection import train_test_split\n",
43 "\n",
44 "\n",
45 "np.random.seed(0)\n",
46 "n = 15\n",
47 "x = np.linspace(0,10,n) + np.random.randn(n)/5\n",
48 "y = np.sin(x)+x/6 + np.random.randn(n)/10\n",
49 "\n",
50 "\n",
51 "X_train, X_test, y_train, y_test = train_test_split(x, y, random_state=0)\n",
52 "\n",
53 "# You can use this function to help you visualize the dataset by\n",
54 "# plotting a scatterplot of the data points\n",
55 "# in the training and test sets.\n",
56 "def part1_scatter():\n",
57 " import matplotlib.pyplot as plt\n",
58 " %matplotlib notebook\n",
59 " plt.figure()\n",
60 " plt.scatter(X_train, y_train, label='training data')\n",
61 " plt.scatter(X_test, y_test, label='test data')\n",
62 " plt.legend(loc=4);\n",
63 " \n",
64 " \n",
65 "# NOTE: Uncomment the function below to visualize the data, but be sure \n",
66 "# to **re-comment it before submitting this assignment to the autograder**. \n",
67 "#part1_scatter()"
68 ]
69 },
70 {
71 "cell_type": "markdown",
72 "metadata": {},
73 "source": [
74 "### Question 1\n",
75 "\n",
76 "Write a function that fits a polynomial LinearRegression model on the *training data* `X_train` for degrees 1, 3, 6, and 9. (Use PolynomialFeatures in sklearn.preprocessing to create the polynomial features and then fit a linear regression model) For each model, find 100 predicted values over the interval x = 0 to 10 (e.g. `np.linspace(0,10,100)`) and store this in a numpy array. The first row of this array should correspond to the output from the model trained on degree 1, the second row degree 3, the third row degree 6, and the fourth row degree 9.\n",
77 "\n",
78 "<img src=\"readonly/polynomialreg1.png\" style=\"width: 1000px;\"/>\n",
79 "\n",
80 "The figure above shows the fitted models plotted on top of the original data (using `plot_one()`).\n",
81 "\n",
82 "<br>\n",
83 "*This function should return a numpy array with shape `(4, 100)`*"
84 ]
85 },
86 {
87 "cell_type": "code",
88 "execution_count": 2,
89 "metadata": {},
90 "outputs": [],
91 "source": [
92 "import numpy as np"
93 ]
94 },
95 {
96 "cell_type": "code",
97 "execution_count": 3,
98 "metadata": {},
99 "outputs": [],
100 "source": [
101 "\n",
102 "def answer_one():\n",
103 " from sklearn.linear_model import LinearRegression\n",
104 " from sklearn.preprocessing import PolynomialFeatures\n",
105 "\n",
106 " to_predict= np.linspace(0,10,100)\n",
107 " predics= np.zeros((4,100))\n",
108 " orders=[1,3,6,9]\n",
109 " clfr=LinearRegression()\n",
110 " for i in range(len(orders)):\n",
111 " ploy= PolynomialFeatures(orders[i])\n",
112 " x_train=ploy.fit_transform(X_train.reshape(-1,1))\n",
113 " x_test=ploy.fit_transform(to_predict.reshape(-1,1))\n",
114 " clfr.fit(x_train, y_train)\n",
115 " predics[i,:]= clfr.predict(x_test)\n",
116 " \n",
117 " return predics\n"
118 ]
119 },
120 {
121 "cell_type": "code",
122 "execution_count": null,
123 "metadata": {},
124 "outputs": [],
125 "source": []
126 },
127 {
128 "cell_type": "code",
129 "execution_count": null,
130 "metadata": {},
131 "outputs": [],
132 "source": []
133 },
134 {
135 "cell_type": "code",
136 "execution_count": null,
137 "metadata": {},
138 "outputs": [],
139 "source": []
140 },
141 {
142 "cell_type": "code",
143 "execution_count": null,
144 "metadata": {},
145 "outputs": [],
146 "source": []
147 },
148 {
149 "cell_type": "code",
150 "execution_count": null,
151 "metadata": {},
152 "outputs": [],
153 "source": []
154 },
155 {
156 "cell_type": "code",
157 "execution_count": 4,
158 "metadata": {},
159 "outputs": [
160 {
161 "data": {
162 "application/javascript": [
163 "/* Put everything inside the global mpl namespace */\n",
164 "/* global mpl */\n",
165 "window.mpl = {};\n",
166 "\n",
167 "mpl.get_websocket_type = function () {\n",
168 " if (typeof WebSocket !== 'undefined') {\n",
169 " return WebSocket;\n",
170 " } else if (typeof MozWebSocket !== 'undefined') {\n",
171 " return MozWebSocket;\n",
172 " } else {\n",
173 " alert(\n",
174 " 'Your browser does not have WebSocket support. ' +\n",
175 " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
176 " 'Firefox 4 and 5 are also supported but you ' +\n",
177 " 'have to enable WebSockets in about:config.'\n",
178 " );\n",
179 " }\n",
180 "};\n",
181 "\n",
182 "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
183 " this.id = figure_id;\n",
184 "\n",
185 " this.ws = websocket;\n",
186 "\n",
187 " this.supports_binary = this.ws.binaryType !== undefined;\n",
188 "\n",
189 " if (!this.supports_binary) {\n",
190 " var warnings = document.getElementById('mpl-warnings');\n",
191 " if (warnings) {\n",
192 " warnings.style.display = 'block';\n",
193 " warnings.textContent =\n",
194 " 'This browser does not support binary websocket messages. ' +\n",
195 " 'Performance may be slow.';\n",
196 " }\n",
197 " }\n",
198 "\n",
199 " this.imageObj = new Image();\n",
200 "\n",
201 " this.context = undefined;\n",
202 " this.message = undefined;\n",
203 " this.canvas = undefined;\n",
204 " this.rubberband_canvas = undefined;\n",
205 " this.rubberband_context = undefined;\n",
206 " this.format_dropdown = undefined;\n",
207 "\n",
208 " this.image_mode = 'full';\n",
209 "\n",
210 " this.root = document.createElement('div');\n",
211 " this.root.setAttribute('style', 'display: inline-block');\n",
212 " this._root_extra_style(this.root);\n",
213 "\n",
214 " parent_element.appendChild(this.root);\n",
215 "\n",
216 " this._init_header(this);\n",
217 " this._init_canvas(this);\n",
218 " this._init_toolbar(this);\n",
219 "\n",
220 " var fig = this;\n",
221 "\n",
222 " this.waiting = false;\n",
223 "\n",
224 " this.ws.onopen = function () {\n",
225 " fig.send_message('supports_binary', { value: fig.supports_binary });\n",
226 " fig.send_message('send_image_mode', {});\n",
227 " if (fig.ratio !== 1) {\n",
228 " fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
229 " }\n",
230 " fig.send_message('refresh', {});\n",
231 " };\n",
232 "\n",
233 " this.imageObj.onload = function () {\n",
234 " if (fig.image_mode === 'full') {\n",
235 " // Full images could contain transparency (where diff images\n",
236 " // almost always do), so we need to clear the canvas so that\n",
237 " // there is no ghosting.\n",
238 " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
239 " }\n",
240 " fig.context.drawImage(fig.imageObj, 0, 0);\n",
241 " };\n",
242 "\n",
243 " this.imageObj.onunload = function () {\n",
244 " fig.ws.close();\n",
245 " };\n",
246 "\n",
247 " this.ws.onmessage = this._make_on_message_function(this);\n",
248 "\n",
249 " this.ondownload = ondownload;\n",
250 "};\n",
251 "\n",
252 "mpl.figure.prototype._init_header = function () {\n",
253 " var titlebar = document.createElement('div');\n",
254 " titlebar.classList =\n",
255 " 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
256 " var titletext = document.createElement('div');\n",
257 " titletext.classList = 'ui-dialog-title';\n",
258 " titletext.setAttribute(\n",
259 " 'style',\n",
260 " 'width: 100%; text-align: center; padding: 3px;'\n",
261 " );\n",
262 " titlebar.appendChild(titletext);\n",
263 " this.root.appendChild(titlebar);\n",
264 " this.header = titletext;\n",
265 "};\n",
266 "\n",
267 "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
268 "\n",
269 "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
270 "\n",
271 "mpl.figure.prototype._init_canvas = function () {\n",
272 " var fig = this;\n",
273 "\n",
274 " var canvas_div = (this.canvas_div = document.createElement('div'));\n",
275 " canvas_div.setAttribute(\n",
276 " 'style',\n",
277 " 'border: 1px solid #ddd;' +\n",
278 " 'box-sizing: content-box;' +\n",
279 " 'clear: both;' +\n",
280 " 'min-height: 1px;' +\n",
281 " 'min-width: 1px;' +\n",
282 " 'outline: 0;' +\n",
283 " 'overflow: hidden;' +\n",
284 " 'position: relative;' +\n",
285 " 'resize: both;'\n",
286 " );\n",
287 "\n",
288 " function on_keyboard_event_closure(name) {\n",
289 " return function (event) {\n",
290 " return fig.key_event(event, name);\n",
291 " };\n",
292 " }\n",
293 "\n",
294 " canvas_div.addEventListener(\n",
295 " 'keydown',\n",
296 " on_keyboard_event_closure('key_press')\n",
297 " );\n",
298 " canvas_div.addEventListener(\n",
299 " 'keyup',\n",
300 " on_keyboard_event_closure('key_release')\n",
301 " );\n",
302 "\n",
303 " this._canvas_extra_style(canvas_div);\n",
304 " this.root.appendChild(canvas_div);\n",
305 "\n",
306 " var canvas = (this.canvas = document.createElement('canvas'));\n",
307 " canvas.classList.add('mpl-canvas');\n",
308 " canvas.setAttribute('style', 'box-sizing: content-box;');\n",
309 "\n",
310 " this.context = canvas.getContext('2d');\n",
311 "\n",
312 " var backingStore =\n",
313 " this.context.backingStorePixelRatio ||\n",
314 " this.context.webkitBackingStorePixelRatio ||\n",
315 " this.context.mozBackingStorePixelRatio ||\n",
316 " this.context.msBackingStorePixelRatio ||\n",
317 " this.context.oBackingStorePixelRatio ||\n",
318 " this.context.backingStorePixelRatio ||\n",
319 " 1;\n",
320 "\n",
321 " this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
322 "\n",
323 " var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
324 " 'canvas'\n",
325 " ));\n",
326 " rubberband_canvas.setAttribute(\n",
327 " 'style',\n",
328 " 'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
329 " );\n",
330 "\n",
331 " // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
332 " if (this.ResizeObserver === undefined) {\n",
333 " if (window.ResizeObserver !== undefined) {\n",
334 " this.ResizeObserver = window.ResizeObserver;\n",
335 " } else {\n",
336 " var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
337 " this.ResizeObserver = obs.ResizeObserver;\n",
338 " }\n",
339 " }\n",
340 "\n",
341 " this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
342 " var nentries = entries.length;\n",
343 " for (var i = 0; i < nentries; i++) {\n",
344 " var entry = entries[i];\n",
345 " var width, height;\n",
346 " if (entry.contentBoxSize) {\n",
347 " if (entry.contentBoxSize instanceof Array) {\n",
348 " // Chrome 84 implements new version of spec.\n",
349 " width = entry.contentBoxSize[0].inlineSize;\n",
350 " height = entry.contentBoxSize[0].blockSize;\n",
351 " } else {\n",
352 " // Firefox implements old version of spec.\n",
353 " width = entry.contentBoxSize.inlineSize;\n",
354 " height = entry.contentBoxSize.blockSize;\n",
355 " }\n",
356 " } else {\n",
357 " // Chrome <84 implements even older version of spec.\n",
358 " width = entry.contentRect.width;\n",
359 " height = entry.contentRect.height;\n",
360 " }\n",
361 "\n",
362 " // Keep the size of the canvas and rubber band canvas in sync with\n",
363 " // the canvas container.\n",
364 " if (entry.devicePixelContentBoxSize) {\n",
365 " // Chrome 84 implements new version of spec.\n",
366 " canvas.setAttribute(\n",
367 " 'width',\n",
368 " entry.devicePixelContentBoxSize[0].inlineSize\n",
369 " );\n",
370 " canvas.setAttribute(\n",
371 " 'height',\n",
372 " entry.devicePixelContentBoxSize[0].blockSize\n",
373 " );\n",
374 " } else {\n",
375 " canvas.setAttribute('width', width * fig.ratio);\n",
376 " canvas.setAttribute('height', height * fig.ratio);\n",
377 " }\n",
378 " canvas.setAttribute(\n",
379 " 'style',\n",
380 " 'width: ' + width + 'px; height: ' + height + 'px;'\n",
381 " );\n",
382 "\n",
383 " rubberband_canvas.setAttribute('width', width);\n",
384 " rubberband_canvas.setAttribute('height', height);\n",
385 "\n",
386 " // And update the size in Python. We ignore the initial 0/0 size\n",
387 " // that occurs as the element is placed into the DOM, which should\n",
388 " // otherwise not happen due to the minimum size styling.\n",
389 " if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
390 " fig.request_resize(width, height);\n",
391 " }\n",
392 " }\n",
393 " });\n",
394 " this.resizeObserverInstance.observe(canvas_div);\n",
395 "\n",
396 " function on_mouse_event_closure(name) {\n",
397 " return function (event) {\n",
398 " return fig.mouse_event(event, name);\n",
399 " };\n",
400 " }\n",
401 "\n",
402 " rubberband_canvas.addEventListener(\n",
403 " 'mousedown',\n",
404 " on_mouse_event_closure('button_press')\n",
405 " );\n",
406 " rubberband_canvas.addEventListener(\n",
407 " 'mouseup',\n",
408 " on_mouse_event_closure('button_release')\n",
409 " );\n",
410 " // Throttle sequential mouse events to 1 every 20ms.\n",
411 " rubberband_canvas.addEventListener(\n",
412 " 'mousemove',\n",
413 " on_mouse_event_closure('motion_notify')\n",
414 " );\n",
415 "\n",
416 " rubberband_canvas.addEventListener(\n",
417 " 'mouseenter',\n",
418 " on_mouse_event_closure('figure_enter')\n",
419 " );\n",
420 " rubberband_canvas.addEventListener(\n",
421 " 'mouseleave',\n",
422 " on_mouse_event_closure('figure_leave')\n",
423 " );\n",
424 "\n",
425 " canvas_div.addEventListener('wheel', function (event) {\n",
426 " if (event.deltaY < 0) {\n",
427 " event.step = 1;\n",
428 " } else {\n",
429 " event.step = -1;\n",
430 " }\n",
431 " on_mouse_event_closure('scroll')(event);\n",
432 " });\n",
433 "\n",
434 " canvas_div.appendChild(canvas);\n",
435 " canvas_div.appendChild(rubberband_canvas);\n",
436 "\n",
437 " this.rubberband_context = rubberband_canvas.getContext('2d');\n",
438 " this.rubberband_context.strokeStyle = '#000000';\n",
439 "\n",
440 " this._resize_canvas = function (width, height, forward) {\n",
441 " if (forward) {\n",
442 " canvas_div.style.width = width + 'px';\n",
443 " canvas_div.style.height = height + 'px';\n",
444 " }\n",
445 " };\n",
446 "\n",
447 " // Disable right mouse context menu.\n",
448 " this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
449 " event.preventDefault();\n",
450 " return false;\n",
451 " });\n",
452 "\n",
453 " function set_focus() {\n",
454 " canvas.focus();\n",
455 " canvas_div.focus();\n",
456 " }\n",
457 "\n",
458 " window.setTimeout(set_focus, 100);\n",
459 "};\n",
460 "\n",
461 "mpl.figure.prototype._init_toolbar = function () {\n",
462 " var fig = this;\n",
463 "\n",
464 " var toolbar = document.createElement('div');\n",
465 " toolbar.classList = 'mpl-toolbar';\n",
466 " this.root.appendChild(toolbar);\n",
467 "\n",
468 " function on_click_closure(name) {\n",
469 " return function (_event) {\n",
470 " return fig.toolbar_button_onclick(name);\n",
471 " };\n",
472 " }\n",
473 "\n",
474 " function on_mouseover_closure(tooltip) {\n",
475 " return function (event) {\n",
476 " if (!event.currentTarget.disabled) {\n",
477 " return fig.toolbar_button_onmouseover(tooltip);\n",
478 " }\n",
479 " };\n",
480 " }\n",
481 "\n",
482 " fig.buttons = {};\n",
483 " var buttonGroup = document.createElement('div');\n",
484 " buttonGroup.classList = 'mpl-button-group';\n",
485 " for (var toolbar_ind in mpl.toolbar_items) {\n",
486 " var name = mpl.toolbar_items[toolbar_ind][0];\n",
487 " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
488 " var image = mpl.toolbar_items[toolbar_ind][2];\n",
489 " var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
490 "\n",
491 " if (!name) {\n",
492 " /* Instead of a spacer, we start a new button group. */\n",
493 " if (buttonGroup.hasChildNodes()) {\n",
494 " toolbar.appendChild(buttonGroup);\n",
495 " }\n",
496 " buttonGroup = document.createElement('div');\n",
497 " buttonGroup.classList = 'mpl-button-group';\n",
498 " continue;\n",
499 " }\n",
500 "\n",
501 " var button = (fig.buttons[name] = document.createElement('button'));\n",
502 " button.classList = 'mpl-widget';\n",
503 " button.setAttribute('role', 'button');\n",
504 " button.setAttribute('aria-disabled', 'false');\n",
505 " button.addEventListener('click', on_click_closure(method_name));\n",
506 " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
507 "\n",
508 " var icon_img = document.createElement('img');\n",
509 " icon_img.src = '_images/' + image + '.png';\n",
510 " icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
511 " icon_img.alt = tooltip;\n",
512 " button.appendChild(icon_img);\n",
513 "\n",
514 " buttonGroup.appendChild(button);\n",
515 " }\n",
516 "\n",
517 " if (buttonGroup.hasChildNodes()) {\n",
518 " toolbar.appendChild(buttonGroup);\n",
519 " }\n",
520 "\n",
521 " var fmt_picker = document.createElement('select');\n",
522 " fmt_picker.classList = 'mpl-widget';\n",
523 " toolbar.appendChild(fmt_picker);\n",
524 " this.format_dropdown = fmt_picker;\n",
525 "\n",
526 " for (var ind in mpl.extensions) {\n",
527 " var fmt = mpl.extensions[ind];\n",
528 " var option = document.createElement('option');\n",
529 " option.selected = fmt === mpl.default_extension;\n",
530 " option.innerHTML = fmt;\n",
531 " fmt_picker.appendChild(option);\n",
532 " }\n",
533 "\n",
534 " var status_bar = document.createElement('span');\n",
535 " status_bar.classList = 'mpl-message';\n",
536 " toolbar.appendChild(status_bar);\n",
537 " this.message = status_bar;\n",
538 "};\n",
539 "\n",
540 "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
541 " // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
542 " // which will in turn request a refresh of the image.\n",
543 " this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
544 "};\n",
545 "\n",
546 "mpl.figure.prototype.send_message = function (type, properties) {\n",
547 " properties['type'] = type;\n",
548 " properties['figure_id'] = this.id;\n",
549 " this.ws.send(JSON.stringify(properties));\n",
550 "};\n",
551 "\n",
552 "mpl.figure.prototype.send_draw_message = function () {\n",
553 " if (!this.waiting) {\n",
554 " this.waiting = true;\n",
555 " this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
556 " }\n",
557 "};\n",
558 "\n",
559 "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
560 " var format_dropdown = fig.format_dropdown;\n",
561 " var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
562 " fig.ondownload(fig, format);\n",
563 "};\n",
564 "\n",
565 "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
566 " var size = msg['size'];\n",
567 " if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
568 " fig._resize_canvas(size[0], size[1], msg['forward']);\n",
569 " fig.send_message('refresh', {});\n",
570 " }\n",
571 "};\n",
572 "\n",
573 "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
574 " var x0 = msg['x0'] / fig.ratio;\n",
575 " var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
576 " var x1 = msg['x1'] / fig.ratio;\n",
577 " var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
578 " x0 = Math.floor(x0) + 0.5;\n",
579 " y0 = Math.floor(y0) + 0.5;\n",
580 " x1 = Math.floor(x1) + 0.5;\n",
581 " y1 = Math.floor(y1) + 0.5;\n",
582 " var min_x = Math.min(x0, x1);\n",
583 " var min_y = Math.min(y0, y1);\n",
584 " var width = Math.abs(x1 - x0);\n",
585 " var height = Math.abs(y1 - y0);\n",
586 "\n",
587 " fig.rubberband_context.clearRect(\n",
588 " 0,\n",
589 " 0,\n",
590 " fig.canvas.width / fig.ratio,\n",
591 " fig.canvas.height / fig.ratio\n",
592 " );\n",
593 "\n",
594 " fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
595 "};\n",
596 "\n",
597 "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
598 " // Updates the figure title.\n",
599 " fig.header.textContent = msg['label'];\n",
600 "};\n",
601 "\n",
602 "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
603 " var cursor = msg['cursor'];\n",
604 " switch (cursor) {\n",
605 " case 0:\n",
606 " cursor = 'pointer';\n",
607 " break;\n",
608 " case 1:\n",
609 " cursor = 'default';\n",
610 " break;\n",
611 " case 2:\n",
612 " cursor = 'crosshair';\n",
613 " break;\n",
614 " case 3:\n",
615 " cursor = 'move';\n",
616 " break;\n",
617 " }\n",
618 " fig.rubberband_canvas.style.cursor = cursor;\n",
619 "};\n",
620 "\n",
621 "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
622 " fig.message.textContent = msg['message'];\n",
623 "};\n",
624 "\n",
625 "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
626 " // Request the server to send over a new figure.\n",
627 " fig.send_draw_message();\n",
628 "};\n",
629 "\n",
630 "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
631 " fig.image_mode = msg['mode'];\n",
632 "};\n",
633 "\n",
634 "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
635 " for (var key in msg) {\n",
636 " if (!(key in fig.buttons)) {\n",
637 " continue;\n",
638 " }\n",
639 " fig.buttons[key].disabled = !msg[key];\n",
640 " fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
641 " }\n",
642 "};\n",
643 "\n",
644 "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
645 " if (msg['mode'] === 'PAN') {\n",
646 " fig.buttons['Pan'].classList.add('active');\n",
647 " fig.buttons['Zoom'].classList.remove('active');\n",
648 " } else if (msg['mode'] === 'ZOOM') {\n",
649 " fig.buttons['Pan'].classList.remove('active');\n",
650 " fig.buttons['Zoom'].classList.add('active');\n",
651 " } else {\n",
652 " fig.buttons['Pan'].classList.remove('active');\n",
653 " fig.buttons['Zoom'].classList.remove('active');\n",
654 " }\n",
655 "};\n",
656 "\n",
657 "mpl.figure.prototype.updated_canvas_event = function () {\n",
658 " // Called whenever the canvas gets updated.\n",
659 " this.send_message('ack', {});\n",
660 "};\n",
661 "\n",
662 "// A function to construct a web socket function for onmessage handling.\n",
663 "// Called in the figure constructor.\n",
664 "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
665 " return function socket_on_message(evt) {\n",
666 " if (evt.data instanceof Blob) {\n",
667 " /* FIXME: We get \"Resource interpreted as Image but\n",
668 " * transferred with MIME type text/plain:\" errors on\n",
669 " * Chrome. But how to set the MIME type? It doesn't seem\n",
670 " * to be part of the websocket stream */\n",
671 " evt.data.type = 'image/png';\n",
672 "\n",
673 " /* Free the memory for the previous frames */\n",
674 " if (fig.imageObj.src) {\n",
675 " (window.URL || window.webkitURL).revokeObjectURL(\n",
676 " fig.imageObj.src\n",
677 " );\n",
678 " }\n",
679 "\n",
680 " fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
681 " evt.data\n",
682 " );\n",
683 " fig.updated_canvas_event();\n",
684 " fig.waiting = false;\n",
685 " return;\n",
686 " } else if (\n",
687 " typeof evt.data === 'string' &&\n",
688 " evt.data.slice(0, 21) === 'data:image/png;base64'\n",
689 " ) {\n",
690 " fig.imageObj.src = evt.data;\n",
691 " fig.updated_canvas_event();\n",
692 " fig.waiting = false;\n",
693 " return;\n",
694 " }\n",
695 "\n",
696 " var msg = JSON.parse(evt.data);\n",
697 " var msg_type = msg['type'];\n",
698 "\n",
699 " // Call the \"handle_{type}\" callback, which takes\n",
700 " // the figure and JSON message as its only arguments.\n",
701 " try {\n",
702 " var callback = fig['handle_' + msg_type];\n",
703 " } catch (e) {\n",
704 " console.log(\n",
705 " \"No handler for the '\" + msg_type + \"' message type: \",\n",
706 " msg\n",
707 " );\n",
708 " return;\n",
709 " }\n",
710 "\n",
711 " if (callback) {\n",
712 " try {\n",
713 " // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
714 " callback(fig, msg);\n",
715 " } catch (e) {\n",
716 " console.log(\n",
717 " \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
718 " e,\n",
719 " e.stack,\n",
720 " msg\n",
721 " );\n",
722 " }\n",
723 " }\n",
724 " };\n",
725 "};\n",
726 "\n",
727 "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
728 "mpl.findpos = function (e) {\n",
729 " //this section is from http://www.quirksmode.org/js/events_properties.html\n",
730 " var targ;\n",
731 " if (!e) {\n",
732 " e = window.event;\n",
733 " }\n",
734 " if (e.target) {\n",
735 " targ = e.target;\n",
736 " } else if (e.srcElement) {\n",
737 " targ = e.srcElement;\n",
738 " }\n",
739 " if (targ.nodeType === 3) {\n",
740 " // defeat Safari bug\n",
741 " targ = targ.parentNode;\n",
742 " }\n",
743 "\n",
744 " // pageX,Y are the mouse positions relative to the document\n",
745 " var boundingRect = targ.getBoundingClientRect();\n",
746 " var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
747 " var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
748 "\n",
749 " return { x: x, y: y };\n",
750 "};\n",
751 "\n",
752 "/*\n",
753 " * return a copy of an object with only non-object keys\n",
754 " * we need this to avoid circular references\n",
755 " * http://stackoverflow.com/a/24161582/3208463\n",
756 " */\n",
757 "function simpleKeys(original) {\n",
758 " return Object.keys(original).reduce(function (obj, key) {\n",
759 " if (typeof original[key] !== 'object') {\n",
760 " obj[key] = original[key];\n",
761 " }\n",
762 " return obj;\n",
763 " }, {});\n",
764 "}\n",
765 "\n",
766 "mpl.figure.prototype.mouse_event = function (event, name) {\n",
767 " var canvas_pos = mpl.findpos(event);\n",
768 "\n",
769 " if (name === 'button_press') {\n",
770 " this.canvas.focus();\n",
771 " this.canvas_div.focus();\n",
772 " }\n",
773 "\n",
774 " var x = canvas_pos.x * this.ratio;\n",
775 " var y = canvas_pos.y * this.ratio;\n",
776 "\n",
777 " this.send_message(name, {\n",
778 " x: x,\n",
779 " y: y,\n",
780 " button: event.button,\n",
781 " step: event.step,\n",
782 " guiEvent: simpleKeys(event),\n",
783 " });\n",
784 "\n",
785 " /* This prevents the web browser from automatically changing to\n",
786 " * the text insertion cursor when the button is pressed. We want\n",
787 " * to control all of the cursor setting manually through the\n",
788 " * 'cursor' event from matplotlib */\n",
789 " event.preventDefault();\n",
790 " return false;\n",
791 "};\n",
792 "\n",
793 "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
794 " // Handle any extra behaviour associated with a key event\n",
795 "};\n",
796 "\n",
797 "mpl.figure.prototype.key_event = function (event, name) {\n",
798 " // Prevent repeat events\n",
799 " if (name === 'key_press') {\n",
800 " if (event.which === this._key) {\n",
801 " return;\n",
802 " } else {\n",
803 " this._key = event.which;\n",
804 " }\n",
805 " }\n",
806 " if (name === 'key_release') {\n",
807 " this._key = null;\n",
808 " }\n",
809 "\n",
810 " var value = '';\n",
811 " if (event.ctrlKey && event.which !== 17) {\n",
812 " value += 'ctrl+';\n",
813 " }\n",
814 " if (event.altKey && event.which !== 18) {\n",
815 " value += 'alt+';\n",
816 " }\n",
817 " if (event.shiftKey && event.which !== 16) {\n",
818 " value += 'shift+';\n",
819 " }\n",
820 "\n",
821 " value += 'k';\n",
822 " value += event.which.toString();\n",
823 "\n",
824 " this._key_event_extra(event, name);\n",
825 "\n",
826 " this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
827 " return false;\n",
828 "};\n",
829 "\n",
830 "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
831 " if (name === 'download') {\n",
832 " this.handle_save(this, null);\n",
833 " } else {\n",
834 " this.send_message('toolbar_button', { name: name });\n",
835 " }\n",
836 "};\n",
837 "\n",
838 "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
839 " this.message.textContent = tooltip;\n",
840 "};\n",
841 "\n",
842 "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
843 "// prettier-ignore\n",
844 "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
845 "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
846 "\n",
847 "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
848 "\n",
849 "mpl.default_extension = \"png\";/* global mpl */\n",
850 "\n",
851 "var comm_websocket_adapter = function (comm) {\n",
852 " // Create a \"websocket\"-like object which calls the given IPython comm\n",
853 " // object with the appropriate methods. Currently this is a non binary\n",
854 " // socket, so there is still some room for performance tuning.\n",
855 " var ws = {};\n",
856 "\n",
857 " ws.close = function () {\n",
858 " comm.close();\n",
859 " };\n",
860 " ws.send = function (m) {\n",
861 " //console.log('sending', m);\n",
862 " comm.send(m);\n",
863 " };\n",
864 " // Register the callback with on_msg.\n",
865 " comm.on_msg(function (msg) {\n",
866 " //console.log('receiving', msg['content']['data'], msg);\n",
867 " // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
868 " ws.onmessage(msg['content']['data']);\n",
869 " });\n",
870 " return ws;\n",
871 "};\n",
872 "\n",
873 "mpl.mpl_figure_comm = function (comm, msg) {\n",
874 " // This is the function which gets called when the mpl process\n",
875 " // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
876 "\n",
877 " var id = msg.content.data.id;\n",
878 " // Get hold of the div created by the display call when the Comm\n",
879 " // socket was opened in Python.\n",
880 " var element = document.getElementById(id);\n",
881 " var ws_proxy = comm_websocket_adapter(comm);\n",
882 "\n",
883 " function ondownload(figure, _format) {\n",
884 " window.open(figure.canvas.toDataURL());\n",
885 " }\n",
886 "\n",
887 " var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
888 "\n",
889 " // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
890 " // web socket which is closed, not our websocket->open comm proxy.\n",
891 " ws_proxy.onopen();\n",
892 "\n",
893 " fig.parent_element = element;\n",
894 " fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
895 " if (!fig.cell_info) {\n",
896 " console.error('Failed to find cell for figure', id, fig);\n",
897 " return;\n",
898 " }\n",
899 " fig.cell_info[0].output_area.element.on(\n",
900 " 'cleared',\n",
901 " { fig: fig },\n",
902 " fig._remove_fig_handler\n",
903 " );\n",
904 "};\n",
905 "\n",
906 "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
907 " var width = fig.canvas.width / fig.ratio;\n",
908 " fig.cell_info[0].output_area.element.off(\n",
909 " 'cleared',\n",
910 " fig._remove_fig_handler\n",
911 " );\n",
912 " fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
913 "\n",
914 " // Update the output cell to use the data from the current canvas.\n",
915 " fig.push_to_output();\n",
916 " var dataURL = fig.canvas.toDataURL();\n",
917 " // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
918 " // the notebook keyboard shortcuts fail.\n",
919 " IPython.keyboard_manager.enable();\n",
920 " fig.parent_element.innerHTML =\n",
921 " '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
922 " fig.close_ws(fig, msg);\n",
923 "};\n",
924 "\n",
925 "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
926 " fig.send_message('closing', msg);\n",
927 " // fig.ws.close()\n",
928 "};\n",
929 "\n",
930 "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
931 " // Turn the data on the canvas into data in the output cell.\n",
932 " var width = this.canvas.width / this.ratio;\n",
933 " var dataURL = this.canvas.toDataURL();\n",
934 " this.cell_info[1]['text/html'] =\n",
935 " '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
936 "};\n",
937 "\n",
938 "mpl.figure.prototype.updated_canvas_event = function () {\n",
939 " // Tell IPython that the notebook contents must change.\n",
940 " IPython.notebook.set_dirty(true);\n",
941 " this.send_message('ack', {});\n",
942 " var fig = this;\n",
943 " // Wait a second, then push the new image to the DOM so\n",
944 " // that it is saved nicely (might be nice to debounce this).\n",
945 " setTimeout(function () {\n",
946 " fig.push_to_output();\n",
947 " }, 1000);\n",
948 "};\n",
949 "\n",
950 "mpl.figure.prototype._init_toolbar = function () {\n",
951 " var fig = this;\n",
952 "\n",
953 " var toolbar = document.createElement('div');\n",
954 " toolbar.classList = 'btn-toolbar';\n",
955 " this.root.appendChild(toolbar);\n",
956 "\n",
957 " function on_click_closure(name) {\n",
958 " return function (_event) {\n",
959 " return fig.toolbar_button_onclick(name);\n",
960 " };\n",
961 " }\n",
962 "\n",
963 " function on_mouseover_closure(tooltip) {\n",
964 " return function (event) {\n",
965 " if (!event.currentTarget.disabled) {\n",
966 " return fig.toolbar_button_onmouseover(tooltip);\n",
967 " }\n",
968 " };\n",
969 " }\n",
970 "\n",
971 " fig.buttons = {};\n",
972 " var buttonGroup = document.createElement('div');\n",
973 " buttonGroup.classList = 'btn-group';\n",
974 " var button;\n",
975 " for (var toolbar_ind in mpl.toolbar_items) {\n",
976 " var name = mpl.toolbar_items[toolbar_ind][0];\n",
977 " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
978 " var image = mpl.toolbar_items[toolbar_ind][2];\n",
979 " var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
980 "\n",
981 " if (!name) {\n",
982 " /* Instead of a spacer, we start a new button group. */\n",
983 " if (buttonGroup.hasChildNodes()) {\n",
984 " toolbar.appendChild(buttonGroup);\n",
985 " }\n",
986 " buttonGroup = document.createElement('div');\n",
987 " buttonGroup.classList = 'btn-group';\n",
988 " continue;\n",
989 " }\n",
990 "\n",
991 " button = fig.buttons[name] = document.createElement('button');\n",
992 " button.classList = 'btn btn-default';\n",
993 " button.href = '#';\n",
994 " button.title = name;\n",
995 " button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
996 " button.addEventListener('click', on_click_closure(method_name));\n",
997 " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
998 " buttonGroup.appendChild(button);\n",
999 " }\n",
1000 "\n",
1001 " if (buttonGroup.hasChildNodes()) {\n",
1002 " toolbar.appendChild(buttonGroup);\n",
1003 " }\n",
1004 "\n",
1005 " // Add the status bar.\n",
1006 " var status_bar = document.createElement('span');\n",
1007 " status_bar.classList = 'mpl-message pull-right';\n",
1008 " toolbar.appendChild(status_bar);\n",
1009 " this.message = status_bar;\n",
1010 "\n",
1011 " // Add the close button to the window.\n",
1012 " var buttongrp = document.createElement('div');\n",
1013 " buttongrp.classList = 'btn-group inline pull-right';\n",
1014 " button = document.createElement('button');\n",
1015 " button.classList = 'btn btn-mini btn-primary';\n",
1016 " button.href = '#';\n",
1017 " button.title = 'Stop Interaction';\n",
1018 " button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
1019 " button.addEventListener('click', function (_evt) {\n",
1020 " fig.handle_close(fig, {});\n",
1021 " });\n",
1022 " button.addEventListener(\n",
1023 " 'mouseover',\n",
1024 " on_mouseover_closure('Stop Interaction')\n",
1025 " );\n",
1026 " buttongrp.appendChild(button);\n",
1027 " var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
1028 " titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
1029 "};\n",
1030 "\n",
1031 "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
1032 " var fig = event.data.fig;\n",
1033 " if (event.target !== this) {\n",
1034 " // Ignore bubbled events from children.\n",
1035 " return;\n",
1036 " }\n",
1037 " fig.close_ws(fig, {});\n",
1038 "};\n",
1039 "\n",
1040 "mpl.figure.prototype._root_extra_style = function (el) {\n",
1041 " el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
1042 "};\n",
1043 "\n",
1044 "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
1045 " // this is important to make the div 'focusable\n",
1046 " el.setAttribute('tabindex', 0);\n",
1047 " // reach out to IPython and tell the keyboard manager to turn it's self\n",
1048 " // off when our div gets focus\n",
1049 "\n",
1050 " // location in version 3\n",
1051 " if (IPython.notebook.keyboard_manager) {\n",
1052 " IPython.notebook.keyboard_manager.register_events(el);\n",
1053 " } else {\n",
1054 " // location in version 2\n",
1055 " IPython.keyboard_manager.register_events(el);\n",
1056 " }\n",
1057 "};\n",
1058 "\n",
1059 "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
1060 " var manager = IPython.notebook.keyboard_manager;\n",
1061 " if (!manager) {\n",
1062 " manager = IPython.keyboard_manager;\n",
1063 " }\n",
1064 "\n",
1065 " // Check for shift+enter\n",
1066 " if (event.shiftKey && event.which === 13) {\n",
1067 " this.canvas_div.blur();\n",
1068 " // select the cell after this one\n",
1069 " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
1070 " IPython.notebook.select(index + 1);\n",
1071 " }\n",
1072 "};\n",
1073 "\n",
1074 "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
1075 " fig.ondownload(fig, null);\n",
1076 "};\n",
1077 "\n",
1078 "mpl.find_output_cell = function (html_output) {\n",
1079 " // Return the cell and output element which can be found *uniquely* in the notebook.\n",
1080 " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
1081 " // IPython event is triggered only after the cells have been serialised, which for\n",
1082 " // our purposes (turning an active figure into a static one), is too late.\n",
1083 " var cells = IPython.notebook.get_cells();\n",
1084 " var ncells = cells.length;\n",
1085 " for (var i = 0; i < ncells; i++) {\n",
1086 " var cell = cells[i];\n",
1087 " if (cell.cell_type === 'code') {\n",
1088 " for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
1089 " var data = cell.output_area.outputs[j];\n",
1090 " if (data.data) {\n",
1091 " // IPython >= 3 moved mimebundle to data attribute of output\n",
1092 " data = data.data;\n",
1093 " }\n",
1094 " if (data['text/html'] === html_output) {\n",
1095 " return [cell, data, j];\n",
1096 " }\n",
1097 " }\n",
1098 " }\n",
1099 " }\n",
1100 "};\n",
1101 "\n",
1102 "// Register the function which deals with the matplotlib target/channel.\n",
1103 "// The kernel may be null if the page has been refreshed.\n",
1104 "if (IPython.notebook.kernel !== null) {\n",
1105 " IPython.notebook.kernel.comm_manager.register_target(\n",
1106 " 'matplotlib',\n",
1107 " mpl.mpl_figure_comm\n",
1108 " );\n",
1109 "}\n"
1110 ],
1111 "text/plain": [
1112 "<IPython.core.display.Javascript object>"
1113 ]
1114 },
1115 "metadata": {},
1116 "output_type": "display_data"
1117 },
1118 {
1119 "data": {
1120 "text/html": [
1121 "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABEwAAAImCAYAAABJvh+8AAAgAElEQVR4XuzdB3hUxdoH8P/uZpNNb6QnJBB6R+mCol5QPysoWC4iiIIXuBZEQZAmSFEQuYoKKooFGyggYhfpKCDSpEMgvZJeNlu+Z86ShVBCypazZ//nefYJJOfMvPObc5R5M2dGZTabzeBBAQpQgAIUoAAFKEABClCAAhSgAAUoYBVQMWHCu4ECFKAABShAAQpQgAIUoAAFKEABClQXYMKEdwQFKEABClCAAhSgAAUoQAEKUIACFLhIgAkT3hIUoAAFKEABClCAAhSgAAUoQAEKUIAJE94DFKAABShAAQpQgAIUoAAFKEABClCgZgHOMOEdQgEKUIACFKAABShAAQpQgAIUoAAFLhJgwoS3BAUoQAEKUIACFKAABShAAQpQgAIUYMKE9wAFKEABClCAAhSgAAUoQAEKUIACFKhZgDNMeIdQgAIUoAAFKEABClCAAhSgAAUoQIGLBJgw4S1BAQpQgAIUoAAFKEABClCAAhSgAAWYMOE9QAEKUIACFKAABShAAQpQgAIUoAAFahbgDBPeIRSgAAUoQAEKUIACFKAABShAAQpQ4CIBJkx4S1CAAhSgAAUoQAEKUIACFKAABShAASZMeA9QgAIUoAAFKEABClCAAhSgAAUoQIGaBTjDhHcIBShAAQpQgAIUoAAFKEABClCAAhS4SIAJE94SFKAABShAAQpQgAIUoAAFKEABClCACRPeAxSgAAUoQAEKUIACFKAABShAAQpQoGYBzjDhHUIBClCAAhSgAAUoQAEKUIACFKAABS4SYMKEtwQFKEABClCAAhSgAAUoQAEKUIACFGDChPcABShAAQpQgAIUoAAFKEABClCAAhSoWYAzTHiHUIACFKAABShAAQpQgAIUoAAFKECBiwSYMOEtQQEKUIACFKAABShAAQpQgAIUoAAFmDDhPUABClCAAhSgAAUoQAEKUIACFKAABWoW4AwT3iEUoAAFKEABClCAAhSgAAUoQAEKUOAiASZMeEtQgAIUoAAFKEABClCAAhSgAAUoQAEmTHgPUIACFKAABShAAQpQgAIUoAAFKECBmgU4w4R3CAUoQAEKUIACFKAABShAAQpQgAIUuEiACRPeEhSgAAUoQAEKUIACFKAABShAAQpQgAkT3gMUoAAFKEABClCAAhSgAAUoQAEKUKBmAc4w4R1CAQpQgAIUoAAFKEABClCAAhSgAAUuEmDChLcEBShAAQpQgAIUoAAFKEABClCAAhRgwoT3AAUoQAEKUIACFKAABShAAQpQgAIUqFmAM0x4h1CAAhSgAAUoQAEKUIACFKAABShAgYsEmDDhLUEBClCAAhSgAAUoQAEKUIACFKAABZgw4T1AAQpQgAIUoAAFKEABClCAAhSgAAVqFuAME94hFKAABShAAQpQgAIUoAAFKEABClDgIgEmTHhLUIACFKAABShAAQpQgAIUoAAFKEABJkx4D1CAAhSgAAUoQAEKUIACFKAABShAgZoFOMOEdwgFKEABClCAAhSgAAUoQAEKUIACFLhIgAkT3hIUoAAFKEABClCAAhSgAAUoQAEKUIAJE94DFKAABShAAQpQgAIUoAAFKEABClCgZgHOMOEdQgEKUIACFKAABShAAQpQgAIUoAAFLhJgwoS3BAUoQAEKUIACFKAABShAAQpQgAIUYMKE9wAFKEABClCAAhSgAAUoQAEKUIACFKhZgDNMeIdQgAIUoAAFKEABClCAAhSgAAUoQIGLBJgw4S1BAQpQgAIUoAAFKEABClCAAhSgAAWYMOE9QAEKUIACFKAABShAAQpQgAIUoAAFahbgDBPeIRSgAAUoQAEKUIACFKAABShAAQpQ4CIBJkx4S1CAAhSgAAUoQAEKUIACFKAABShAASZMeA9QgAIUoAAFKEABClCAAhSgAAUoQIGaBTjDhHcIBShAAQpQgAIUoAAFKEABClCAAhS4SIAJE94SFKAABShAAQpQgAIUoAAFKEABClCACRPeAxSgAAUoQAEKUIACFKAABShAAQpQoGYBzjDhHUIBClCAAhSgAAUoQAEKUIACFKAABS4SYMKEtwQFKEABClCAAhSgAAUoQAEKUIACFGDChPcABShAAQpQgAIUoAAFKEABClCAAhSoWYAzTHiHUIACFKAABShAAQpQgAIUoAAFKECBiwSYMOEtQQEKUIACFKAABShAAQpQgAIUoAAFmDDhPUABClCAAhSgAAUoQAEKUIACFKAABWoW4AwT3iEUoAAFKEABClCAAhSgAAUoQAEKUOAiASZMZH5LfPXVV/j000+xe/du5OXlITExEf/5z38watQoqNXqK0bft29fbNy48ZKfHzp0CK1atZJ5qxkeBShA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\" width=\"999.9999783255842\">"
1122 ],
1123 "text/plain": [
1124 "<IPython.core.display.HTML object>"
1125 ]
1126 },
1127 "metadata": {},
1128 "output_type": "display_data"
1129 }
1130 ],
1131 "source": [
1132 "# feel free to use the function plot_one() to replicate the figure \n",
1133 "# from the prompt once you have completed question one\n",
1134 "def plot_one(degree_predictions):\n",
1135 " import matplotlib.pyplot as plt\n",
1136 " %matplotlib notebook\n",
1137 " plt.figure(figsize=(10,5))\n",
1138 " #plt.plot(X_train, y_train, 'o', label='training data', markersize=10)\n",
1139 " #plt.plot(X_test, y_test, 'o', label='test data', markersize=10)\n",
1140 " for i,degree in enumerate([1,3,6,9]):\n",
1141 " plt.plot(np.linspace(0,10,100), degree_predictions[i], alpha=0.8, lw=2, label='degree={}'.format(degree))\n",
1142 " plt.ylim(-1,2.5)\n",
1143 " plt.legend(loc=4)\n",
1144 "\n",
1145 "plot_one(answer_one())"
1146 ]
1147 },
1148 {
1149 "cell_type": "markdown",
1150 "metadata": {},
1151 "source": [
1152 "### Question 2\n",
1153 "\n",
1154 "Write a function that fits a polynomial LinearRegression model on the training data `X_train` for degrees 0 through 9. For each model compute the $R^2$ (coefficient of determination) regression score on the training data as well as the the test data, and return both of these arrays in a tuple.\n",
1155 "\n",
1156 "*This function should return one tuple of numpy arrays `(r2_train, r2_test)`. Both arrays should have shape `(10,)`*"
1157 ]
1158 },
1159 {
1160 "cell_type": "code",
1161 "execution_count": 5,
1162 "metadata": {},
1163 "outputs": [
1164 {
1165 "data": {
1166 "text/plain": [
1167 "([0.0,\n",
1168 " 0.4292457781234663,\n",
1169 " 0.45109980444082465,\n",
1170 " 0.5871995368779851,\n",
1171 " 0.9194194471769322,\n",
1172 " 0.9757864143068231,\n",
1173 " 0.9901823324795079,\n",
1174 " 0.9935250927840474,\n",
1175 " 0.9963754538775818,\n",
1176 " 0.9980370625630276],\n",
1177 " [-0.4780864173714179,\n",
1178 " -0.45237104233936676,\n",
1179 " -0.0685698414991589,\n",
1180 " 0.005331052945726333,\n",
1181 " 0.7300494281871364,\n",
1182 " 0.8770830091760922,\n",
1183 " 0.9214093981401069,\n",
1184 " 0.9202150413074748,\n",
1185 " 0.6324794046741836,\n",
1186 " -0.6452557605818481])"
1187 ]
1188 },
1189 "execution_count": 5,
1190 "metadata": {},
1191 "output_type": "execute_result"
1192 }
1193 ],
1194 "source": [
1195 "def answer_two():\n",
1196 " from sklearn.linear_model import LinearRegression\n",
1197 " from sklearn.preprocessing import PolynomialFeatures\n",
1198 " \n",
1199 " r2_train=[]\n",
1200 " r2_test=[]\n",
1201 " for i in range(0,10):\n",
1202 " poly =PolynomialFeatures(i)\n",
1203 " x_train= poly.fit_transform(X_train.reshape(-1,1))\n",
1204 " x_test= poly.fit_transform(X_test.reshape(-1,1))\n",
1205 " clfr= LinearRegression()\n",
1206 " clfr.fit(x_train, y_train)\n",
1207 " r2_test.append( clfr.score(x_test, y_test) )\n",
1208 " r2_train.append( clfr.score(x_train, y_train))\n",
1209 " # Your code here\n",
1210 "\n",
1211 " return (r2_train, r2_test)\n",
1212 "\n",
1213 "answer_two()"
1214 ]
1215 },
1216 {
1217 "cell_type": "markdown",
1218 "metadata": {},
1219 "source": [
1220 "### Question 3\n",
1221 "\n",
1222 "Based on the $R^2$ scores from question 2 (degree levels 0 through 9), what degree level corresponds to a model that is underfitting? What degree level corresponds to a model that is overfitting? What choice of degree level would provide a model with good generalization performance on this dataset? \n",
1223 "\n",
1224 "Hint: Try plotting the $R^2$ scores from question 2 to visualize the relationship between degree level and $R^2$. Remember to comment out the import matplotlib line before submission.\n",
1225 "\n",
1226 "*This function should return one tuple with the degree values in this order: `(Underfitting, Overfitting, Good_Generalization)`. There might be multiple correct solutions, however, you only need to return one possible solution, for example, (1,2,3).* "
1227 ]
1228 },
1229 {
1230 "cell_type": "code",
1231 "execution_count": 6,
1232 "metadata": {},
1233 "outputs": [],
1234 "source": [
1235 "import matplotlib.pyplot as plt\n",
1236 "def answer_three():\n",
1237 " \n",
1238 " (result_train, result_test) = answer_two()\n",
1239 " plt.figure(figsize=(10,5))\n",
1240 " plt.plot(range(0,10,1),result_train,'r',label='training data')\n",
1241 " plt.plot(range(0,10,1),result_test,'b',label='test data')\n",
1242 " plt.xlabel('Order')\n",
1243 " plt.ylabel('Score')\n",
1244 " plt.legend()\n",
1245 " \n",
1246 " return (0,9,6)\n",
1247 "\n",
1248 "#answer_three()"
1249 ]
1250 },
1251 {
1252 "cell_type": "markdown",
1253 "metadata": {},
1254 "source": [
1255 "### Question 4\n",
1256 "\n",
1257 "Training models on high degree polynomial features can result in overly complex models that overfit, so we often use regularized versions of the model to constrain model complexity, as we saw with Ridge and Lasso linear regression.\n",
1258 "\n",
1259 "For this question, train two models: a non-regularized LinearRegression model (default parameters) and a regularized Lasso Regression model (with parameters `alpha=0.01`, `max_iter=10000`) both on polynomial features of degree 12. Return the $R^2$ score for both the LinearRegression and Lasso model's test sets.\n",
1260 "\n",
1261 "*This function should return one tuple `(LinearRegression_R2_test_score, Lasso_R2_test_score)`*"
1262 ]
1263 },
1264 {
1265 "cell_type": "code",
1266 "execution_count": 7,
1267 "metadata": {},
1268 "outputs": [
1269 {
1270 "name": "stderr",
1271 "output_type": "stream",
1272 "text": [
1273 "C:\\Users\\PC\\anaconda3\\lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:530: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Duality gap: 0.3556421695890253, tolerance: 0.0006894982540382801\n",
1274 " model = cd_fast.enet_coordinate_descent(\n"
1275 ]
1276 },
1277 {
1278 "data": {
1279 "text/plain": [
1280 "(-4.311992550801969, 0.8406625614750236)"
1281 ]
1282 },
1283 "execution_count": 7,
1284 "metadata": {},
1285 "output_type": "execute_result"
1286 }
1287 ],
1288 "source": [
1289 "def answer_four():\n",
1290 " from sklearn.preprocessing import PolynomialFeatures\n",
1291 " from sklearn.linear_model import Lasso, LinearRegression\n",
1292 " poly= PolynomialFeatures(12)\n",
1293 " x_train= poly.fit_transform(X_train.reshape(-1,1))\n",
1294 " x_test= poly.fit_transform(X_test.reshape(-1,1))\n",
1295 " \n",
1296 " clfr_L= LinearRegression()\n",
1297 " clfr_custom= Lasso(alpha=0.01, max_iter=10000)\n",
1298 " \n",
1299 " clfr_L.fit(x_train, y_train)\n",
1300 " clfr_custom.fit(x_train, y_train)\n",
1301 " \n",
1302 " return ( clfr_L.score(x_test, y_test), clfr_custom.score(x_test, y_test) )\n",
1303 "answer_four()"
1304 ]
1305 },
1306 {
1307 "cell_type": "markdown",
1308 "metadata": {},
1309 "source": [
1310 "## Part 2 - Classification\n",
1311 "\n",
1312 "Here's an application of machine learning that could save your life! For this section of the assignment we will be working with the [UCI Mushroom Data Set](http://archive.ics.uci.edu/ml/datasets/Mushroom?ref=datanews.io) stored in `readonly/mushrooms.csv`. The data will be used to train a model to predict whether or not a mushroom is poisonous. The following attributes are provided:\n",
1313 "\n",
1314 "*Attribute Information:*\n",
1315 "\n",
1316 "1. cap-shape: bell=b, conical=c, convex=x, flat=f, knobbed=k, sunken=s \n",
1317 "2. cap-surface: fibrous=f, grooves=g, scaly=y, smooth=s \n",
1318 "3. cap-color: brown=n, buff=b, cinnamon=c, gray=g, green=r, pink=p, purple=u, red=e, white=w, yellow=y \n",
1319 "4. bruises?: bruises=t, no=f \n",
1320 "5. odor: almond=a, anise=l, creosote=c, fishy=y, foul=f, musty=m, none=n, pungent=p, spicy=s \n",
1321 "6. gill-attachment: attached=a, descending=d, free=f, notched=n \n",
1322 "7. gill-spacing: close=c, crowded=w, distant=d \n",
1323 "8. gill-size: broad=b, narrow=n \n",
1324 "9. gill-color: black=k, brown=n, buff=b, chocolate=h, gray=g, green=r, orange=o, pink=p, purple=u, red=e, white=w, yellow=y \n",
1325 "10. stalk-shape: enlarging=e, tapering=t \n",
1326 "11. stalk-root: bulbous=b, club=c, cup=u, equal=e, rhizomorphs=z, rooted=r, missing=? \n",
1327 "12. stalk-surface-above-ring: fibrous=f, scaly=y, silky=k, smooth=s \n",
1328 "13. stalk-surface-below-ring: fibrous=f, scaly=y, silky=k, smooth=s \n",
1329 "14. stalk-color-above-ring: brown=n, buff=b, cinnamon=c, gray=g, orange=o, pink=p, red=e, white=w, yellow=y \n",
1330 "15. stalk-color-below-ring: brown=n, buff=b, cinnamon=c, gray=g, orange=o, pink=p, red=e, white=w, yellow=y \n",
1331 "16. veil-type: partial=p, universal=u \n",
1332 "17. veil-color: brown=n, orange=o, white=w, yellow=y \n",
1333 "18. ring-number: none=n, one=o, two=t \n",
1334 "19. ring-type: cobwebby=c, evanescent=e, flaring=f, large=l, none=n, pendant=p, sheathing=s, zone=z \n",
1335 "20. spore-print-color: black=k, brown=n, buff=b, chocolate=h, green=r, orange=o, purple=u, white=w, yellow=y \n",
1336 "21. population: abundant=a, clustered=c, numerous=n, scattered=s, several=v, solitary=y \n",
1337 "22. habitat: grasses=g, leaves=l, meadows=m, paths=p, urban=u, waste=w, woods=d\n",
1338 "\n",
1339 "<br>\n",
1340 "\n",
1341 "The data in the mushrooms dataset is currently encoded with strings. These values will need to be encoded to numeric to work with sklearn. We'll use pd.get_dummies to convert the categorical variables into indicator variables. "
1342 ]
1343 },
1344 {
1345 "cell_type": "code",
1346 "execution_count": 8,
1347 "metadata": {},
1348 "outputs": [],
1349 "source": [
1350 "import pandas as pd\n",
1351 "import numpy as np\n",
1352 "from sklearn.model_selection import train_test_split\n",
1353 "\n",
1354 "\n",
1355 "mush_df = pd.read_csv('mushrooms.csv')\n",
1356 "mush_df2 = pd.get_dummies(mush_df)\n",
1357 "\n",
1358 "X_mush = mush_df2.iloc[:,2:]\n",
1359 "y_mush = mush_df2.iloc[:,1]\n",
1360 "\n",
1361 "# use the variables X_train2, y_train2 for Question 5\n",
1362 "X_train2, X_test2, y_train2, y_test2 = train_test_split(X_mush, y_mush, random_state=0)\n",
1363 "\n",
1364 "# For performance reasons in Questions 6 and 7, we will create a smaller version of the\n",
1365 "# entire mushroom dataset for use in those questions. For simplicity we'll just re-use\n",
1366 "# the 25% test split created above as the representative subset.\n",
1367 "#\n",
1368 "# Use the variables X_subset, y_subset for Questions 6 and 7.\n",
1369 "X_subset = X_test2\n",
1370 "y_subset = y_test2"
1371 ]
1372 },
1373 {
1374 "cell_type": "code",
1375 "execution_count": null,
1376 "metadata": {},
1377 "outputs": [],
1378 "source": []
1379 },
1380 {
1381 "cell_type": "code",
1382 "execution_count": null,
1383 "metadata": {},
1384 "outputs": [],
1385 "source": []
1386 },
1387 {
1388 "cell_type": "code",
1389 "execution_count": null,
1390 "metadata": {},
1391 "outputs": [],
1392 "source": []
1393 },
1394 {
1395 "cell_type": "markdown",
1396 "metadata": {},
1397 "source": [
1398 "### Question 5\n",
1399 "\n",
1400 "Using `X_train2` and `y_train2` from the preceeding cell, train a DecisionTreeClassifier with default parameters and random_state=0. What are the 5 most important features found by the decision tree?\n",
1401 "\n",
1402 "As a reminder, the feature names are available in the `X_train2.columns` property, and the order of the features in `X_train2.columns` matches the order of the feature importance values in the classifier's `feature_importances_` property. \n",
1403 "\n",
1404 "*This function should return a list of length 5 containing the feature names in descending order of importance.*\n",
1405 "\n",
1406 "*Note: remember that you also need to set random_state in the DecisionTreeClassifier.*"
1407 ]
1408 },
1409 {
1410 "cell_type": "code",
1411 "execution_count": 9,
1412 "metadata": {},
1413 "outputs": [
1414 {
1415 "data": {
1416 "text/plain": [
1417 "['odor_n', 'stalk-root_c', 'stalk-root_r', 'spore-print-color_r', 'odor_l']"
1418 ]
1419 },
1420 "execution_count": 9,
1421 "metadata": {},
1422 "output_type": "execute_result"
1423 }
1424 ],
1425 "source": [
1426 "def answer_five():\n",
1427 " import pandas as pd\n",
1428 " from sklearn.tree import DecisionTreeClassifier\n",
1429 " clfr= DecisionTreeClassifier(random_state=0)\n",
1430 " clfr.fit(X_train2, y_train2)\n",
1431 " \n",
1432 " df= pd.DataFrame({'f':X_train2.columns, 'imp': clfr.feature_importances_}).sort_values(by='imp', ascending=False)['f']\n",
1433 " \n",
1434 " return df.head(5).to_list()\n",
1435 "\n",
1436 "answer_five()"
1437 ]
1438 },
1439 {
1440 "cell_type": "markdown",
1441 "metadata": {},
1442 "source": [
1443 "### Question 6\n",
1444 "\n",
1445 "For this question, we're going to use the `validation_curve` function in `sklearn.model_selection` to determine training and test scores for a Support Vector Classifier (`SVC`) with varying parameter values. Recall that the validation_curve function, in addition to taking an initialized unfitted classifier object, takes a dataset as input and does its own internal train-test splits to compute results.\n",
1446 "\n",
1447 "**Because creating a validation curve requires fitting multiple models, for performance reasons this question will use just a subset of the original mushroom dataset: please use the variables X_subset and y_subset as input to the validation curve function (instead of X_mush and y_mush) to reduce computation time.**\n",
1448 "\n",
1449 "The initialized unfitted classifier object we'll be using is a Support Vector Classifier with radial basis kernel. So your first step is to create an `SVC` object with default parameters (i.e. `kernel='rbf', C=1`) and `random_state=0`. Recall that the kernel width of the RBF kernel is controlled using the `gamma` parameter. \n",
1450 "\n",
1451 "With this classifier, and the dataset in X_subset, y_subset, explore the effect of `gamma` on classifier accuracy by using the `validation_curve` function to find the training and test scores for 6 values of `gamma` from `0.0001` to `10` (i.e. `np.logspace(-4,1,6)`). Recall that you can specify what scoring metric you want validation_curve to use by setting the \"scoring\" parameter. In this case, we want to use \"accuracy\" as the scoring metric.\n",
1452 "\n",
1453 "For each level of `gamma`, `validation_curve` will fit 3 models on different subsets of the data, returning two 6x3 (6 levels of gamma x 3 fits per level) arrays of the scores for the training and test sets.\n",
1454 "\n",
1455 "Find the mean score across the three models for each level of `gamma` for both arrays, creating two arrays of length 6, and return a tuple with the two arrays.\n",
1456 "\n",
1457 "e.g.\n",
1458 "\n",
1459 "if one of your array of scores is\n",
1460 "\n",
1461 " array([[ 0.5, 0.4, 0.6],\n",
1462 " [ 0.7, 0.8, 0.7],\n",
1463 " [ 0.9, 0.8, 0.8],\n",
1464 " [ 0.8, 0.7, 0.8],\n",
1465 " [ 0.7, 0.6, 0.6],\n",
1466 " [ 0.4, 0.6, 0.5]])\n",
1467 " \n",
1468 "it should then become\n",
1469 "\n",
1470 " array([ 0.5, 0.73333333, 0.83333333, 0.76666667, 0.63333333, 0.5])\n",
1471 "\n",
1472 "*This function should return one tuple of numpy arrays `(training_scores, test_scores)` where each array in the tuple has shape `(6,)`.*"
1473 ]
1474 },
1475 {
1476 "cell_type": "code",
1477 "execution_count": 17,
1478 "metadata": {},
1479 "outputs": [
1480 {
1481 "name": "stdout",
1482 "output_type": "stream",
1483 "text": [
1484 "(6, 5)\n"
1485 ]
1486 },
1487 {
1488 "data": {
1489 "text/plain": [
1490 "(array([0.83370474, 0.93943926, 0.99101417, 1. , 1. ,\n",
1491 " 1. ]),\n",
1492 " array([0.83160092, 0.93747958, 0.9901502 , 1. , 0.99852459,\n",
1493 " 0.52240229]))"
1494 ]
1495 },
1496 "execution_count": 17,
1497 "metadata": {},
1498 "output_type": "execute_result"
1499 }
1500 ],
1501 "source": [
1502 "def answer_six():\n",
1503 " from sklearn.svm import SVC\n",
1504 " from sklearn.model_selection import validation_curve\n",
1505 "\n",
1506 " \n",
1507 " param_range = np.logspace(-4,1,6)\n",
1508 " clfr=SVC(random_state=0)\n",
1509 " train_scores, test_scores = validation_curve(clfr,X_subset,y_subset,param_name='gamma',param_range=param_range)\n",
1510 " print(train_scores.shape)\n",
1511 " return np.array(list(map(np.mean,train_scores))),np.array(list(map(np.mean,test_scores)))\n",
1512 "\n",
1513 "answer_six()"
1514 ]
1515 },
1516 {
1517 "cell_type": "code",
1518 "execution_count": null,
1519 "metadata": {},
1520 "outputs": [],
1521 "source": []
1522 },
1523 {
1524 "cell_type": "code",
1525 "execution_count": 12,
1526 "metadata": {},
1527 "outputs": [
1528 {
1529 "data": {
1530 "text/plain": [
1531 "2.0"
1532 ]
1533 },
1534 "execution_count": 12,
1535 "metadata": {},
1536 "output_type": "execute_result"
1537 }
1538 ],
1539 "source": [
1540 "np.mean([1,2,3])"
1541 ]
1542 },
1543 {
1544 "cell_type": "markdown",
1545 "metadata": {},
1546 "source": [
1547 "### Question 7\n",
1548 "\n",
1549 "Based on the scores from question 6, what gamma value corresponds to a model that is underfitting (and has the worst test set accuracy)? What gamma value corresponds to a model that is overfitting (and has the worst test set accuracy)? What choice of gamma would be the best choice for a model with good generalization performance on this dataset (high accuracy on both training and test set)? \n",
1550 "\n",
1551 "Hint: Try plotting the scores from question 6 to visualize the relationship between gamma and accuracy. Remember to comment out the import matplotlib line before submission.\n",
1552 "\n",
1553 "*This function should return one tuple with the degree values in this order: `(Underfitting, Overfitting, Good_Generalization)` Please note there is only one correct solution.*"
1554 ]
1555 },
1556 {
1557 "cell_type": "code",
1558 "execution_count": 11,
1559 "metadata": {},
1560 "outputs": [],
1561 "source": [
1562 "def answer_seven():\n",
1563 " \n",
1564 " # Your code here\n",
1565 " \n",
1566 " return # Return your answer"
1567 ]
1568 }
1569 ],
1570 "metadata": {
1571 "coursera": {
1572 "course_slug": "python-machine-learning",
1573 "graded_item_id": "eWYHL",
1574 "launcher_item_id": "BAqef",
1575 "part_id": "fXXRp"
1576 },
1577 "kernelspec": {
1578 "display_name": "Python 3",
1579 "language": "python",
1580 "name": "python3"
1581 },
1582 "language_info": {
1583 "codemirror_mode": {
1584 "name": "ipython",
1585 "version": 3
1586 },
1587 "file_extension": ".py",
1588 "mimetype": "text/x-python",
1589 "name": "python",
1590 "nbconvert_exporter": "python",
1591 "pygments_lexer": "ipython3",
1592 "version": "3.8.8"
1593 }
1594 },
1595 "nbformat": 4,
1596 "nbformat_minor": 2
1597 }
1598