{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "EE-311\n", "======\n", "\n", "Lab 4: support vector machines - homework notebook\n", "--------------------------------------------------\n", "\n", "created by François Marelli on 12.03.2020\n", "\n", "# Homework\n", "\n", "The file `homework.py` contains the homework of the week. It contains empty functions that must be completed according to the instructions.\n", "\n", "When the homework is completed, it must be submitted on Moodle for grading.\n", "\n", "**Do not change the function definitions in the file!**\n", "\n", "## SVM, space transformations and kernels\n", "\n", "The first task is to compute the accuracy of a model given a set of predicions and the corresponding grouhd truth labels.\n", "\n", "The second task is to implement the decision function of a SVM defined by its parameters $b$ and $w$.\n", "\n", "The third task is to write a space transformation that makes the homework dataset (see below) linearly separable.\n", "\n", "**Do not forget to import the libraries you are using!**\n", "\n", "## The data used in the homework\n", "\n", "This cell loads and plots the data used for the homework.\n", "\n", "The next cell allows you to test your transformation function and plot its outputs.\n", "\n", "After transformation, your data should be linearly separable so that a linear SVM can reach 100% accuracy on it." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "data = np.load('data.npz')\n", "\n", "data_X = data['X']\n", "data_y = data['y']\n", "\n", "plt.figure(figsize=(7, 7))\n", "plt.grid()\n", "\n", "for cls in range(2):\n", " plt.scatter(data_X[data_y==cls,0], data_X[data_y==cls,1], label='y={}'.format(cls))\n", " \n", "plt.legend(loc=2, framealpha=1)\n", "plt.axis('square')\n", "plt.title('Original data')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import homework\n", "import importlib\n", "importlib.reload(homework)\n", "\n", "x_transformed = homework.transform_space(data_X)\n", "\n", "plt.figure(figsize=(7, 7))\n", "plt.grid()\n", "\n", "for cls in range(2):\n", " plt.scatter(x_transformed[data_y==cls,0], x_transformed[data_y==cls,1], label='y={}'.format(cls))\n", " \n", "plt.legend(loc=2, framealpha=1)\n", "plt.axis('square')\n", "plt.title('Transformed data')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test cell\n", "\n", "Run this cell to check whether your homework passes the test." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import unittest\n", "import testing\n", "\n", "import importlib\n", "importlib.reload(testing)\n", "\n", "unittest.main(module=testing, argv=['first-arg-is-ignored'], exit=False)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.10" } }, "nbformat": 4, "nbformat_minor": 4 }