{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Programming Session Week 3\n", "\n", "In this session we will continue to work on regression and we will extend our toolbox to include an additional set of classification methods. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 1\n", "\n", "#### Exercise 1.a\n", "\n", "The model below was generated using a degree 2 polynomial. Study the evolution of the MSE for various degrees from 1 to 5 and by generating your training and test sets as noisy samples from the true quadratic function. Use $K$-fold cross validation to retrieve the correct model complexity out the possible maximum degrees." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "\n", "\n", "x_true = np.linspace(0,1,100)\n", "x_sample = np.linspace(0,1,10)\n", "t_true = 0.1 + 0.1*x_true + x_true**2\n", "t_sample = 0.1 + 0.1*x_sample + x_sample**2\n", "t_sample = t_sample + np.random.normal(0,.1,len(x_sample))\n", "\n", "plt.plot(x_true, t_true)\n", "plt.scatter(x_sample, t_sample, c='r')\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 2\n", "\n", "#### Exercise 2.a\n", "\n", "Using the OLS loss, try to learn a classifier for the dataset given below. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "\n", "import scipy.io\n", "import matplotlib.pyplot as plt\n", "\n", "data_class1 = scipy.io.loadmat('points_class1_Lab2_Ex1.mat')['points_class1_Lab2_Ex1']\n", "data_class2 = scipy.io.loadmat('points_class2_Lab2_Ex1.mat')['points_class2_Lab2_Ex1']\n", "\n", "plt.scatter(data_class1[:,0], data_class1[:,1])\n", "plt.scatter(data_class2[:,0], data_class2[:,1])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Exercise 2.b\n", "\n", "How could you extend your classifier to the dataset shown below." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "\n", "import scipy.io\n", "import matplotlib.pyplot as plt\n", "\n", "data_class1 = scipy.io.loadmat('points_class1_Lab2_Ex2.mat')['points_class1_Lab2_Ex2']\n", "data_class2 = scipy.io.loadmat('points_class2_Lab2_Ex2.mat')['points_class2_Lab2_Ex2']\n", "\n", "plt.scatter(data_class1[:,0], data_class1[:,1])\n", "plt.scatter(data_class2[:,0], data_class2[:,1])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Exercise 2.c\n", "\n", "We now want to use the OLS to learn a multi-class classifier for the dataset below. Start by coding the one-vs-one and one-vs-rest classifiers. Then use the a single \n", " discriminant function with one hot encoding of the classes.\n", " " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import scipy.io\n", "import matplotlib.pyplot as plt\n", "\n", "data_class1 = scipy.io.loadmat('points_class1_Lab2_Ex3.mat')['points_class1_Lab2_Ex3']\n", "data_class2 = scipy.io.loadmat('points_class2_Lab2_Ex3.mat')['points_class2_Lab2_Ex3']\n", "data_class3 = scipy.io.loadmat('points_class3_Lab2_Ex3.mat')['points_class3_Lab2_Ex3']\n", "data_class4 = scipy.io.loadmat('points_class4_Lab2_Ex3.mat')['points_class4_Lab2_Ex3']\n", "data_class5 = scipy.io.loadmat('points_class5_Lab2_Ex3.mat')['points_class5_Lab2_Ex3']\n", "\n", "\n", "\n", "plt.scatter(data_class1[:,0], data_class1[:,1])\n", "plt.scatter(data_class2[:,0], data_class2[:,1])\n", "plt.scatter(data_class3[:,0], data_class3[:,1])\n", "plt.scatter(data_class4[:,0], data_class4[:,1])\n", "plt.scatter(data_class5[:,0], data_class5[:,1])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 3. \n", "\n", "#### Exercise 3.a \n", "\n", "Use the OLS classifier from scikit-learn to classify the flowers from the [iris dataset](https://www.kaggle.com/uciml/iris) into the 3 species. Don't forget to split your dataset into a training and a test part so that you evaluate it properly once it has been trained (you can rely on scikit learn's train_test_split function)\n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.model_selection import train_test_split\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Exercise 3.a \n", "Do the same with the [https://www.kaggle.com/c/titanic](titanic dataset) and try to learn a model that can efficiently predict which passengers are going to survive the wreck. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.model_selection import train_test_split\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 4. \n", "\n", "#### Exercise 4.a \n", "\n", "In this 4th exercise, we will study the robustness of the OLS approach for classification. Consider the dataset below. \n", "\n", "- Start by learning a simple binary OLS classifier on that dataset (you can use the linear_regression model from scikit-learn). \n", "- Then try to force misclassification by adding a blue point on the far left of the dataset. \n", "- Once your updated dataset can be used to highlight misclassification by the OLS, replace the OLS classifier with the logistic regression classifier from scikit learn (on the same dataset). What do you notice ?\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "\n", "import scipy.io\n", "import matplotlib.pyplot as plt\n", "\n", "data_class1 = scipy.io.loadmat('points_class1_Lab2_Ex4.mat')['points_class1_Lab2_Ex4']\n", "data_class2 = scipy.io.loadmat('points_class2_Lab2_Ex4.mat')['points_class2_Lab2_Ex4']\n", "\n", "plt.scatter(data_class1[:,0], data_class1[:,1])\n", "plt.scatter(data_class2[:,0], data_class2[:,1])\n", "plt.show()" ] } ], "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.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }