{ "metadata": { "name": "03_basic_principles_of_machine_learning" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline\n", "import pylab as pl\n", "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].\n", "For more information, type 'help(pylab)'.\n" ] } ], "prompt_number": 0 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Basic principles of machine learning" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is where we start diving into the field of machine learning.\n", "\n", "By the end of this section you will\n", "\n", "- Know the basic categories of supervised learning, including classification and regression problems.\n", "- Know the basic categories of unsupervised learning, including dimensionality reduction and clustering.\n", "- Know the basic syntax of the Scikit-learn **estimator** interface.\n", "- Know how features are extracted from real-world data.\n", "\n", "In addition, we will go over several basic tools within scikit-learn which can be used to accomplish the above tasks." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Problem setting" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "A simple definition of machine learning" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Machine Learning (ML) is about building programs with **tunable parameters** (typically an\n", "array of floating point values) that are adjusted automatically so as to improve\n", "their behavior by **adapting to previously seen data.**\n", "\n", "In most ML applications, the data is in a 2D array of shape ``[n_samples x n_features]``,\n", "where the number of features is the same for each object, and each feature column refers\n", "to a related piece of information about each sample.\n", "\n", "Machine learning can be broken into two broad regimes:\n", "*supervised learning* and *unsupervised learning*.\n", "We\u2019ll introduce these concepts here, and discuss them in more detail below." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Introducing the scikit-learn estimator object" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Every algorithm is exposed in scikit-learn via an ''Estimator'' object. For instance a linear regression is:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.linear_model import LinearRegression" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stderr", "text": [ "/usr/local/lib/python2.7/site-packages/scikits/__init__.py:1: UserWarning: Module argparse was already imported from /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/argparse.pyc, but /usr/local/lib/python2.7/site-packages is being added to sys.path\n", " __import__('pkg_resources').declare_namespace(__name__)\n" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Estimator parameters**: All the parameters of an estimator can be set when it is instantiated:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "model = LinearRegression(normalize=True)\n", "print model.normalize" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "True\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "print model" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "LinearRegression(copy_X=True, fit_intercept=True, normalize=True)\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Estimated parameters**: When data is fitted with an estimator, parameters are estimated from the data at hand. All the estimated parameters are attributes of the estimator object ending by an underscore:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = np.array([0, 1, 2])\n", "y = np.array([0, 1, 2])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "_ = pl.plot(x, y, marker='o')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "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\n1a5du3T16tWkMb29vWpvb5ckNTY26tmzZ5qcnEx5vqGho/r3v6/pxImb1DoAFFDaxX1iYkKVlZWz\nrysqKjQxMZFxzPj4+ILnnJr6Qj09/8x1vgCALKT9gaphGFmdxDTNLP+519+/dk0yjKNZnRsL6+7u\ntnsKnsG1tBbX035pF/dgMKhYLDb7OhaLqaKiIu2Y8fFxBYPBeeea+xcAAKBw0m7LbN68WaOjoxob\nG9PLly91+fJltba2Jo1pbW3VhQsXJEnDw8MqKytTeXl54WYMAMgobbmXlJTo9OnT2rZtm2ZmZtTR\n0aGamhqdO3dOktTZ2amWlhb19/erqqpKy5YtU09PT1EmDgBIw7TYwMCA+fbbb5tVVVXml19+mXLM\nwYMHzaqqKrOurs68e/eu1VPwjEzX8vr16+abb75pNjQ0mA0NDebnn39uwyzdYe/evebq1avNjRs3\nLjiG+zJ7ma4n92b2Hj16ZIbDYbO2ttbcsGGDefLkyZTjFnt/Wrq4v3r1yly3bp35008/mS9fvjTr\n6+vN+/fvJ43p6+szm5ubTdM0zeHhYbOxsdHKKXhGNtfy+vXr5vbt222aobvcvHnTvHv37oKLEffl\n4mS6ntyb2fv555/NaDRqmqZpTk1NmW+99ZYl66alny1j9XPxfpbNtZT4QXW2tmzZopUrVy54nPty\ncTJdT4l7M1tr1qxRQ0ODJKm0tFQ1NTV6/Phx0phc7k9LF/dCPBfvV9lcS8MwdPv2bdXX16ulpUX3\n798v9jQ9g/vSWtybuRkbG1M0GlVjY2PS93O5Py394DDrn4v3r2yuyaZNmxSLxRQIBDQwMKC2tjY9\nePCgCLPzJu5L63BvLt709LR27typkydPqrS0dN7xxd6flpa7lc/F+10213L58uUKBAKSpObmZsXj\ncT19+rSo8/QK7ktrcW8uTjwe144dO7Rnzx61tbXNO57L/Wnp4s5z8dbJ5lpOTk7O/m0+MjIi0zS1\natUqO6bretyX1uLezJ5pmuro6FBtba0OHz6cckwu96el2zI8F2+dbK7llStXdPbsWZWUlCgQCOjS\npUs2z9q5du/erRs3bujJkyeqrKxUd3e34vG4JO7LXGS6ntyb2bt165YuXryouro6hUIhSdKxY8f0\n6NEjSbnfn4bJj7QBwHNs/9/sAQCsx+IOAB7E4g4AHsTiDgAexOIOAB7E4g4AHvT/em35TafYFYwA\nAAAASUVORK5CYII=\n" } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "X = x[:, np.newaxis] # The input data for sklearn is 2D: (samples == 3 x features == 1)\n", "X" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 8, "text": [ "array([[0],\n", " [1],\n", " [2]])" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "model.fit(X, y) \n", "model.coef_" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 9, "text": [ "array([ 1.])" ] } ], "prompt_number": 7 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Supervised Learning: Classification and regression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In **Supervised Learning**, we have a dataset consisting of both features and labels.\n", "The task is to construct an estimator which is able to predict the label of an object\n", "given the set of features. A relatively simple example is predicting the species of \n", "iris given a set of measurements of its flower. This is a relatively simple task. \n", "Some more complicated examples are:\n", "\n", "- given a multicolor image of an object through a telescope, determine\n", " whether that object is a star, a quasar, or a galaxy.\n", "- given a photograph of a person, identify the person in the photo.\n", "- given a list of movies a person has watched and their personal rating\n", " of the movie, recommend a list of movies they would like\n", " (So-called *recommender systems*: a famous example is the [Netflix Prize](http://en.wikipedia.org/wiki/Netflix_prize)).\n", "\n", "What these tasks have in common is that there is one or more unknown\n", "quantities associated with the object which needs to be determined from other\n", "observed quantities.\n", "\n", "Supervised learning is further broken down into two categories, **classification** and **regression**.\n", "In classification, the label is discrete, while in regression, the label is continuous. For example,\n", "in astronomy, the task of determining whether an object is a star, a galaxy, or a quasar is a\n", "classification problem: the label is from three distinct categories. On the other hand, we might\n", "wish to estimate the age of an object based on such observations: this would be a regression problem,\n", "because the label (age) is a continuous quantity." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Classification**: K nearest neighbors (kNN) is one of the simplest learning strategies: given a new, unknown observation, look up in your reference database which ones have the closest features and assign the predominant class.\n", "\n", "Let's try it out on our iris classification problem:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn import neighbors, datasets\n", "iris = datasets.load_iris()\n", "X, y = iris.data, iris.target\n", "knn = neighbors.KNeighborsClassifier(n_neighbors=1)\n", "knn.fit(X, y)\n", "# What kind of iris has 3cm x 5cm sepal and 4cm x 2cm petal?\n", "print iris.target_names[knn.predict([[3, 5, 4, 2]])]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "['virginica']\n" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "# A plot of the sepal space and the prediction of the KNN\n", "from helpers import plot_iris_knn\n", "plot_iris_knn()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stderr", "text": [ "/usr/local/lib/python2.7/site-packages/sklearn/neighbors/classification.py:131: NeighborsWarning: kneighbors: neighbor k+1 and neighbor k have the same distance: results will be dependent on data order.\n", " neigh_dist, neigh_ind = self.kneighbors(X)\n" ] }, { "output_type": "display_data", "png": "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\nQAUAAAAASUVORK5CYII=\n" } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**: Now use as an estimator on the same problem: sklearn.svm.SVC.\n", "\n", "> Note that you don't have to know what it is do use it.\n", "\n", "> If you finish early, do the same plot as above." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Regression**: The simplest possible regression setting is the linear regression one:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Create some simple data\n", "import numpy as np\n", "np.random.seed(0)\n", "X = np.random.random(size=(20, 1))\n", "y = 3 * X.squeeze() + 2 + np.random.normal(size=20)\n", "\n", "# Fit a linear regression to it\n", "from sklearn.linear_model import LinearRegression\n", "model = LinearRegression(fit_intercept=True)\n", "model.fit(X, y)\n", "print \"Model coefficient: %.5f, and intercept: %.5f\" % (model.coef_, model.intercept_)\n", "\n", "# Plot the data and the model prediction\n", "X_test = np.linspace(0, 1, 100)[:, np.newaxis]\n", "y_test = model.predict(X_test)\n", "import pylab as pl\n", "pl.plot(X.squeeze(), y, 'o')\n", "pl.plot(X_test.squeeze(), y_test)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Model coefficient: 3.93491, and intercept: 1.46229\n" ] }, { "output_type": "pyout", "prompt_number": 12, "text": [ "[]" ] }, { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Unsupervised Learning" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Unsupervised Learning** addresses a different sort of problem. Here the data has no labels,\n", "and we are interested in finding similarities between the objects in question. In a sense,\n", "you can think of unsupervised learning as a means of discovering labels from the data itself.\n", "Unsupervised learning comprises tasks such as *dimensionality reduction*, *clustering*, and\n", "*density estimation*. For example, in the iris data discussed above, we can used unsupervised\n", "methods to determine combinations of the measurements which best display the structure of the\n", "data. As we\u2019ll see below, such a projection of the data can be used to visualize the\n", "four-dimensional dataset in two dimensions. Some more involved unsupervised learning problems are:\n", "\n", "- given detailed observations of distant galaxies, determine which features or combinations of\n", " features summarize best the information.\n", "- given a mixture of two sound sources (for example, a person talking over some music),\n", " separate the two (this is called the [blind source separation](http://en.wikipedia.org/wiki/Blind_signal_separation) problem).\n", "- given a video, isolate a moving object and categorize in relation to other moving objects which have been seen.\n", "\n", "Sometimes the two may even be combined: e.g. Unsupervised learning can be used to find useful\n", "features in heterogeneous data, and then these features can be used within a supervised\n", "framework." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**An example PCA for visualization** Principle Component Analysis (PCA) is a dimension reduction technique that can find the combinations of variables that explain the most variance.\n", "\n", "Consider the iris dataset. It cannot be visualized in a single 2D plot, as it has 4 features. We are going to extract 2 combinations of sepal and petal dimensions to visualize it:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "X, y = iris.data, iris.target\n", "from sklearn.decomposition import PCA\n", "pca = PCA(n_components=2)\n", "pca.fit(X)\n", "X_reduced = pca.transform(X)\n", "print \"Reduced dataset shape:\", X_reduced.shape\n", "\n", "import pylab as pl\n", "pl.scatter(X_reduced[:, 0], X_reduced[:, 1], c=y)\n", "\n", "print \"Meaning of the 2 components:\"\n", "for component in pca.components_:\n", " print \" + \".join(\"%.3f x %s\" % (value, name)\n", " for value, name in zip(component, iris.feature_names))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Reduced dataset shape: (150, 2)\n", "Meaning of the 2 components:\n", "0.362 x sepal length (cm) + -0.082 x sepal width (cm) + 0.857 x petal length (cm) + 0.359 x petal width (cm)\n", "-0.657 x sepal length (cm) + -0.730 x sepal width (cm) + 0.176 x petal length (cm) + 0.075 x petal width (cm)\n" ] }, { "output_type": "display_data", "png": "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\nlNkmOjqa5OQ0MpI8gBuWlu6cOiUTfX6jUCiwsrKibYd27Bi2iwZf1+PO2VjOrT6P336/zHaXLl3C\nvZY7moIZwyIe9TxI16dz//79x1a/fFidOnXyrC6/hYUFI0eOfOTrCoWCBrVrszckhMYGA7eBc0ol\nDRo0yJM4pJfr/2+CJ0169jPDHD2MdXNzIzIyMvN1ZGQk7u7uWdpotdrMcUN/f3/0ej1xcXE56faF\nWVhYsH//3zRsaI2z81pq107l4MFA7Oz+m4rn7OyM0ZgKxD74Sgp6fUyWTy5S/vLL/F+o7lSDDa02\nc+7rC6xfvT7LvHpfX1+u7rtK3KV7AJxdE469gz2Ojo5POmWuuXPnDps2bSIoKOi5Fur9uW4dlrVq\nMU2lYkOBAixcsoSKFSvmYaTSKy0nY0N6vV6UKFFCXLlyRaSlpYlKlSqJs2fPZmkTExOTOW545MgR\n4enp+cLjTC/Lr7/+JjQaR6HVVha2ti5i7Nj3zR2SlMvi4uJEbGxsttvPnT9X2NrbigLuBYSlxlJY\nqa1EqXKlxIULF/IsxmPHjomChQqKcn5lhVt5N9GydUuRnp7+XOf492dPyr+ykztzXOtm27ZtjB07\nFqPRyKBBg/jkk0+YP38+AMOGDWP27NnMnTsXCwsLNBoNP/zwA7Vr137kPK9arZvw8HBOnTqFl5cX\ntWrVMnc4Ui7R6/X0GdCHTRs2oVAqaNK0CauXr35mUTTIGKtv7t+c7ju7UKRaEY7+HMrVhdcIP3Uu\nT2KtWrsqxUa4U7GfLyaDiVUt1/Jhrw8ZPHhwnvQnvZ5kUTNJ+j+Tv5nM0sCldFzfDqVKyaaeW2hZ\nyo/pU6c/89jff/+dmTtm0npZKyCjrv00m+ncu3sPW1vbjE3SY2PRarWo1eocx+pcxJk+R3ti724P\nQNAX+2koGjFp4iR27NhBbGwsdevWpWTJvC2hLL3aZFEzKV8ICgrCv4M/TQOasmz5shyd69DRQ1QY\nXA5LG0tUVip8h1bgcOjhbB3r7u5OzPGb6HUZi49ijsegtlGj0WiIjIzEt5ovJXxKUKBgAab/8Oxf\nHM9SrXo1js06gRCC5NvJRKy6SNUqVWnbqhVvd+vGjBEjqFaxIjt27MhxX1L+JksgSK+0Q4cO0b5r\nexp92wA7ew3vjXsPg8HwwhuPl/QqyZE9hynbJeNh69GZoShvq/j2u28ZPWr0U+/EmzRpQrO6zZnr\n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\n" } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Clustering**: Clustering groups together observations that are homogeneous with respect to a given criterion, finding ''clusters'' in the data.\n", "\n", "Note that these clusters will uncover relevent hidden structure of the data only if the criterion used highlights it." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.cluster import KMeans\n", "k_means = KMeans(n_clusters=3, random_state=0) # Fixing the RNG in kmeans\n", "k_means.fit(X_reduced)\n", "y_pred = k_means.predict(X_reduced)\n", "\n", "pl.scatter(X_reduced[:, 0], X_reduced[:, 1], c=y_pred)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 14, "text": [ "" ] }, { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "A recap on Scikit-learn's estimator interface" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Scikit-learn strives to have a uniform interface across all methods,\n", "and we\u2019ll see examples of these below. Given a scikit-learn *estimator*\n", "object named `model`, the following methods are available:\n", "\n", "- Available in **all Estimators**\n", " + `model.fit()` : fit training data. For supervised learning applications,\n", " this accepts two arguments: the data `X` and the labels `y` (e.g. `model.fit(X, y)`).\n", " For unsupervised learning applications, this accepts only a single argument,\n", " the data `X` (e.g. `model.fit(X)`).\n", "- Available in **supervised estimators**\n", " + `model.predict()` : given a trained model, predict the label of a new set of data.\n", " This method accepts one argument, the new data `X_new` (e.g. `model.predict(X_new)`),\n", " and returns the learned label for each object in the array.\n", " + `model.predict_proba()` : For classification problems, some estimators also provide\n", " this method, which returns the probability that a new observation has each categorical label.\n", " In this case, the label with the highest probability is returned by `model.predict()`.\n", " + `model.score()` : for classification or regression problems, most (all?) estimators implement\n", " a score method. Scores are between 0 and 1, with a larger score indicating a better fit.\n", "- Available in **unsupervised estimators**\n", " + `model.transform()` : given an unsupervised model, transform new data into the new basis.\n", " This also accepts one argument `X_new`, and returns the new representation of the data based\n", " on the unsupervised model.\n", " + `model.fit_transform()` : some estimators implement this method,\n", " which more efficiently performs a fit and a transform on the same input data." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Regularization: what it is and why it is necessary" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Train errors** Suppose you are using a 1-nearest neighbor estimator. How many errors do you expect on your train set?\n", "\n", "This tells us that:\n", "- Train set error is not a good measurement of prediction performance. You need to leave out a test set.\n", "- In general, we should accept errors on the train set." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**An example of regularization** The core idea behind regularization is that we are going to prefer models that are simpler, for a certain definition of ''simpler'', even if they lead to more errors on the train set.\n", "\n", "As an example, let's generate with a 9th order polynomial." ] }, { "cell_type": "code", "collapsed": false, "input": [ "rng = np.random.RandomState(0)\n", "x = 2 * rng.rand(100) - 1\n", "\n", "f = lambda t: 1.2 * t ** 2 + .1 * t ** 3 - .4 * t ** 5 - .5 * t ** 9\n", "y = f(x) + .4 * rng.normal(size=100)\n", "\n", "pl.figure()\n", "pl.scatter(x, y, s=4)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 15, "text": [ "" ] }, { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And now, let's fit a 4th order and a 9th order polynomial to the data. For this we need to engineer features: the n_th powers of x:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "x_test = np.linspace(-1, 1, 100)\n", "\n", "pl.figure()\n", "pl.scatter(x, y, s=4)\n", "\n", "X = np.array([x**i for i in range(5)]).T\n", "X_test = np.array([x_test**i for i in range(5)]).T\n", "order4 = LinearRegression()\n", "order4.fit(X, y)\n", "pl.plot(x_test, order4.predict(X_test), label='4th order')\n", "\n", "X = np.array([x**i for i in range(10)]).T\n", "X_test = np.array([x_test**i for i in range(10)]).T\n", "order9 = LinearRegression()\n", "order9.fit(X, y)\n", "pl.plot(x_test, order9.predict(X_test), label='9th order')\n", "\n", "pl.legend(loc='best')\n", "pl.axis('tight')\n", "pl.title('Fitting a 4th and a 9th order polynomial')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 16, "text": [ "" ] }, { "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEICAYAAACktLTqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYVMfXB/Dv0ll6R7qIFRU7USyosWKLGgP2lojGQuwm\ndsUKthg1JkbFFsvPggo2BCxYI6JiAxSQptJByrbz/rFvNq502GUp83mefXT3zp05d1nODnPvneEQ\nEYFhGIapU5QUHQDDMAwjeyy5MwzD1EEsuTMMw9RBLLkzDMPUQSy5MwzD1EEsuTMMw9RBLLnLmY6O\nDmJjY8tdPj4+Hjo6OqiNV6ja2dkhKChIIW0rKSnhzZs3db7tkJAQWFtbV0tbZXF1dcW+ffsUHYaU\n6dOnY+3ateUqWxPjlyWW3GXEzs4OXC4XOjo60NHRga6uLlJSUpCTkwM7OzsAwMSJE7Fs2bIi+12/\nfl3y3MbGBjk5OeBwONUZfqlWr14NJSUlqcRd3LFwOJwaFXdleXt7w9bWFnp6evDw8EBOTo5kW11P\nCBVRE3/eu3fvxtKlS8tVtibGL0ssucsIh8PBhQsXkJOTg5ycHGRnZ8Pc3Lxc+9XkXnpMTAxOnToF\nCwuLOv2L8K+DBw/i8OHDCAsLQ1JSEvLz8zFr1izJ9up8DwQCgUzrEwqFMq2PqdlYcpczJSUlxMTE\nYO/evTh69Cg2bdoEHR0dDBkyBOPHj0d8fDwGDx4MHR0d+Pj4IDY2FkpKShCJRADEPcXly5eja9eu\n0NXVRb9+/ZCWliap38/PD7a2tjA2NsbatWtLHRq5ePEi2rZtCz09PdjY2GDVqlVlxj9z5kxs3LgR\nqqqqkte+PJahQ4dKtoWHh8PJyQn6+vpwd3dHYWFhsfXGxMSgV69eMDY2homJCcaOHYusrCzJdjs7\nO/j6+pZY1+bNm2FhYQErKyv89ddfpR7D/v370aJFC+jq6qJRo0bYu3dviWXPnz+PKVOmwNLSElpa\nWli0aBGOHz+O/Px8/PLLL7h58yZmzpwJHR0dzJ49W7Lf1atX0aRJExgYGGDmzJkl1l9YWAgvLy9Y\nWlrC0tISP/30E3g8HgDxkIuVlRU2bdqEBg0aYMqUKSgoKMDEiRNhaGgIR0dHPHjwQKq+pKQkjBgx\nAqamprC3t8evv/4q2bZy5UqMHDkS48aNg56eHg4ePFgknokTJ8LT0xN9+/aFrq4uXF1dER8fL9ke\nFhaGjh07Ql9fH506dcKdO3eK1MHj8WBoaIhnz55JXvvw4QO0tLSQlpYmOa4tW7bAzMwMFhYWOHDg\ngKRsVlYWxo8fD1NTU9jZ2cHb21vS4Tlw4ABcXFwwd+5cGBgYwMHBAWFhYdi/fz9sbGxgZmYGPz8/\nqeP59y/KjIwMDBo0CKampjA0NMTgwYORmJhY4s+mziFGJuzs7OjatWtFXudwOBQTE0NERBMnTqRl\ny5YV2S8oKEjy/O3bt8ThcEgoFBIRUY8ePcjBwYGioqIoPz+fXF1dafHixUREFBkZSdra2nT79m3i\n8Xg0f/58UlVVlarvcyEhIfTs2TMiInry5AmZmZnR2bNnSzymEydO0LBhw4qNs7hjsbW1JWdnZ0pO\nTqb09HRq3rw57dmzp9i6o6Oj6dq1a8Tj8ejjx4/UvXt38vLyknpfSqorMDCQzMzMKDIykj59+kQe\nHh5S7/OXLl68SG/evCEiotDQUOJyufTo0aNiy44cOZI2bdokeX7r1i3icDj05MkTIiJydXWlffv2\nSe3D4XBo8ODBlJWVRfHx8WRiYkKXLl0qtv5ly5ZR586d6ePHj/Tx40fq0qWL5H0MDg4mFRUVWrx4\nMfF4PMrPz6dFixZR9+7dKSMjg969e0eOjo5kbW1NRERCoZDatWtHa9asIT6fT2/evCF7e3u6fPky\nERGtWLGCVFVV6dy5c0RElJ+fXySeCRMmkI6ODt28eZMKCwtpzpw51LVrVyIiSktLI319fTp8+DAJ\nhUI6duwYGRgYUHp6epH3YsaMGbRo0SJJvdu2baMhQ4ZIHdeKFStIIBBQQEAAcblcyszMJCKicePG\n0bBhwyg3N5diY2OpSZMmknr3799PKioqdODAARKJRLR06VKytLSkmTNnEo/HoytXrpCOjg59+vSJ\niKQ/l2lpaXT69GnKz8+nnJwc+vbbbyWf55J+lnUJS+4yYmtrS9ra2qSvr0/6+vr0zTffEFHR5L50\n6VKp/cpK7q6uruTt7S3ZvmvXLurfvz8REa1atYpGjx4t2ZaXl0dqamolJvcvzZkzh3766adit2Vn\nZ1Pjxo0pLi6u2DhLOpYjR45Ini9cuJA8PT3LFcuZM2eobdu25apr0qRJtGTJEsm2169fl5rcvzRs\n2DDavn17sdv+/PNPatKkCcXGxlJmZiYNHjyYOBwO3b17l4jEP48///xTah8Oh0O3b9+WPB81ahRt\n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\n" } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "With your naked eyes, which model do you prefer, the 4th order one, or the 9th order one?\n", "\n", "Let's look at the ground truth:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "pl.figure()\n", "pl.scatter(x, y, s=4)\n", "pl.plot(x_test, f(x_test), label=\"truth\")\n", "pl.axis('tight')\n", "pl.title('Ground truth (9th order polynomial)')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 17, "text": [ "" ] }, { "output_type": "display_data", "png": "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\nQmCC\n" } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Regularization is ubiquitous in machine learning. Most scikit-learn estimators have a parameter to tune the amount of regularization. For instance, with k-NN, it is 'k', the number of nearest neighbors used to make the decision. k=1 amounts to no regularization: 0 error on the training set, whereas large k will push toward smoother decision boundaries in the feature space." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Exercise: Interactive Demo on linearly separable data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Run the **svm_gui.py** file in the repository: https://github.com/jakevdp/sklearn_scipy2013" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Flow chart: how do I choose what to do with my data set?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] } ], "metadata": {} } ] }