{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction\n", "\n", "In this introduction to our `sklearn` tutorial, we will investigate the basic tools that will be needed for the more machine-learning oriented sections that will follow.\n", "\n", "## NumPy\n", "\n", "### Basics of `ndarray` type\n", "\n", "First, we will present the `numpy` library and its `ndarray` object.\n", "\n", "Let us first import this library. As it will be used very often in our code, it is usual to rename it `np` while importing:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then, we can create a first array and manipulate it:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0 1]\n", " [2 3]\n", " [4 5]]\n" ] } ], "source": [ "arr = np.array([[0, 1], [2, 3], [4, 5]])\n", "print(arr)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0. 2.5]\n", " [ 5. 7.5]\n", " [ 10. 12.5]]\n" ] } ], "source": [ "print(2.5 * arr)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0 2]\n", " [ 4 6]\n", " [ 8 10]]\n" ] } ], "source": [ "print(arr + arr)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "int64\n" ] } ], "source": [ "print(arr.dtype) # Data type" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(3, 2)\n" ] } ], "source": [ "print(arr.shape) # 3 rows, 2 columns" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n" ] } ], "source": [ "print(arr.ndim) # Our array is a matrix and hence has 2 dimensions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this tutorial, we will always consider vectors (`ndim = 1`) or matrices (`ndim = 2`), but `numpy` can be used to manipulate arrays with any number of dimensions.\n", "\n", "### Element-wise operations _vs_ matrix products\n", "\n", "One important thing to understand with `numpy` is that the usual product between two arrays is an element-wise product, not matrix/vector product:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0 1]\n", " [2 3]]\n", "[[1 0]\n", " [0 1]]\n" ] } ], "source": [ "A = np.array([[0, 1], [2, 3]])\n", "I = np.array([[1, 0], [0, 1]])\n", "print(A)\n", "print(I)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0 0]\n", " [0 3]]\n", "[[0 1]\n", " [2 3]]\n" ] } ], "source": [ "print(A * I)\n", "print(np.dot(A, I)) # np.dot is the matrix product" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, in `numpy`, `A ** 2` is the element-wise square of matrix `A`:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0 1]\n", " [4 9]]\n", "[[ 2 3]\n", " [ 6 11]]\n" ] } ], "source": [ "print(A ** 2)\n", "print(np.dot(A, A))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Quite easily, we can transpose an array:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0 2 4]\n", " [1 3 5]]\n" ] } ], "source": [ "print(arr.T)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Building usual arrays\n", "\n", "`numpy` also offers routines to build typical matrices / vectors:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0. 0. 0.]\n", " [ 0. 0. 0.]]\n" ] } ], "source": [ "print(np.zeros((2, 3)))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1. 1. 1.]\n", " [ 1. 1. 1.]]\n" ] } ], "source": [ "print(np.ones((2, 3)))" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1. 0. 0.]\n", " [ 0. 1. 0.]\n", " [ 0. 0. 1.]]\n" ] } ], "source": [ "print(np.eye(3))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 2 3 4 5 6 7 8 9]\n" ] } ], "source": [ "print(np.arange(10)) # Returns a vector (ie. an array made of only one dimension)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. ]\n" ] } ], "source": [ "print(np.linspace(0, 1, 11)) # Vector of 11 equally spaced values between 0 and 1" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 1.76405235 0.40015721 0.97873798 2.2408932 1.86755799]\n", " [-0.97727788 0.95008842 -0.15135721 -0.10321885 0.4105985 ]]\n", "[[ 0.79172504 0.52889492 0.56804456 0.92559664 0.07103606]\n", " [ 0.0871293 0.0202184 0.83261985 0.77815675 0.87001215]]\n" ] } ], "source": [ "np.random.seed(0) # Set the seed of the random generator to get reproducible results\n", "print(np.random.randn(2, 5)) # randn returns samples drawn from N(0,1)\n", "print(np.random.rand(2, 5)) # rand returns samples drawn uniformly in [0,1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Array slicing and boolean indexing\n", "\n", "As for lists, `numpy` arrays can be accessed by slice:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0 1 2 3 4]\n", " [ 5 6 7 8 9]\n", " [10 11 12 13 14]\n", " [15 16 17 18 19]]\n" ] } ], "source": [ "M = np.array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]])\n", "print(M)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[3 4]\n", " [8 9]]\n" ] } ], "source": [ "print(M[:2, 3:]) # Row indices up to 2 (excluded), Column indices strating from 3 (included)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 5 6 7 8 9]\n", " [10 11 12 13 14]]\n" ] } ], "source": [ "print(M[1:3, :]) # Row indices 1 (included) to 3 (excluded), All columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another way to get a subset of a matrix is to use boolean indexing.\n", "\n", "Let us assume, for example, that we want to keep only positive components in a vector v:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[10 5 -1 4 0 3]\n", "[10 5 4 3]\n" ] } ], "source": [ "v = np.array([10, 5, -1, 4, 0, 3])\n", "print(v)\n", "v2 = v[v > 0] # Keep only strictly positive components from v\n", "print(v2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Operations on arrays\n", "\n", "`numpy` offers facilities to compute basic statistics from arrays (sum of their elements, minimum/maximum values, mean, standard deviation, ...). We present some of them in the following:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0 1 2 3 4]\n", " [ 5 6 7 8 9]\n", " [10 11 12 13 14]\n", " [15 16 17 18 19]]\n" ] } ], "source": [ "print(M)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "19\n" ] } ], "source": [ "print(np.max(M)) # Could also be written M.max()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n" ] } ], "source": [ "print(np.min(M)) # Could also be written M.min()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "9.5\n" ] } ], "source": [ "print(np.mean(M)) # Could also be written M.mean()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5.76628129734\n" ] } ], "source": [ "print(np.std(M)) # Could also be written M.std()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "49.6990945592\n" ] } ], "source": [ "print(np.linalg.norm(M)) # L2-norm by default" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "190\n" ] } ], "source": [ "print(np.sum(M)) # Could also be written M.sum()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[30 34 38 42 46]\n" ] } ], "source": [ "print(np.sum(M, axis=0)) # Column marginals, could also be written M.sum(axis=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The latter can also be used on binary vectors, in which cases it corresponds to the number of `True` entries in the array: " ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4\n" ] } ], "source": [ "v = np.array([10, 5, -1, 4, 0, 3])\n", "print(np.sum(v > 0))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Element-wise operations\n", "\n", "`numpy` also offers many vectorized versions of standard mathematical operations. For these functions, element-wise operations are performed:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0 1 2 3 4]\n", " [ 5 6 7 8 9]\n", " [10 11 12 13 14]\n", " [15 16 17 18 19]]\n", "[[ 0. 1. 1.41421356 1.73205081 2. ]\n", " [ 2.23606798 2.44948974 2.64575131 2.82842712 3. ]\n", " [ 3.16227766 3.31662479 3.46410162 3.60555128 3.74165739]\n", " [ 3.87298335 4. 4.12310563 4.24264069 4.35889894]]\n" ] } ], "source": [ "print(M)\n", "print(np.sqrt(M))" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 2.20264658e+04 1.48413159e+02 3.67879441e-01 5.45981500e+01\n", " 1.00000000e+00 2.00855369e+01]\n" ] } ], "source": [ "print(np.exp(v))" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[10 5 1 4 0 3]\n" ] } ], "source": [ "print(np.abs(v))" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-0.83907153 0.28366219 0.54030231 -0.65364362 1. -0.9899925 ]\n" ] } ], "source": [ "print(np.cos(v))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Concatenating and reshaping arrays\n", "\n", "We can get a reshaped version of an array, as soon as the number of elements is unchanged:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[10 5]\n", " [-1 4]\n", " [ 0 3]]\n" ] } ], "source": [ "print(v.reshape((3, 2)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that this does not change the shape of `v` but rather returns a new array with the required shape.\n", "\n", "One can also concatenate several arrays to create new ones. There exists two modes of concatenation:\n", "* horizontal concatenation stacks columns;\n", "* vertical concatenation stacks rows.\n", "\n", "Of course, these operations require that corresponding dimensions match." ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0. 0. 0. 1. 1. 1. 1. 1.]\n", " [ 0. 0. 0. 1. 1. 1. 1. 1.]]\n" ] } ], "source": [ "print(np.hstack((np.zeros((2, 3)), np.ones((2, 5))))) # Same number of rows" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 0.]\n", " [ 1. 1. 1. 1. 1.]\n", " [ 1. 1. 1. 1. 1.]\n", " [ 1. 1. 1. 1. 1.]]\n" ] } ], "source": [ "print(np.vstack((np.zeros((2, 5)), np.ones((3, 5))))) # Same number of columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting with `matplotlib`\n", "\n", "`matplotlib` is a library dedicated to plotting data. It features a huge number of plotting facilities. Here, we will only detail a few functions that will be used later in this tutorial.\n", "\n", "### Scatter plots" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline \n", "# You don't need to write the previous line in your scripts, it just means\n", "# \"Render matplotlib figures in the notebook\"\n", "import matplotlib.pyplot as plt\n", "\n", "X = np.random.randn(100, 2)\n", "y = np.array([0] * 50 + [1] * 50)\n", "\n", "plt.scatter(X[:, 0], X[:, 1]) # Takes 2 vectors as inputs: x-coordinates and y-coordinates\n", "\n", "# NB: if you are coding in a standard Python script (ie. not a notebook as this one),\n", "# you will have to enter the following command for the plot to show up in a new window:\n", "# plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You might want to draw larger dots:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n/kJ5dgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(X[:, 0], X[:, 1], s=100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You might also want to change the color of the dots or use different colors depending on the class label of each data point:" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(X[:, 0], X[:, 1], s=100, c=\"r\") # \"r\" means red" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(X[:, 0], X[:, 1], s=100, c=y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You could also ask for unfilled dots, somewhat transparent dots, or another shape (_ie._ not circles):" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n7pSVldHevXtp6tSpMuWmT59OoaGh9WTVl0tto1CuAFAC0AFAx/8dkXVl3OeEk5MT3bt3j1JSUqTK\nAKDw8HAaPHhwnfXr6OhIJ06ckClTXFxM586doy5dulTZLhQKqWnTpnL7atq0KZWVlSlkl66uLiUn\nJxMRUV5eHkVERFBAQIDETSQ9PZ0AUPPmzWnx4sV0//59+vfffxXSXxUAaMmSJdSxY0cqKCggT09P\nmjx5Mj1+/Jjatm1LW7durbHuL4W8vDxisVhkaGgoU65du3b09OnTerLqy4XZiVlPqKur05QpU2jW\nrFlSndz27dtJJBJR9+7d66zf77//np48eUJRUVFSZYKCgqhz585kZmZWZbuJiQm9fPmS0tPTZfZ1\n5coVsrS0VMiuMWPGUEhICBERRUZGkqOjI+nq6krI7Nixg0aMGEHKysqkoqJCo0aNosOHDyukvypW\nrFhBJ06coHv37tGmTZuof//+5O7uTtu3b6eEhATy9/ensLCwGuv/EmjWrBkVFxdTSUmJTLmcnBxq\n3rx5PVn1BSNvjqW2BzFz4GJKS0vh5uYGZ2dnREVFiRc0k5OT4e3tDSMjI5nRIjXl/Pnz4PP5OHDg\nAMrKysTni4qKsG7dOujr6yMlJUWmjsmTJ2PRokVS24uLi2FmZlZlVElVZGdnQ19fH/v378e2bdsw\nadIkifbY2FjweDzcuXNHfM7f3x/e3t4K6a/gwYMHmDFjBthsNogI6urqGDdunMT8ewXXr1+HkZER\nhEJhtfr40nBxcUF4eLhMmTlz5sDX17eeLPo8ofoKI5TZAePAJXj79i0CAwPRrl07cDgc6Onpgcfj\nwcfHBy9evPho/cbExMDW1hYmJiYYPXo0fvjhB3C5XLi5ucl13gCQmpoKXV1dhIeHV4qkKSgogLu7\nO3744Qe5UTbvk5iYCAMDAzg7O8PGxgYvXrzAzZs3MWPGDPB4vEpRDp6enli1apXC+s+cOQMej4cF\nCxZg9erVGDRoEDIyMrB69WoIBAJERERUuubbb7/FqVOnFO7jS+T06dOwsLBAVlZWle23b98Gl8tV\n6O+KQTqMA/+EEYlEyMjIQFpaWr1ufLh58yb27NmDiIiIav+DJSUloXXr1ujYsSM2bNiAXbt2Ydas\nWeByuRg/fjxKSkqqbU92djbWrFkDFRUV8Hg8tGnTBosWLZKINQf+P579yZMnCul9+vQpeDweYmJi\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(X[:, 0], X[:, 1], s=100, facecolors=\"none\")" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(X[:, 0], X[:, 1], s=100, alpha=0.5) # alpha should be beetwen 0 and 1" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAEACAYAAACqOy3+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAE2lJREFUeJzt3X+IZWd9x/HPJ9kNKpmpO80fW01k/0lra0PSICL0h7fY\nwEZaon+ICJUa6T+VVilaNAk0A0W0DaUi/cc/1KZKtBBLMBhql7DXNiih6m4bs5tmFaRRMGI3ZDeE\nkmz22z/unZk7O/fHOff8fJ7zfsFlZ3bOnPOcc2e+85zv832e44gQACA9V3XdAADAegjgAJAoAjgA\nJIoADgCJIoADQKII4ACQqEoB3ParbD9u+7TtM7Y/WVfDAADLuWoduO3XRMSLtg9JekzSRyPisVpa\nBwBYqHIKJSJenH54jaSrJZ2vuk8AwGqVA7jtq2yflvSspJMRcaZ6swAAq9TRA78cEbdIul7S79ge\nVW4VAGClQ3XtKCKet/11SW+WNN75f9sstgIAa4gIL/t61SqU62y/dvrxqyXdJunUnEZk+7r33ns7\nbwPnx7lxfvm9iqjaA/8lSffbvkqTPwZfjIhHK+4TAFBApQAeEU9IurWmtgAASmAmZkWj0ajrJjQq\n5/PL+dwkzm8IKk/kWXkAO5o+BgDkxraiyUFMAEB3COAAkCgCOAAkigAOAIkigANAogjgAJAoAjgA\nJIoADgCJIoADQKII4ACQKAI4ACSKAA4AiSKAA0CiCOAAkCgCOAAkigAOAIkigANAogjgAJAoAjgA\nJIoADgCJIoADQKII4ACQKAI4ACSKAA4AiSKAA0CiCOAAkKhKAdz2DbZP2n7S9vdtf6iuhgEAlnNE\nrP/N9lFJRyPitO1rJX1X0jsj4uzMNlHlGAAwRLYVEV62TaUeeET8NCJOTz9+QdJZSa+rss+cbW5u\nyfbK1+bmVhbHTbVdQCoq9cD37cg+Jumbkt40DeY7/08PfMq2pCLXwqrzmtVx3M3NLV28+NzKPWxs\nHNGFC+dbaxeQq8Z74DMHulbSg5I+PBu8kY9J8I6VryJBHmnjzqk/DlXdge3Dkr4q6UsR8dC8bba3\nt3c/Ho1GGo1GVQ+LgZn01sv18NGMvT/mq7Zb2nnEFcbjscbjcanvqTqIaUn3S/rfiPjzBduQQplK\nOYXSRNvL7HNvO9IpXSP11Y42Uii/KekPJf2u7VPT1/GK+wQAFFDbIObCA9AD30UPfP191tEDb2Ig\ndojogbejSA+cAN4iAvj6+6wjgBN46sF1bEdrVShAH11ZLTHhOS+qJZCmylUoQF8VrZaYBHEgPfTA\nW7SxcUTze4D7X5Pt0j9uXe2S2m0XkApy4Cik6QHA/uTYyx1jiMiBt6NIDpwUCgqhKgM7NjaOFJqk\n0/Yd3RARwNELBIV08Me8P0ihIFukUJAyygjRChY3ArpBCgWV5bG40V7bSNMgFfTAAUkRsfsix9s9\n7uqKIYAjW32tf89JU4GW9eeLYRATlVEXPFxNvff8TDGICQBZI4ADQKII4ACyMMSBTwI4UNAQA0RK\nhjjwySAmKhvKgNNQzrOMPg1i5vb+MIiJVlCuB3SDmZiojIkvQDfogaNXyDO3p8/Xmru6YsiBo1f6\nnMfsc9vWUcf5NP2gjzJyfH94oAOAxpA+6xYpFABIFAEcC/U5RwqAFAqWyGOdbwzFEB/LRwAfsKID\nUJgYYoBIyRDz8VShDNjqUfv2R/VzqyToM651vzETEwAyVjmA2/687WdtP1FHg7A+Bh3rw7VECuro\ngX9B0vEa9oOKcliNrS8z8HK4lqv05Vp3JYc/0rXkwG0fk/RwRNw052vkwFtSNqfZxxx4XzSZH+7T\n7MU+afu69H0MgJmYWGjyw4suUJ45H9elvFYC+Pb29u7Ho9FIo9GojcNiqdCkhw2gD8bjscbjcanv\nIYWSkf23hFuSiuRnj0hadDtabB853uo3eXvd91v3rrR9Xfr+PlBGOGjFBuGWB+jz2vkBj4iFr7aC\ndw6DTsVsaefuKO/zRFV1lBF+WdK3JP2y7Wds31m9WWhXGlUIQ6gMmRjKeaIqZmJmZP8tYfHbw9nv\n6fN71eYtb7cplH7f2jeFFMoVRyWFAgD5IoBnZP/EDFSxepLLYZGnRtcI4BnZG0wse7vXzKBZyoOO\nFy6cXzpwK10Seeq05TATNbkAnnJQ6K9mBs2GM+hYzurAUZ+Ufl/aDqir/ki3XWW1juQGMfs+8NC1\nvetTZhBThbctc03rfq/aeO+Lr5F+SNLLjbSlzvPk9yVdTKUHSio6nZtxBvRBcikUFJV+fg/AcgTw\nbO3Molz0UuX83qr8at1yGHQqYijnierIgWdmnSU5172mOU5IKXMtUjg3fl/SRQ58gPo8Yg6gXqRQ\nOpRSiReA/iGAd2h1nfSR3e0I8Otr7g8leWp0ixRKr7XzhJKNjSOF9lE+GO0MxtW933JWlwZO1j0v\nO6Gojpwxj1dDFckNYub0A5/CIODq693/AbJy1zmvFfFy+n0ZmiKDmMkF8JykEMCXt7H79hVR7jq3\n+xQiqkSwCMvJAqUtq5/X7r9d9laL5vTtw3Pz+gye54MeeIfogbdj/jlc2dMuU/td3/ms0wMvV6t+\nMFdPrz8N9MAHpJteVcozBmcrgIA00QPvUJ098In+ryjYhfnnsN7AJT1wtIUeOABkjADeoTYX9geQ\nHwJ4h1Y9EWToq9LVldeffx2B9JEDz0RTec0u86VNHnv/vovVfk8Gbc+vdbxFyj0B6NLM5+TAc8dq\nhKisuWn2fbKspnv23J9T3Xc8s/XkZQcnAQI4lmJ6dT1rnnRpc3OL9zFT5MAHqExuuR+z9ra0arB3\nWDMHD6nI2MhkuyMHUjRDH1vJCTnwTJS//W6uvryuBZT2zqn+nG0fF3kqm5sml503FrMakDIBqfyT\n15ubaBIRJQbydgYRV7chRQRwzGplIo/t47afsn3O9seq7g/rWVWSuPPqYy509YMtdl7l1usGclcp\ngNu+WtLfSzou6dckvdf2r9bRMADAclV74G+R9IOI+FFEvCzpK5LuqN4sAMAqVQP46yU9M/P5j6f/\nB2SlH9U4wH5V68ALjYxsb2/vfjwajTQajSoeFmhX0YHfKs8nHcakKSwyHo81Ho9LfU+lKhTbb5W0\nHRHHp5/fJelyRPz1zDZUofRMUyWH+ytKmqmmWLX8bjcPtminDQeO1MM2oT5tVKF8R9KNto/ZvkbS\neyR9reI+kbCyT3bvQpvpkGaPVWZCTxvtQdsqBfCIuCTpTyV9Q9IZSf8UEWfraNhQdPELVWYmXv9m\n7VVvQ9GyxTr+GJU5Vvn3+lKhfc8uglXXufOHoB+YyNOx3G6DJ+dzRGWe7D7/GjT3dPimn4Iz+z6t\nlx4q9l63eR51HBvlsBohOlIkoHo38C4evGt20BBIHYtZoXNXziKlygIohgCO3klhIBToAwI4ACSK\nAI7O2IeTqVToXzUOwCAmFmhnvexJGVy/BiL3V79Mqi0OanOdcGAReuADUbZud9164aI91Ump4Z7Z\nNnSrvRrxqrgrAD3wDBR/IELzZXmL67rnmT3Wlds3F8iLrjnS7rHKB9l17gBYbyUvTOTpWB2pimIB\ns72nvZSfvDJv+24mijQ5QaXMey0Vq8bpKpXTx0fS5YZHqg1EngG8uZmYS1vUkxmGfWkHukMAH4g8\nA/iV2xQ7dlV9CZx9aQe6w1R6ZGJxJQgwZARwVDZbOdJEUKWHCcxHAEcN9gJsv2q6gbxRB47aFa8F\n33kgAamQKlh/e7gI4Jhr3Qk50sHVBee9Jl7WpPdeb5lZlYcNpDk5pl8TjNAeqlAyUKxioVpZ3sFj\nVNtfk3XEbVdwNHEu6z8nlKqUXFBGOBBtTKo4GFD6W+bWdgBv4ngEcLTxUGP0QJGURUT0fkZcc89Z\n3NL8VEh/88dVUlh9Og80ix44CmmjB97c8xqb7ZG30eMvu74Mv3PpowcOABkjgKNxfUxRADkggKOQ\ngznZMvIpcZuXpwe6Qg4ca1mvSqJs7nrxPrvKgc9vIzlw1I8cOJCJKlUpyBcBHNmplu7pp70S0FWP\ne+t3qSjqRQDHWvrcI7yyLr55KU6/Rw7IgaOy5nLX6+2nyf12+aAFHvIwLI3mwG2/2/aTtl+xfeu6\n+wF2NLWQVJoLVB2Uy3mgPmv3wG2/UdJlSZ+V9JGI+N6C7eiBZ25IPcMhnSu61WgPPCKeioin1/1+\nAO1obo0ZdI1BTFQ23Fv7LUmHNf981ZvgOJlAtap6JY+JVkOz9JFqtk9IOjrnS3dHxMNFD7K9vb37\n8Wg00mg0KvqtSEDfVzms08bGkTmPjVudKuFRc1hlPB5rPB6X+p7KVSi2T4ocOAZobxp9v3Pi5O3T\n1OZMTLoXKKWtvCz5X+SsShXKuyR9RtJ1kp6XdCoibp+zHT1wHNBWr7DJ49ADR5N4pBp6iwDenjLX\noMpj91AvFrMCUAqVKGkhgANAogjgAJAoAjiQuT6vHDmLiqHyGMREJ4oNrG1JWp2TXTbw1uQg5ubm\nli5evCjpUqU2tiGFSpQU2tgmqlDQW8V+Wav/QhMUJlK4Dim0sU1UoWAlbluBdBHAB66rhY6K5WXb\nOk6OC21hR86dFFIoA9fn29Y+ty01KVzLFJ7I1CZSKAAkcSeSq6XLyQIoZ1KZUq1ypglMj88TPXDM\n2NKyfHTKucK28PAEtIkeOGbsBJ/leDgB0A/0wIHWbUk6lG1lxLrI05dHDxy9Nf/xZfO3S8tO+oS7\nnVnk6cujjHDg9pdYpVlu1SfFZ5iqwHaTbbnW1VBGiGztv20FkBIC+MBduHBeEbHW02jI3yIFOefW\nSaFgV5lbzRRvSdtACgV1IYUCABkjgAM1amuRLkCijBAzipbt8WOzWJFSuL2n2QPVkANHaamWZfXF\nXgDnGmIxcuBAD03SLIeUa2UE2kMPHKXRAweaRw8cADJGAAeARBHAsdKVzxQkfwv0w9o5cNv3Sfp9\nSS9J+qGkOyPi+TnbkQNPHDlvoH1N58D/VdKbIuJmSU9LuqvCvgAAJa0dwCPiRERcnn76uKTr62kS\nAKCIunLgH5D0SE37AgAUsHROtO0Tko7O+dLdEfHwdJt7JL0UEQ800D4AwAJLA3hE3Lbs67bfL+kd\nkt6+bLvt7e3dj0ejkUajUdH2AcAgjMdjjcfjUt9TpQrluKS/lfS2iPj5ku2oQkkcVShA+4pUoVQJ\n4OckXSNpZ/m1b0fEB+dsRwBPHAEcaF+jAbxEIwjgiVsngG9ubunixedWbD9Z2ImnkQMHFQngLOyM\nlYquEz4783ISvFcH/WLrjwOYhx44GkHaBaiG1QgBIGMEcABIFAEcABJFAAeARBHAASBRBHAASBQB\nHAASRQBHIyaTenjsGtAkJvIAQA8xkQcAMkYAB4BEEcABIFEEcABIFAEcABJFAAeARBHAASBRBHAA\nSBQBHAASRQAHgEQRwAEgUQRwAEgUARwAEkUAB4BEEcABIFEEcABIFAEcABK1dgC3/Ve2/9P2aduP\n2r6hzoYBAJar0gP/m4i4OSJukfSQpHtralNSxuNx101oVM7nl/O5SZzfEKwdwCPi4syn10r6efXm\npCf3H6Kczy/nc5M4vyE4VOWbbX9C0vskvSjprbW0CABQyNIeuO0Ttp+Y8/oDSYqIeyLiDZL+QdLf\ntdBeAMCUI6L6Tuw3SHokIn59zteqHwAABigivOzra6dQbN8YEeemn94h6dQ6DQAArGftHrjtByX9\niqRXJP1Q0p9ExM9qbBsAYIlaUigAgPa1MhMz50k/tu+zfXZ6fv9s+xe6blOdbL/b9pO2X7F9a9ft\nqYvt47afsn3O9se6bk+dbH/e9rO2n+i6LU2wfYPtk9Ofy+/b/lDXbaqL7VfZfnwaK8/Y/uTS7dvo\ngdve2Kkbt/1nkm6OiD9u/MAtsH2bpEcj4rLtT0lSRHy842bVxvYbJV2W9FlJH4mI73XcpMpsXy3p\nvyX9nqSfSPoPSe+NiLOdNqwmtn9b0guS/jEibuq6PXWzfVTS0Yg4bftaSd+V9M6M3r/XRMSLtg9J\nekzSRyPisXnbttIDz3nST0SciIjL008fl3R9l+2pW0Q8FRFPd92Omr1F0g8i4kcR8bKkr2gyEJ+F\niPh3Sc913Y6mRMRPI+L09OMXJJ2V9LpuW1WfiHhx+uE1kq6WdH7Rtq0tZmX7E7b/R9IfSfpUW8dt\n2QckPdJ1I7DS6yU9M/P5j6f/h8TYPibpNzTpPGXB9lW2T0t6VtLJiDizaNtKMzGvOOgJSUfnfOnu\niHg4Iu6RdI/tj2sy6efOuo7dtFXnNt3mHkkvRcQDrTauBkXOLzOM3Gdgmj55UNKHpz3xLEzv6G+Z\njqd9w/YoIsbztq0tgEfEbQU3fUCJ9VJXnZvt90t6h6S3t9KgmpV473LxE0mzA+k3aNILRyJsH5b0\nVUlfioiHum5PEyLiedtfl/RmSeN527RVhXLjzKcLJ/2kyPZxSX8h6Y6I+L+u29OwXCZlfUfSjbaP\n2b5G0nskfa3jNqEg25b0OUlnIuLTXbenTravs/3a6cevlnSblsTLtqpQsp30Y/ucJoMNOwMN346I\nD3bYpFrZfpekz0i6TtLzkk5FxO3dtqo627dL+rQmg0Sfi4il5Vopsf1lSW+T9IuSfibpLyPiC922\nqj62f0vSv0n6L+2lw+6KiH/prlX1sH2TpPs16VxfJemLEXHfwu2ZyAMAaeKRagCQKAI4ACSKAA4A\niSKAA0CiCOAAkCgCOAAkigAOAIkigANAov4fbZF9v2I3ZdgAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(X[:, 0], X[:, 1], s=100, marker=\"s\") # \"s\" means square" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Drawing curves\n", "\n", "If you now want to draw curves instead of scatter plots, you can use `plt.plot`:" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(0, 10, 100)\n", "y = np.sin(x)\n", "\n", "plt.plot(x, y)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(x, y, color=\"r\")" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(x, y, linestyle=\"dashed\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Drawing several items in a single plot\n", "\n", "Up to now, we have used a single plot command (`plt.scatter` or `plt.plot`) at a time. However, it is often the case that we want to draw several items in the same plot (_eg._ a scatter plot containing raw data and a fitted regression line).\n", "\n", "To do so, we need to encapsulate our plot calls between the creation of a new figure (`plt.figure()`) and a command to either show the plot in a new window or save the figure to a file." ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.random.randn(100)\n", "y = 2.3 * x + 0.3 * np.random.randn(100)\n", "\n", "xx = np.linspace(-2.5, 2.5, 10)\n", "yy = 2.3 * xx\n", "\n", "plt.figure()\n", "plt.scatter(x, y)\n", "plt.plot(xx, yy)\n", "plt.show()\n", "# Alternatively, you could use plt.savefig(\"regression.pdf\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tuning plots\n", "\n", "`matplotlib` also makes it easy to set the title of a plot, change x-axis (or y-axis) limits, add a legend, _etc._" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n4qSLqbFxiccjzIaBX//61+y33/vYeee3MWPG8TzzzDNlvb4kbrnlFl566SUee+wxPve5z3HFFVfw\nyU9+suRrZNaNFhFV/0puo7ilS5dGY+Px0dh4fCxdurTHsmZWvQr9FnR0dMS8eV+O8ePfHXvvfUB8\n//s/3Or4unXrYsyY3QL+M+DxGDXqs3HwwbltrrNu3bq44YYb4vbbb48tW7b0qV4TJ06M2267bat9\nd955Z4wYMSIeeOCBuOWWW2Ly5MkxduzYmDBhQrS0tHSVmzBhQkiKMWPGxJgxY+I3v/lNrFmzJg4/\n/PB461vfGg0NDXHKKafECy+80KfvJW9/z7+vvRWohldPQWLp0qVRXz8u4JqAa6K+fpwDhVmNKvRb\n8LWvfTNGj35vwG8Dlsfo0RPjhhtu7Dp+3XXXxU47nRAQ6WtLbLddfbz88stdZe64447YcceGGDv2\n2BgzZlIcccTxsXnz5pLrVShIRETstdde8Z3vfCfa29vjgQceiIiI++67L8aNGxc33XRTRESsXbs2\nJG0VmNasWRO33nprbNq0KZ555pn44Ac/GOecc06fvpe8/T3+vtZ8d5NzLpkNbwsX3shrr/0rcDDw\n17z22sVce+1Pu46PHTuWiD8BnX3+TwLBDjvs0FXmlFNm8+qrV/PSSzfxyit3s3z5k9xwww0Drtse\ne+zB888/z/Tp05k0aRIABxxwACeddBJ33HEHULibaZ999uHDH/4wo0aNoqGhgXPPPberfLnVfJAo\npre0304LblYbxozZEXiqa1t6irFjd+zabmpqYtKksYwefSRwCaNH5/jiFy9nu+3ezFq0fv064IPp\nVh2bNh3KunXrBly3J554gl133ZWVK1dy+OGHs/vuu7PLLruwYMECnn322aLnrV+/npNOOonx48ez\n8847c9ppp/VYfkB6a2pUw4s+djd96Utf6rELyl1UZtWp0G/BihUrYvTohoBLYsSI/xs77bRbPPTQ\nQ1uVef3112PBggVx8cWXxC9+8YttrvH+9x8eI0e2BHQE/ClGj94r2tvbS65XT2MS999/f7zjHe+I\nK6+8Ml5//fWIiDjnnHPi1FNPjYjC3U2f+MQn4uMf/3g8//zzERGxePHiGD9+fNHPL/YbicckEt0H\nrhsbj08DQGcf5DXR2Hh8V/nejptZZSr2W7Bq1apobp4Tc+Z8Ph555JE+X3fdunXxrncdFHV1O8eo\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.scatter(x, y, label=\"Data\")\n", "plt.title(\"This is a scatter plot\")\n", "plt.xlim(-1, 5)\n", "plt.ylim(-2, 2)\n", "plt.legend(loc=\"lower right\")\n", "plt.xlabel(\"x-axis\")\n", "plt.ylabel(\"y-axis\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Common API for `sklearn` models\n", "\n", "`sklearn` models share a very simple common API that makes them very easy-to-use. Using a model consists in:\n", "1. Building it (at this step, hyper parameters of the models are passed);\n", "2. Fitting it to some data;\n", "3. Predicting output of the (already fitted) model for some new data.\n", "\n", "In the following, we give examples of these three steps for some standard models (that will be considered in more details in the following sections of this tutorial." ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0. 0. 1. 1. 1. 0. 1. 1. 0. 1.]\n" ] } ], "source": [ "from sklearn.svm import SVC\n", "\n", "n_samples = 1000\n", "d = 20\n", "\n", "X_train = np.random.randn(n_samples, d)\n", "X_test = np.random.randn(10, d)\n", "y_train = np.array(np.hstack((np.zeros((n_samples // 2, )), np.ones((n_samples // 2, )))))\n", "\n", "# Step 1\n", "support_vector_classifier = SVC(kernel=\"linear\")\n", "# Step 2\n", "support_vector_classifier.fit(X_train, y_train)\n", "# Step 3\n", "y_predicted = support_vector_classifier.predict(X_test)\n", "print(y_predicted)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1 3 0 2 4 4 3 2 1 4]\n" ] } ], "source": [ "from sklearn.cluster import KMeans\n", "\n", "n_samples = 1000\n", "d = 20\n", "\n", "X_train = np.random.randn(n_samples, d)\n", "X_test = np.random.randn(10, d)\n", "\n", "# Step 1\n", "kmeans_model = KMeans(n_clusters=5)\n", "# Step 2\n", "kmeans_model.fit(X_train) # Unsupervised machine learning: no need to pass y for fitting\n", "# Step 3\n", "assign_test = kmeans_model.predict(X_test)\n", "print(assign_test)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[-1.33472163 0.79796058]\n", " [-0.46399731 0.78611098]\n", " [-0.87449232 -1.83561782]\n", " [-0.75057156 -1.15396323]\n", " [ 0.32040141 0.46079091]\n", " [ 1.5839373 0.647358 ]\n", " [-0.27961775 0.91918918]\n", " [ 1.83052297 0.99542658]\n", " [ 1.78791687 -0.28391957]\n", " [ 0.94153714 0.06447396]]\n" ] } ], "source": [ "from sklearn.decomposition import PCA\n", "\n", "n_samples = 1000\n", "d = 20\n", "\n", "X_train = np.random.randn(n_samples, d)\n", "X_test = np.random.randn(10, d)\n", "\n", "# Step 1\n", "pca_model = PCA(n_components=2)\n", "# Step 2\n", "pca_model.fit(X_train) # Unsupervised machine learning: no need to pass y for fitting\n", "# Step 3\n", "X_transformed = pca_model.transform(X_test)\n", "print(X_transformed)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12" } }, "nbformat": 4, "nbformat_minor": 4 }