{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Model selection and evaluation\n", "\n", "\n", "Model selection and evaluation is one of the most important things in data ming and machine learning. These are the following topics you must understand:\n", "\n", "1. Bias vs Variance Tradeoff\n", "2. Cross Validation and combatting over and under fitting\n", "What do do next? (advanced topics)\n", "\n", "3. Model Evaluation using learning curves\n", "4. Grid Search: Searching for estimator parameters\n", "\n", "The scikit-learn documentation is great:\n", "http://scikit-learn.org/stable/model_selection.html\n", "\n", "\n", "http://scikit-learn.org/stable/tutorial/statistical_inference/index.html#stat-learn-tut-index\n", "\n", "# Bias vs Variance Tradeoff\n", "\n", "![](https://pbs.twimg.com/media/B0opRNICUAMJQK_.jpg)\n", "\n", "![](http://www.holehouse.org/mlclass/10_Advice_for_applying_machine_learning_files/Image%20%5B8%5D.png)\n", "\n", "There are three types of error in a model:\n", "\n", "a. Bias: difference between the expected (or average) prediction of our model and the correct value which we are trying to predict.\n", "\n", "High bias can cause an algorithm to miss the relevant relations between features and target outputs (underfitting)\n", "\n", "b. Variance: error due to variance is taken as the variability of a model prediction for a given data point\n", "\n", "High variance can cause overfitting: modeling the random noise in the training data, rather than the intended outputs.\n", "\n", "c. Irreducible error \n", "\n", "Real world data will almost always have irreducible errors. These errors are what cause underfitting and overfitting and are very difficult to determine (since you never have all of the data with most machine learning problems)\n", "\n", "https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff\n", "\n", "http://scott.fortmann-roe.com/docs/BiasVariance.html\n", "\n", "\n", "# [Over and under fitting](http://scikit-learn.org/stable/auto_examples/model_selection/plot_underfitting_overfitting.html)\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Automatically created module for IPython interactive environment\n" ] }, { "data": { "image/png": "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\nMJ1XE8T/Bj92en0AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(__doc__)\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.pipeline import Pipeline\n", "from sklearn.preprocessing import PolynomialFeatures\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn import cross_validation\n", "%matplotlib inline\n", "np.random.seed(0)\n", "\n", "n_samples = 30\n", "degrees = [1, 4, 15]\n", "\n", "true_fun = lambda X: np.cos(1.5 * np.pi * X)\n", "X = np.sort(np.random.rand(n_samples))\n", "y = true_fun(X) + np.random.randn(n_samples) * 0.1\n", "\n", "plt.figure(figsize=(14, 5))\n", "for i in range(len(degrees)):\n", " ax = plt.subplot(1, len(degrees), i + 1)\n", " plt.setp(ax, xticks=(), yticks=())\n", "\n", " polynomial_features = PolynomialFeatures(degree=degrees[i],\n", " include_bias=False)\n", " linear_regression = LinearRegression()\n", " pipeline = Pipeline([(\"polynomial_features\", polynomial_features),\n", " (\"linear_regression\", linear_regression)])\n", " pipeline.fit(X[:, np.newaxis], y)\n", "\n", " # Evaluate the models using crossvalidation\n", " scores = cross_validation.cross_val_score(pipeline,\n", " X[:, np.newaxis], y, scoring=\"mean_squared_error\", cv=10)\n", "\n", " X_test = np.linspace(0, 1, 100)\n", " plt.plot(X_test, pipeline.predict(X_test[:, np.newaxis]), label=\"Model\")\n", " plt.plot(X_test, true_fun(X_test), label=\"True function\")\n", " plt.scatter(X, y, label=\"Samples\")\n", " plt.xlabel(\"x\")\n", " plt.ylabel(\"y\")\n", " plt.xlim((0, 1))\n", " plt.ylim((-2, 2))\n", " plt.legend(loc=\"best\")\n", " plt.title(\"Degree {}\\nMSE = {:.2e}(+/- {:.2e})\".format(\n", " degrees[i], -scores.mean(), scores.std()))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Cross Validation\n", "\n", "\n", "While the holdout method is the simpliest, you should be using K folds cross validation. The general rule of thumb is to use 10 folds.\n", "\n", "Another important part of cross validation is the metric you are using to score the algorithm:\n", "\n", "[Model evaluation: quantifying the quality of predictions](http://scikit-learn.org/stable/modules/model_evaluation.html)\n", "\n", "https://en.wikipedia.org/wiki/Confusion_matrix\n", "\n", "\n", "Deciding the correct metric is the first and very important set!\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Automatically created module for IPython interactive environment\n" ] }, { "data": { "image/png": "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\n3W7X0tLSGq9b3fNv5VfdrlZ3oqEd3vxyX758Wbdv364bNmzQ8+fP11k9xgF4lobuAObPn6/33nuv\nM2/WrFn62muvuTiAkpISnTlzpnbq1EnbtWunU6dO1R9++EFVVfPz83X48OHapk0btdlsOnz4cD13\n7pzzerGxsfriiy/qoEGDNCgoSB988EFno1yZyg5AVfVHP/qR/u1vf1NV1VOnTqm/v78eOnTIRSYz\nM1MDAwN1165dqqo6ePBgnT59utv3ITU1Vbt37+6St3LlSu3Ro4cGBQVpWFiYS0OakpKiHTp00IUL\nF2q7du00MTFRVVX//ve/a3R0tIaEhOigQYP06NGjzjILFizQsLAwDQoK0qioKN28ebPb+rnLwIED\ndcWKFc70Bx98oAMGDHCrbFxcnM6bN8+ZnjJlis6ePduZ/vjjjzUyMtKlTHh4uKamptZ43VtxAE1+\nCuhmUL1xb14z1990EJEqj5uRvx1iYmIoKiri5MmTlJWVsWHDBhISElwCeM2ePZszZ85w9OhRzpw5\nQ1ZWFvPmzQOgrKyMxx9/nMzMTDIyMmjRogXTpk1zqWP9+vWsXr2a3NxcSkpKeOutt2rVS1XZsmUL\nFy9epE+fPgDs3LmTjh070q9fPxfZDh06EBMTwyeffMKVK1fYt28fo0aNcvseHDt2jIiICJe8tm3b\nsnXrVgoLC1m5ciXPPPMMhw8fdp7/7rvvKCgoICMjg+XLl5OWlsYTTzzBihUryMvLIykpiREjRjjD\nZHfr1o09e/ZQWFjI3LlzSUhI4Pz581Xqs379ekJDQ7HZbISGhrp8ttls1f6+Jz09nd69ezvT5WG9\na+Ps2bPs3r2bxMREZ96QIUNITk4mJyeHy5cvs3btWoYOHepSLjIykiNHjtR6/ZumOs/Q0A680Lvb\ns2dPnff6K2JGAJ6ltmcEqPK4GflbpUuXLrpjxw6dP3++Pv/887pt2zYdMmSIXrt2TUXEOQJo2bKl\nfvPNN85ye/fu1a5du1Z5zbS0NLXZbM50bGyszp8/35leunSpxsfHV1k2JSVF/fz8NDQ0VAMDA9Xf\n31//+te/Os+/+uqr1fZox4wZo1OmTNGsrCwVET158qTb92H+/Pk6duzYGmUefvhhXbx4sVPPwMBA\nl+mPqVOn6ksvveRSJiIiotoecnR0tG7ZssVtHd3B39/fxe7Tp0+rn59freXmzZuncXFxN+RPmDBB\n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\nZO0P1AAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(__doc__)\n", "\n", "import numpy as np\n", "from scipy import interp\n", "import matplotlib.pyplot as plt\n", "\n", "from sklearn import svm, datasets\n", "from sklearn.metrics import roc_curve, auc\n", "from sklearn.cross_validation import StratifiedKFold\n", "\n", "###############################################################################\n", "# Data IO and generation\n", "\n", "# import some data to play with\n", "iris = datasets.load_iris()\n", "X = iris.data\n", "y = iris.target\n", "X, y = X[y != 2], y[y != 2]\n", "n_samples, n_features = X.shape\n", "\n", "# Add noisy features\n", "random_state = np.random.RandomState(0)\n", "X = np.c_[X, random_state.randn(n_samples, 200 * n_features)]\n", "\n", "###############################################################################\n", "# Classification and ROC analysis\n", "\n", "# Run classifier with cross-validation and plot ROC curves\n", "cv = StratifiedKFold(y, n_folds=6)\n", "classifier = svm.SVC(kernel='linear', probability=True,\n", " random_state=random_state)\n", "\n", "mean_tpr = 0.0\n", "mean_fpr = np.linspace(0, 1, 100)\n", "all_tpr = []\n", "\n", "for i, (train, test) in enumerate(cv):\n", " probas_ = classifier.fit(X[train], y[train]).predict_proba(X[test])\n", " # Compute ROC curve and area the curve\n", " fpr, tpr, thresholds = roc_curve(y[test], probas_[:, 1])\n", " mean_tpr += interp(mean_fpr, fpr, tpr)\n", " mean_tpr[0] = 0.0\n", " roc_auc = auc(fpr, tpr)\n", " plt.plot(fpr, tpr, lw=1, label='ROC fold %d (area = %0.2f)' % (i, roc_auc))\n", "\n", "plt.plot([0, 1], [0, 1], '--', color=(0.6, 0.6, 0.6), label='Luck')\n", "\n", "mean_tpr /= len(cv)\n", "mean_tpr[-1] = 1.0\n", "mean_auc = auc(mean_fpr, mean_tpr)\n", "plt.plot(mean_fpr, mean_tpr, 'k--',\n", " label='Mean ROC (area = %0.2f)' % mean_auc, lw=2)\n", "\n", "plt.xlim([-0.05, 1.05])\n", "plt.ylim([-0.05, 1.05])\n", "plt.xlabel('False Positive Rate')\n", "plt.ylabel('True Positive Rate')\n", "plt.title('Receiver operating characteristic example')\n", "plt.legend(loc=\"lower right\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# 3. Determining Parameters\n", "\n", "After selecting a model you can tune the parameters.\n", "\n", "http://scikit-learn.org/stable/tutorial/statistical_inference/model_selection.html#model-selection-tut\n", "\n", "\n", " " ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Automatically created module for IPython interactive environment\n" ] }, { "data": { "image/png": "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\nSimlXPp/4HqW7PVvbNkAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(__doc__)\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from sklearn.datasets import load_digits\n", "from sklearn.svm import SVC\n", "from sklearn.learning_curve import validation_curve\n", "\n", "digits = load_digits()\n", "X, y = digits.data, digits.target\n", "\n", "param_range = np.logspace(-6, -1, 5)\n", "train_scores, test_scores = validation_curve(\n", " SVC(), X, y, param_name=\"gamma\", param_range=param_range,\n", " cv=10, scoring=\"accuracy\", n_jobs=1)\n", "train_scores_mean = np.mean(train_scores, axis=1)\n", "train_scores_std = np.std(train_scores, axis=1)\n", "test_scores_mean = np.mean(test_scores, axis=1)\n", "test_scores_std = np.std(test_scores, axis=1)\n", "\n", "plt.title(\"Validation Curve with SVM\")\n", "plt.xlabel(\"$\\gamma$\")\n", "plt.ylabel(\"Score\")\n", "plt.ylim(0.0, 1.1)\n", "plt.semilogx(param_range, train_scores_mean, label=\"Training score\", color=\"r\")\n", "plt.fill_between(param_range, train_scores_mean - train_scores_std,\n", " train_scores_mean + train_scores_std, alpha=0.2, color=\"r\")\n", "plt.semilogx(param_range, test_scores_mean, label=\"Cross-validation score\",\n", " color=\"g\")\n", "plt.fill_between(param_range, test_scores_mean - test_scores_std,\n", " test_scores_mean + test_scores_std, alpha=0.2, color=\"g\")\n", "plt.legend(loc=\"best\")\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Automatically created module for IPython interactive environment\n", "Loading 20 newsgroups dataset for categories:\n", "['alt.atheism', 'talk.religion.misc']\n", "857 documents\n", "2 categories\n", "\n", "Performing grid search...\n", "pipeline: ['vect', 'tfidf', 'clf']\n", "parameters:\n", "{'clf__alpha': (1e-05, 1e-06),\n", " 'clf__penalty': ('l2', 'elasticnet'),\n", " 'vect__max_df': (0.5, 0.75, 1.0),\n", " 'vect__ngram_range': ((1, 1), (1, 2))}\n", "Fitting 3 folds for each of 24 candidates, totalling 72 fits\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[Parallel(n_jobs=-1)]: Done 42 tasks | elapsed: 17.4s\n", "[Parallel(n_jobs=-1)]: Done 72 out of 72 | elapsed: 30.2s finished\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "done in 30.773s\n", "\n", "Best score: 0.938\n", "Best parameters set:\n", "\tclf__alpha: 1e-05\n", "\tclf__penalty: 'l2'\n", "\tvect__max_df: 0.75\n", "\tvect__ngram_range: (1, 1)\n" ] } ], "source": [ "from __future__ import print_function\n", "\n", "from pprint import pprint\n", "from time import time\n", "import logging\n", "\n", "from sklearn.datasets import fetch_20newsgroups\n", "from sklearn.feature_extraction.text import CountVectorizer\n", "from sklearn.feature_extraction.text import TfidfTransformer\n", "from sklearn.linear_model import SGDClassifier\n", "from sklearn.grid_search import GridSearchCV\n", "from sklearn.pipeline import Pipeline\n", "\n", "print(__doc__)\n", "\n", "# Display progress logs on stdout\n", "logging.basicConfig(level=logging.INFO,\n", " format='%(asctime)s %(levelname)s %(message)s')\n", "\n", "\n", "###############################################################################\n", "# Load some categories from the training set\n", "categories = [\n", " 'alt.atheism',\n", " 'talk.religion.misc',\n", "]\n", "# Uncomment the following to do the analysis on all the categories\n", "#categories = None\n", "\n", "print(\"Loading 20 newsgroups dataset for categories:\")\n", "print(categories)\n", "\n", "data = fetch_20newsgroups(subset='train', categories=categories)\n", "print(\"%d documents\" % len(data.filenames))\n", "print(\"%d categories\" % len(data.target_names))\n", "print()\n", "\n", "###############################################################################\n", "# define a pipeline combining a text feature extractor with a simple\n", "# classifier\n", "pipeline = Pipeline([\n", " ('vect', CountVectorizer()),\n", " ('tfidf', TfidfTransformer()),\n", " ('clf', SGDClassifier()),\n", "])\n", "\n", "# uncommenting more parameters will give better exploring power but will\n", "# increase processing time in a combinatorial way\n", "parameters = {\n", " 'vect__max_df': (0.5, 0.75, 1.0),\n", " #'vect__max_features': (None, 5000, 10000, 50000),\n", " 'vect__ngram_range': ((1, 1), (1, 2)), # unigrams or bigrams\n", " #'tfidf__use_idf': (True, False),\n", " #'tfidf__norm': ('l1', 'l2'),\n", " 'clf__alpha': (0.00001, 0.000001),\n", " 'clf__penalty': ('l2', 'elasticnet'),\n", " #'clf__n_iter': (10, 50, 80),\n", "}\n", "\n", "if __name__ == \"__main__\":\n", " # multiprocessing requires the fork to happen in a __main__ protected\n", " # block\n", "\n", " # find the best parameters for both the feature extraction and the\n", " # classifier\n", " grid_search = GridSearchCV(pipeline, parameters, n_jobs=-1, verbose=1)\n", "\n", " print(\"Performing grid search...\")\n", " print(\"pipeline:\", [name for name, _ in pipeline.steps])\n", " print(\"parameters:\")\n", " pprint(parameters)\n", " t0 = time()\n", " grid_search.fit(data.data, data.target)\n", " print(\"done in %0.3fs\" % (time() - t0))\n", " print()\n", "\n", " print(\"Best score: %0.3f\" % grid_search.best_score_)\n", " print(\"Best parameters set:\")\n", " best_parameters = grid_search.best_estimator_.get_params()\n", " for param_name in sorted(parameters.keys()):\n", " print(\"\\t%s: %r\" % (param_name, best_parameters[param_name]))" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Automatically created module for IPython interactive environment\n", "RandomizedSearchCV took 4.76 seconds for 20 candidates parameter settings.\n", "Model with rank: 1\n", "Mean validation score: 0.926 (std: 0.014)\n", "Parameters: {'bootstrap': False, 'min_samples_leaf': 3, 'min_samples_split': 6, 'criterion': 'gini', 'max_features': 8, 'max_depth': None}\n", "\n", "Model with rank: 2\n", "Mean validation score: 0.919 (std: 0.017)\n", "Parameters: {'bootstrap': False, 'min_samples_leaf': 4, 'min_samples_split': 3, 'criterion': 'entropy', 'max_features': 10, 'max_depth': None}\n", "\n", "Model with rank: 3\n", "Mean validation score: 0.919 (std: 0.011)\n", "Parameters: {'bootstrap': True, 'min_samples_leaf': 3, 'min_samples_split': 4, 'criterion': 'gini', 'max_features': 3, 'max_depth': None}\n", "\n", "GridSearchCV took 46.52 seconds for 216 candidate parameter settings.\n", "Model with rank: 1\n", "Mean validation score: 0.932 (std: 0.004)\n", "Parameters: {'bootstrap': False, 'min_samples_leaf': 1, 'min_samples_split': 3, 'criterion': 'gini', 'max_features': 3, 'max_depth': None}\n", "\n", "Model with rank: 2\n", "Mean validation score: 0.931 (std: 0.017)\n", "Parameters: {'bootstrap': False, 'min_samples_leaf': 1, 'min_samples_split': 3, 'criterion': 'entropy', 'max_features': 10, 'max_depth': None}\n", "\n", "Model with rank: 3\n", "Mean validation score: 0.928 (std: 0.009)\n", "Parameters: {'bootstrap': True, 'min_samples_leaf': 1, 'min_samples_split': 3, 'criterion': 'entropy', 'max_features': 10, 'max_depth': None}\n", "\n" ] } ], "source": [ "print(__doc__)\n", "\n", "import numpy as np\n", "\n", "from time import time\n", "from operator import itemgetter\n", "from scipy.stats import randint as sp_randint\n", "\n", "from sklearn.grid_search import GridSearchCV, RandomizedSearchCV\n", "from sklearn.datasets import load_digits\n", "from sklearn.ensemble import RandomForestClassifier\n", "\n", "# get some data\n", "digits = load_digits()\n", "X, y = digits.data, digits.target\n", "\n", "# build a classifier\n", "clf = RandomForestClassifier(n_estimators=20)\n", "\n", "\n", "# Utility function to report best scores\n", "def report(grid_scores, n_top=3):\n", " top_scores = sorted(grid_scores, key=itemgetter(1), reverse=True)[:n_top]\n", " for i, score in enumerate(top_scores):\n", " print(\"Model with rank: {0}\".format(i + 1))\n", " print(\"Mean validation score: {0:.3f} (std: {1:.3f})\".format(\n", " score.mean_validation_score,\n", " np.std(score.cv_validation_scores)))\n", " print(\"Parameters: {0}\".format(score.parameters))\n", " print(\"\")\n", "\n", "\n", "# specify parameters and distributions to sample from\n", "param_dist = {\"max_depth\": [3, None],\n", " \"max_features\": sp_randint(1, 11),\n", " \"min_samples_split\": sp_randint(1, 11),\n", " \"min_samples_leaf\": sp_randint(1, 11),\n", " \"bootstrap\": [True, False],\n", " \"criterion\": [\"gini\", \"entropy\"]}\n", "\n", "# run randomized search\n", "n_iter_search = 20\n", "random_search = RandomizedSearchCV(clf, param_distributions=param_dist,\n", " n_iter=n_iter_search)\n", "\n", "start = time()\n", "random_search.fit(X, y)\n", "print(\"RandomizedSearchCV took %.2f seconds for %d candidates\"\n", " \" parameter settings.\" % ((time() - start), n_iter_search))\n", "report(random_search.grid_scores_)\n", "\n", "# use a full grid over all parameters\n", "param_grid = {\"max_depth\": [3, None],\n", " \"max_features\": [1, 3, 10],\n", " \"min_samples_split\": [1, 3, 10],\n", " \"min_samples_leaf\": [1, 3, 10],\n", " \"bootstrap\": [True, False],\n", " \"criterion\": [\"gini\", \"entropy\"]}\n", "\n", "# run grid search\n", "grid_search = GridSearchCV(clf, param_grid=param_grid)\n", "start = time()\n", "grid_search.fit(X, y)\n", "\n", "print(\"GridSearchCV took %.2f seconds for %d candidate parameter settings.\"\n", " % (time() - start, len(grid_search.grid_scores_)))\n", "report(grid_search.grid_scores_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Learning curves\n", "\n", "http://www.astroml.org/sklearn_tutorial/practical.html\n", "http://www.holehouse.org/mlclass/10_Advice_for_applying_machine_learning.html\n", "http://scikit-learn.org/stable/modules/learning_curve.html\n", "\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Automatically created module for IPython interactive environment\n" ] }, { "data": { "image/png": "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\n7f8AVgc1w/9gz34AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n4S0iGu/zAMeQ3HnkkUxftowsoBaYNmoUF82Z0ymDsj2yrcZ1e8XaYyvWFs1JtPYQETSGDvhEW80V\nsxOLBw9de23EkICzO+P0ZcuYOX4808aOhZSU5h+fL/K9fO1aSkeMiJoWtUxb6S3TfL6u5Y1Wt1fn\n++9TOm5c25p8PnD3w1tRWcmdJ5zA9IqKrcb1nXe46MUXW/+TiMQ0XD5vHqWlpW3nj8Uxu0i0m41z\n5s7llvnzE74TLS8vb96eLenKzZqq0xZHHcX05cu3XhvvvstFr71G0ciR7Zdv53foUGeC0FJn1BvR\nBQu2qxvR3jYmq3E2eQszzI1Lx3knQsv4NikrK6O4uBiA/Px8Ro8eHfkxy8vLAbodDq1eTRZQ7h6z\nFMegLBehfNgwSkeOhECA8qVLIRiktKgIgkHKly9nUW0tpdnZTriyEkIhSocMccKrVjn5Bw92wmvW\nOOk77QShEOVff+2E+/VzwuvWgSqleXlOeONGJz031ym/ebMTDh+vqsoJ9+3r5K+pccIZGU56fb0T\nTk2FhgbKQyEnLAKqlDc1OWFVJywCPh/zVJkeCkV23ysFpldUcMHo0ZT17UtpuvMW1/KA896m0gxn\nn8XypiYQ2Rr2+51wnz5OuLHRCfftuzUMTliE8oYGFvn9lBYUOOn1zma9pVlZTnpdnVM+23m9Rnmd\nswNHaXa2k15b66TnOPvwldfUOOm5uU56dbWTnufsS1he7bxXqzQ/30mvqmoe3rIFRJi3di3T161r\n1h5la9YwbcwYyoqKnPyqzu8T/v3ACYePr+rUB1t/3/DxcnKc9Koqp3w4fzg9fL7esOrW88vKan4+\nWVlOem0ti+rrKe3fPxKOtHe4/VQpzcx00sPtGf69wunh/PX1PLRlC3c3NDT7f5m+fDkz992XCa6O\n0j59nPoaGprXFw6Hr4/w75+RAY2NW///oqWrNg9708PXY1vpbYXb06PqXL/e+v1+5/oMt7ffz0O1\ntdzd1NS8PZYtY+a11zLhpz91yse4v2oZDn+P1+KAnpjmKsaZ5tonStoknFeHfl9ExgJ3qOpYEUnB\n2S/quzjv3HgfmKzO7rrRjtEj01zTTz+dK2bNioxMwLnDmDllCtMee6x1gbAmtxNu9r29tGj5QqGt\nYbezj8S3/O7N5y0fau8FiS10h+8Ovd/D4WAQQiGmnX020z/8sFXxaWPGMP2ee1qfR8tzipYe1hit\n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\nOTk5fPXVVzHNaxiG0VnibkxE5BgR+UxElorIVVHSrxCRhSLysYj8R0QCIpLvplWKyGI3/f14a+0p\ncnJyyM3NJTc3l5SUFDIzMyNxTzzxRJfr8/l8VFdXM2zYsJjmNXYckmWO33QmLnF9zkREfMBdwHeB\nNcAHIvKCqn4WzqOqM4GZbv7jgEtVdbObHAJKVXVTLHWtqKjgoWuvJbR6Nb6hQymbMYOikpIeq6O6\nujryfeTIkTzwwANMnDixzfzBYJCUlJQu6dsesXYwjARGVeP2AcYC//KErwauaif/LOBcT7gC6N+J\n42g0osVXLl+uvxo1SmtAFbQG9FejRmnl8uVR64hGLOoIU1xcrP/+97+bxf3mN7/RU045RSdPnqy5\nubn68MMP67vvvqtjx47V/Px8LSws1IsvvlgDgYCqqgYCARURXbFihaqqnn766XrxxRfrscceqzk5\nOXrYYYdpZWVll/Oqqr788su66667an5+vl500UU6btw4ffjhh6Oey4IFC3TMmDGam5urgwcP1iuv\nvDKSNm/ePB07dqzm5eXpiBEj9LHHHlNV1c2bN+uUKVN0wIABWlJSojfeeGOkzF//+lcdP368Xnzx\nxdqvXz+dPn26qqref//9uvvuu2u/fv100qRJumrVqi63ezLQ1nVtGLHAvb5i19/HsrJWlcNJwH2e\n8OnAn9rI2xfYAOR74pYDHwMfAOe1c5z2GqsZ10+ZEjEC6jEG10+Z0rlfIEZ1hGnLmGRkZOhLL72k\nqqoNDQ364Ycf6vvvv6+hUEgrKip0t91207vvvltVHQPh8/maGYgBAwboxx9/rIFAQE855RQ944wz\nupz3m2++0ZycHJ09e7YGAgG9/fbbNT09vU1jctBBB+mTTz6pqqo1NTX6/vvvq6rq8uXLNTs7W599\n9lkNBoO6YcMGXbx4saqqTp48WU866SStra3V5cuX684776yPPPKIqjrGJDU1Ve+9914NhULa0NCg\nzz77rO6+++76xRdfaDAY1OnTp+sRRxzR5XZPBsyYGPEk1sYkkRzwxwPzdesUF8A4VR0DTAIuEJHD\nu3uQ0OrVZLWIywJCs2aBSKc+oVmzotexZk135UU4/PDDmTRpEgAZGRkccMABHHTQQYgIxcXFnHfe\necybNy+S37k2tnLyySez//77k5KSwpQpU1i0aFGX87700kvsv//+HHfccaSkpHDZZZfRv3//NjWn\n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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(__doc__)\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn import cross_validation\n", "from sklearn.naive_bayes import GaussianNB\n", "from sklearn.svm import SVC\n", "from sklearn.datasets import load_digits\n", "from sklearn.learning_curve import learning_curve\n", "\n", "\n", "def plot_learning_curve(estimator, title, X, y, ylim=None, cv=None,\n", " n_jobs=1, train_sizes=np.linspace(.1, 1.0, 5)):\n", " \"\"\"\n", " Generate a simple plot of the test and traning learning curve.\n", "\n", " Parameters\n", " ----------\n", " estimator : object type that implements the \"fit\" and \"predict\" methods\n", " An object of that type which is cloned for each validation.\n", "\n", " title : string\n", " Title for the chart.\n", "\n", " X : array-like, shape (n_samples, n_features)\n", " Training vector, where n_samples is the number of samples and\n", " n_features is the number of features.\n", "\n", " y : array-like, shape (n_samples) or (n_samples, n_features), optional\n", " Target relative to X for classification or regression;\n", " None for unsupervised learning.\n", "\n", " ylim : tuple, shape (ymin, ymax), optional\n", " Defines minimum and maximum yvalues plotted.\n", "\n", " cv : integer, cross-validation generator, optional\n", " If an integer is passed, it is the number of folds (defaults to 3).\n", " Specific cross-validation objects can be passed, see\n", " sklearn.cross_validation module for the list of possible objects\n", "\n", " n_jobs : integer, optional\n", " Number of jobs to run in parallel (default 1).\n", " \"\"\"\n", " plt.figure()\n", " plt.title(title)\n", " if ylim is not None:\n", " plt.ylim(*ylim)\n", " plt.xlabel(\"Training examples\")\n", " plt.ylabel(\"Score\")\n", " train_sizes, train_scores, test_scores = learning_curve(\n", " estimator, X, y, cv=cv, n_jobs=n_jobs, train_sizes=train_sizes)\n", " train_scores_mean = np.mean(train_scores, axis=1)\n", " train_scores_std = np.std(train_scores, axis=1)\n", " test_scores_mean = np.mean(test_scores, axis=1)\n", " test_scores_std = np.std(test_scores, axis=1)\n", " plt.grid()\n", "\n", " plt.fill_between(train_sizes, train_scores_mean - train_scores_std,\n", " train_scores_mean + train_scores_std, alpha=0.1,\n", " color=\"r\")\n", " plt.fill_between(train_sizes, test_scores_mean - test_scores_std,\n", " test_scores_mean + test_scores_std, alpha=0.1, color=\"g\")\n", " plt.plot(train_sizes, train_scores_mean, 'o-', color=\"r\",\n", " label=\"Training score\")\n", " plt.plot(train_sizes, test_scores_mean, 'o-', color=\"g\",\n", " label=\"Cross-validation score\")\n", "\n", " plt.legend(loc=\"best\")\n", " return plt\n", "\n", "\n", "digits = load_digits()\n", "X, y = digits.data, digits.target\n", "\n", "\n", "title = \"Learning Curves (Naive Bayes)\"\n", "# Cross validation with 100 iterations to get smoother mean test and train\n", "# score curves, each time with 20% data randomly selected as a validation set.\n", "cv = cross_validation.ShuffleSplit(digits.data.shape[0], n_iter=100,\n", " test_size=0.2, random_state=0)\n", "\n", "estimator = GaussianNB()\n", "plot_learning_curve(estimator, title, X, y, ylim=(0.7, 1.01), cv=cv, n_jobs=4)\n", "\n", "title = \"Learning Curves (SVM, RBF kernel, $\\gamma=0.001$)\"\n", "# SVC is more expensive so we do a lower number of CV iterations:\n", "cv = cross_validation.ShuffleSplit(digits.data.shape[0], n_iter=10,\n", " test_size=0.2, random_state=0)\n", "estimator = SVC(gamma=0.001)\n", "plot_learning_curve(estimator, title, X, y, (0.7, 1.01), cv=cv, n_jobs=4)\n", "\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }