{ "metadata": { "name": "", "signature": "sha256:6b380be923ff10c30bb2fd20b1ab4d740f1adca296ab4e9be958591a9e6f0151" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "\n", "# Some nice default configuration for plots\n", "plt.rcParams['figure.figsize'] = 10, 7.5\n", "plt.rcParams['axes.grid'] = True\n", "plt.gray()\n", "\n", "import numpy as np\n", "import pandas as pd" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 1 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "4. Over-Fitting and Model Tuning" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Many modern classification and regression models are highly adaptable; they are capable of modeling complex relationships. However, they can very easily overemphasize patterns that are not reproducible. Without a methodological approach to evaluating models, the modeler will not know about the problem until the next set of samples are predicted. The aim of this chapter is to explain and illustrate key principles of laying a foundation onto which trustworthy models can be built and subsequently used for prediction. More specifically, we will describe strategies that enable us to have confidence that the model we build will predict new samples with a similar degree of accuracy on the set of data for which the model was evaluated. Without this confidence, the model's predictions are *uesless*." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On a practical note, all model building efforts are constrained by the existing data. For many problems, the data may have a limited number of samples, may be if less-than-desirable quality, and/or may be unrepresentative of future samples. While there are ways to build predictive models on small data sets, which we will describe in this chapter, we will assume that data quality is sufficient and that it is representative of the entire sample population." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Working under these assumptions, we must use the data at hand to find the best predictive model. Almost all predictive modeling techniques have tuning parameters that enable the model to flex to find the structure in the data. Hence, we must use the existing data to identify settings for the model's parameters that yield the best and most realistic predictive performance. Traditionally, this has been achieved by splitting the existing data into training and testing sets. The training set is used to build and tune the model and the test set is used to estimate the model's predictive performance. Modern approaches to model building split the data into multiple training and testing sets, which have been shown to often find more optimal tuning parameters and give a more accurate representation of the model's predictive performance." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "4.1 The Problem of Over-Fitting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There now exist many techniques that can learn the structure of a set of data so well that when the model is applied to the data on which the model was built, it correctly predicts every sample. In addition to learning the general patterns in the data, the model has also learn the characteristics of each sample's unique noise. This type of model is said to be over-fit and will usually have poor accuracy when predicting a new sample." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider a simple classification example with two predictor variables." ] }, { "cell_type": "code", "collapsed": false, "input": [ "predictors = pd.read_csv(\"../datasets/twoClassData/predictors.csv\")\n", "classes = pd.read_csv(\"../datasets/twoClassData/classes.csv\")\n", "\n", "predictors.drop('Unnamed: 0', axis=1, inplace=True)\n", "classes.drop('Unnamed: 0', axis=1, inplace=True)\n", "\n", "print predictors.shape\n", "print classes.shape" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(208, 2)\n", "(208, 1)\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "predictors.head(5)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PredictorAPredictorB
0 0.1582 0.1609
1 0.6552 0.4918
2 0.7060 0.6333
3 0.1992 0.0881
4 0.3952 0.4152
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ " PredictorA PredictorB\n", "0 0.1582 0.1609\n", "1 0.6552 0.4918\n", "2 0.7060 0.6333\n", "3 0.1992 0.0881\n", "4 0.3952 0.4152" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "classes.head(5)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0
0 Class2
1 Class2
2 Class2
3 Class2
4 Class2
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ " 0\n", "0 Class2\n", "1 Class2\n", "2 Class2\n", "3 Class2\n", "4 Class2" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "colors = ['r', 'b']\n", "markers = ['o', 's']\n", "c = ['Class1', 'Class2']\n", "for k, m in enumerate(colors):\n", " i = np.where(classes.iloc[:,0] == c[k])[0]\n", " if k == 0:\n", " plt.scatter(predictors.iloc[i, 0], predictors.iloc[i, 1], \n", " c=m, marker=markers[k], alpha=0.4, s=26, label='Class 1')\n", " else:\n", " plt.scatter(predictors.iloc[i, 0], predictors.iloc[i, 1], \n", " c=m, marker=markers[k], alpha=0.4, s=26, label='Class 2')\n", "\n", "plt.title('Original Data')\n", "plt.xlabel('Predictor A')\n", "plt.ylabel('Predictor B')\n", "plt.legend(loc='upper center', ncol=2)\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nkUKiJT98rLGxkfr6eq+bkXOuxj2S3t5eenp6KCkpGfK1vXv38sDPf455+WVCJSXMuewy5p5/fkaf\n/7vf/S433HADN910E0uXLmXUqFFs2rSJX//619TV1eW89+Tss8/m3//93/nhD3+Yd8tIrF17CwcO\ndA84V1FRwrXXfiJjz5FP9+PVV1/lXe96F9/73veoqKjg5ptvZtmyZbS3tzNmzJghj3f151txSyLU\n0ybiY9Zatj7wALetWcMd//Iv/HL9el555ZW+r7/22ms03nILDeEwH508mQ+MG8fOu+9m7969A67z\nyiuv8OjWrWx7+GFefvnlpNpw5MgRrrvuOv77v/+b973vfZx88skUFRWxbNkyvv3tb8f9ng9+8IOc\neeaZlJWVsWjRIp555pm+r917773Mnj2bsWPHUllZyY033gjAwYMHec973sP48eM59dRTWbhw4bDJ\nx1VXXcWll15KaWlpzhPGtWtvYeXKdQM+1q69pe/rBw50U1V1zYCPwUlcOvLtfkyZMoW/+7u/4/TT\nT8cYw9VXX82bb77Jc889l7GYRVyhnjYfc/Xdiatxx/Onp57ipd/8hg9PmsRJwSA7Ojq4b8MGPvS5\nz2GMYe/evUx64w3OOP10AE456STOLSmh7emnmTx5MgAdHR00//jHzOzpwQC/ufdeLvzkJ5kyZUpC\nbWhtbeWNN97g/e9/f8LtXrZsGevXr2fUqFF8+ctfZvny5Tz22GMA/PVf/zV33XUXdXV1HDlyhLa2\nNgBuvPFGJk2axMGDBwF4+OGH864XDd5Kyvrr6FiX8PfH64mDxHvj8v1+PP7447z55ptMnz497tdd\n/flW3JII9bSJ+Njubds4/9RTOXnUKIwxvO3MMyl68UW6uroAKC4u5s1B3/NmOEzxqFF9x1t/8xsW\nn3wy8yZP5oLJk1lSWsrWe+5JuA2HDh3itNNOIxBI/NfJihUrGDNmDMFgkOuuu44nnniCY8eOATBq\n1Ciefvppjh49yrhx43jHO97Rd/7FF1+kvb2doqIi6urqEn4+P4nXE5dMb1w+34+jR4/y8Y9/nOuv\nv57S0tKE2yciEUrafMzV9W1cjTueQFERveHwgHO90PcHu6qqioOnnspT+/fzRihEx6FDPAXMmjMH\ngHA4zJEXXmDi+PF933/GuHG8duAAoVAooTaceuqpHDx4kPCgdgynt7eXr371q0yfPp1x48YxZcoU\n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\nfog7G1yNO1VK2kRERER8QMOjIiIiIjmk4VERERGRAqakzcdcrQVQ3G5R3G5R3G5xNe5UKWkTERER\n8QHVtImIiIjkkGraRERERAqYkjYfc7UWQHG7RXG7RXG7xdW4U1XsdQNERETETXfdtYnf//65Iecr\nKkq49tpPeNCi/KaaNhEREfHEypXrqKq6Zsj5jo51rFkz9HyhUE2biIikLRwO9+2tKSL5RUmbj7la\nC6C43aK4cyMUCtG4cSPrV69m/erVNG7aRCgUymkbQPfbNR0dO71ugq8oaRMRER7avBnb3Mzy8nKW\nl5djm5po2bLF62aJSD9K2nysvr7e6yZ4QnG7RXFnXzgcpm3rVmorKykJBikJBqmtrGR3a2vOh0p1\nv91SVTXT6yb4imaPioiIiCcqKkro6FgX97wMpaTNxxobG518d6a43aK4sy8QCDB1/nxampqorawE\noKWzk2n19QQCuR2Q0f12y5w5VU7GnSolbSIiQl1DAy3GsKG1FYBp9fXULl7scatEpD+t0yYiIn1i\nNWy57mETcUmq67Spp01ERPooWRPJX/rp9DFX1/VR3G5R3G5R3G5xNe5UKWkTERER8QHVtImIiIjk\nkC/3HjXGXGqMedYY87wx5ivDPKbeGPOYMeZPxpjGHDdRREREJC94lrQZY4qA7wOXAm8DrjTGnDPo\nMWXAfwGXW2vfDlyR84bmMVdrARS3WxS3WxS3W1yNO1Ve9rTNA3ZZa9uttSHgp8B7Bz3mo8Dd1tpO\nAGvtwRy3UURERCQveFbTZoy5Alhqrb06evwx4F3W2i/2e8x/AEFgNlAKrLXW3hbnWqppExEREV/w\n4zptiWRZQeA8oAEYDbQaYx621j4/+IErVqyguroagLKyMubOndu3NUas+1XHOtaxjnWsYx3rONfH\nsc/b29tJh5c9bfOB6621l0aPvwaErbU39HvMV4CTrbXXR49vBjZZa+8adC0ne9oaGxv7XhguUdxu\nUdxuUdxucTVuP84efRQ42xhTbYwZBXwYuGfQY34FXGiMKTLGjAbeBTyT43aKiIiIeM7TddqMMZcB\n3wOKgB9Za79ljPkMgLX2puhj/gH4JBAG/sda+//FuY6TPW0iIiLiP6n2tGlxXREREZEc8uNEBEmT\nq7UAitstitst2Yx77dpbOHCge8j5iooSrr32E1l5zkTpfksilLSJiIgTDhzopqrqmiHnOzrWedAa\n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\nq+Pvfe97ad/fnp4eikMh2rZu5dn2ds5629v4/Je+RDAY9Dw+3e+Bx+ne782bN/OnP/6Rsa+/DsDR\n0aN5+3k6AVpfAAAgAElEQVTncfHFF+dFfIne77dq3yLrt1VVzQTgyJE2GhsbPW9vtu93bOHd0Guv\nARAcPZpp9fU0NzfnVfv1853ccSZ+n/vhOPZ5e3s76Rh2yQ9jzGPW2ncM/jzecUpPbMx84Hpr7aXR\n468BYWvtDf0e08ZbidppwGvA1dbaewZdy8klP/r/onZJJuJu3LgR29w8YOX1QH19XtfH6H6n+P0+\nvNeg+z1YKBSiZcsWdse2nKqpoXbxYoLBYI5bmB26325JdcmPkZK2I0ATkaRpAfBAvy8vsNaWpdLQ\nftcvBnYCDcALwCPAlYMnIvR7/I+BX1tr/y/O15xM2iQ14XCY9atXszy6MTVAdyjEhq4uVqxapaUE\nCojutX8kupSHlvyQQpCNddr6Twq4cdDXvpPsEw1mre0xxnwBuA8oAn5krd1hjPlM9Os3pfscIiKS\n30KhEA9t3kzb1q1AZBi0rqFh2B40JWvismFf/dbaxhE+mjLx5Nbajdbamdba6dbab0XP3RQvYbPW\nfjJeL5vL+o+VuyTduPs2pu7spDsUojsUimxMXVOT138QdL+T59d7De7c776lPMrLWV5ezmO33krL\nli1eNyvnXLnfg7kad6ry+7eWSD+ZnP2XLxtkS/bpXueveEt5zC4vL6ilPEQySXuPSt5LdvgkGaqP\ncYfudf7JVc2h7r3km6zsPRrbjcBa+w8pt0wkTdlcCV2/xN2he51/+oavm5oGzO6dVl+fkfuVzTd8\nIl4Y8afCWtsLXBhdI03yjAu1APGGT0Kvvebk8IkL9zsexV3YBg9fPzF+fMaGrwfXy9mmprytl3Pl\nfg/matypSmTv0ceBXxljfk5knTQAq0kBIiKSrmAwyKKlS1mwZAkAzc3NGSt9aNu6leXRN3wAtZWV\nbGhtZcGSJep5FV86YU2bMWZ99NMBD7TWfjJLbUqaatoKW+OmTdhBwyd+WBxVRLyjNfokn2V8cV0/\nUdJW2Ap9JXQpPCp8zw96wyf5KtWk7YS/UYwxk4wxvzDGdEU/7jbGVKbWTMkkV2oBYsMnK1atYsWq\nVdiSEicTNlfu92B+ijsUCtG4cSPrV69m/erVNG7aRCgUSulafoo7kzIZt5+We9H9lkQkUtP2Y2AD\n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\n", "text": [ "" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that there is a significant overlap between the classes which is often the case for most applied modeling problems." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compare two classification models using boundary lines." ] }, { "cell_type": "code", "collapsed": false, "input": [ "## basic settings for classification boundary\n", "X = np.array(predictors)\n", "y = np.ravel(classes)\n", "\n", "h = .002 # step size in the mesh\n", "# create a mesh to plot in\n", "x_min, x_max = X[:, 0].min() - 0.1, X[:, 0].max() + 0.1\n", "y_min, y_max = X[:, 1].min() -0.1, X[:, 1].max() + 0.1\n", "xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n", " np.arange(y_min, y_max, h))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "## K-nearest neighbors\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.grid_search import GridSearchCV\n", "\n", "## 3 neighbors (use odd value to avoid ties)\n", "neigh = KNeighborsClassifier(n_neighbors=3)\n", "neigh.fit(X, y)\n", "Z3 = neigh.predict(np.c_[xx.ravel(), yy.ravel()])\n", "Z3 = Z3.reshape(xx.shape)\n", "Z3 = (Z3 == 'Class1').astype('int')\n", "\n", "## optimal neighbors\n", "knn_param = {\n", " 'n_neighbors': range(1, 100),\n", "}\n", "\n", "gs_neigh = GridSearchCV(KNeighborsClassifier(), knn_param, cv = 2, n_jobs=-1)\n", "gs_neigh.fit(X, y)\n", "Z = gs_neigh.predict(np.c_[xx.ravel(), yy.ravel()])\n", "Z = Z.reshape(xx.shape)\n", "Z = (Z == 'Class1').astype('int')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "colors = ['r', 'b']\n", "markers = ['o', 's']\n", "c = ['Class1', 'Class2']\n", "\n", "fig, (ax1, ax2) = plt.subplots(1, 2)\n", "\n", "for k, m in enumerate(colors):\n", " i = np.where(classes.iloc[:,0] == c[k])[0]\n", " if k == 0:\n", " ax1.scatter(predictors.iloc[i, 0], predictors.iloc[i, 1], \n", " c=m, marker=markers[k], alpha=0.4, s=26, label='Class 1')\n", " else:\n", " ax1.scatter(predictors.iloc[i, 0], predictors.iloc[i, 1], \n", " c=m, marker=markers[k], alpha=0.4, s=26, label='Class 2')\n", "\n", "ax1.set_title('Model #1')\n", "ax1.set_xlabel('Predictor A')\n", "ax1.set_ylabel('Predictor B')\n", "ax1.legend(loc='upper center', ncol=2)\n", "# plot boundary\n", "ax1.contour(xx, yy, Z3, cmap=plt.cm.Paired)\n", "\n", "\n", "for k, m in enumerate(colors):\n", " i = np.where(classes.iloc[:,0] == c[k])[0]\n", " if k == 0:\n", " ax2.scatter(predictors.iloc[i, 0], predictors.iloc[i, 1], \n", " c=m, marker=markers[k], alpha=0.4, s=26, label='Class 1')\n", " else:\n", " ax2.scatter(predictors.iloc[i, 0], predictors.iloc[i, 1], \n", " c=m, marker=markers[k], alpha=0.4, s=26, label='Class 2')\n", "\n", "ax2.set_title('Model #2')\n", "ax2.set_xlabel('Predictor A')\n", "ax2.set_ylabel('Predictor B')\n", "ax2.legend(loc='upper center', ncol=2)\n", "# plot boundary\n", "ax2.contour(xx, yy, Z, cmap=plt.cm.Paired)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n/gNxDmHTZ4UIpAAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The left-hand panel (Model #1) shows a boundary that is complex and attempts to encircle every possible data point. The right-hand panel shows an alternative model fit where the boundary is fairly smooth and does not overextend itself to correctly classfiy every data point in the training set." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To gauge how well the model is classifying samples, one might use the training set. In doing so, the estimated error rate for the model in the left-hand panel would be overly optimistic. Estimating the utility of a model by re-predicting the training set is referred to *apparent performance* of the model (e.g., the apparent error rate). In two dimensions, it is not difficult to visualize that one model is over-fitting, but most modeling problems are in much higher dimensions. In this situations, it is very important to have a tool for characterizing how much a model is over-fitting the training set." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "4.2 Model Tuning" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Many models have important parameters which cannot be directly estimated from the data. This type of model parameter is referred to as a *tuning parameter* because there is no analytical formula available to calculate an appropriate value. Since many of these parameters control the complexity of the model, poor choices of the values can result in over-fitting." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are different approaches to searching for the best parameters. A general approach that can be applied to almost any model is to define a set of candidate values, generate reliable estimators of model utility across the candidates values, then choose the optimal settings. Once a candidate set of parameter values has been selected, then we must obtain trustworthy estimates of model performance. The performance on the hold-out samples is then aggregated into a performance profile which is then used to determine the final tuning parameters. We then build a final model with all of the training data using the selected tuning parameters." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are procedures that algorithmically determine appropriate values for tuning parameters and iterate until they arrive at parameter settings with optimal performance. These techniques tend to evaluate a large number of candidate models and can be superior to a defined set of tuning parameters when model performances can be efficiently calculated (for a review see Cohen et al. (2005))." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A more difficult problem is obtaining trustworthy estimates of model performance for these candidate models. The apparent error rate can produce extremely optimistic performance estimates. A better approach is to test the model on samples that were not used for training. Evaluating the model on a test set is the obvious choice, but, to generate reasonable precision of the performance values, the size of the test set may need to be large. An alternative approach to evaluating a model on a single test set is to *resample* the training set. This process uses several modified versions of the training set to build multiple models and then uses statistical methods to provide honest estimates of model performance." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "4.3 Data Splitting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A few of the common steps in model building are\uff1a\n", "- Pre-processing the predictor data\n", "- Estimating model parameters\n", "- Selecting predictors for the model\n", "- Evaluating model performance\n", "- Fine tuning class prediction rules (via ROC curves, etc.)\n", "\n", "Given a fixed amount of data, the modeler must decide how to \"spend\" their data points to accommodate these activities." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of the first decisions to make when modeling is to decide which samples will be used to evaluate performance. Ideally, the model should be evaluated on samples that were not used to build or fine-tune the model, so that they provide an unbiased sense of model effectiveness. \n", "\n", "When a large amount of data is at hand, a set of samples can be set aside to evaluate the final model. However, when the number of samples is not large, a strong case can be made that a test set should be avoided because every sample may be needed for model building. Additionally, the size of the test set may not have sufficient power or precision to make reasonable judgements. Resampling methods, such as cross-validation, can be used to produce appropriate estimates of model performance using the training set.\n", "\n", "If a test set is deemed necessary, there are several methods for splitting the samples. Non-random approaches to splitting the data are sometimes appropriate. However, in most cases, there is the desire to make the training and test sets as homogeneous as possible. Random sampling methods can be used to create similar data sets." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The simplest way to split the data into a training and test set is to take a simple random sample. This does not control for any of the data attributes, such as the percentage of data in the classes. When one class has a disproportionately small frequency compared to the others, there is a chance that the distribution of the outcomes may be substantially different between the training and test sets\n", "\n", "To account for the outcome when splitting the data, stratified random sampling applies random sampling within subgroups so that the outcome distributions will match.\n", "\n", "Alternatively, the data can be split on the basis of the predictor values, e.g. *dissimilarity sampling*. Dissimilarity between two samples can be measured in a number of ways, e.g. distance. To use dissimilarity as a tool for data splitting, suppose the test set is initialized with a single sample. The dissimilarity between this initial sample and the unallocated samples can be calculated. THe unallocated sample that is most dissimilar would then be added to the test set. Then, the third point added to the test set would be chosen as having the maximum group dissimilarity (e.g., the average/minimum dissimilarities to that group) to the existing set. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# dissimilarity sampling\n", "def group_dissimilarity(A, S):\n", " '''measure average dissimilarity between A and a group of samples S'''\n", " A = np.array(A, ndmin=2)\n", " A_extend = np.repeat(A, S.shape[0], axis=0)\n", " return np.mean(np.sqrt(np.sum((A_extend - S)**2, axis=1)))\n", " \n", "def dissimilarity_sampling(data, train_prop = 0.5):\n", " '''dissimilarity sampling of a dataset into training and test set'''\n", " data = np.array(data, ndmin=2)\n", " n_data = data.shape[0]\n", " n_train = np.int(n_data*train_prop)\n", " rd_int = np.random.randint(n_data, size=1)\n", " train = np.array(data[rd_int, :], ndmin=2) # initial point\n", " data = np.delete(data, rd_int, axis=0) # remove selected sample from data\n", " \n", " # sampling\n", " counter = 1\n", " while counter < n_train:\n", " counter += 1\n", " dist_array = np.zeros(n_data - counter + 1)\n", " for idx, i in enumerate(data):\n", " dist_array[idx] = group_dissimilarity(i, train)\n", " dx = np.argmax(dist_array) # find the most dissimilar\n", " train = np.vstack([train, data[dx]])\n", " data = np.delete(data, dx, axis=0)\n", " \n", " return (train, data)\n", "\n", "pred_train, pred_test = dissimilarity_sampling(predictors)\n", "print \"Dimensions of training set is {0}; test set is {1}\".format(pred_train.shape, pred_test.shape)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Dimensions of training set is (104, 2); test set is (104, 2)\n" ] } ], "prompt_number": 9 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "4.4 Resampling Techniques" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generally, resampling techniques for estimating model performance operate similarly: a subset of samples are used to fit a model and the remaining samples are used to estimate the efficacy of the model. This process is repeated multiple times and the results are aggregated and summarized. The differences in techniques usually center around the method in which subsamples are chosen." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "k-Fold Cross-Validation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The samples are randomly partitioned into k sets of roughly equal size. A model is fit using the all samples except the first subset (the first fold). The held-out samples are predicted by this model and used to estimate performance measures. The first subset is returned to the training set and procedure repeats with the second subset held out, and so on. The k resampled estimates of performance are summarized (with mean and standard error) and used to understand the relationship between the tuning parameters and model utility. A slight variant of the model is to used stratified random sampling to select the k partitions to create balance with respect to the outcome. Another version, leave-one-out cross-validation (LOOCV), is the special case where k is the number of samples. \n", "\n", "The choice of k is usually 5 or 10, but there is no formal rule. As k gets larger, the differenec in size between the training set and the resampling subsets gets smaller. As this difference decreases, the *bias* of the technique becomes smaller.\n", "\n", "Another important aspect of a resampling technique is the uncertainty (i.e., variance or noise). An unbiased method may be estimating the correct value but may pay a high price in uncertainty. This means that repeating the resampling procedure may produce a very different value (but done enough times, it will estimate the true value). k-flod cross-validation generally has high variance compared to other methods and, for this reason, might not be attractive. It should be said that for large training sets, the potential issues with variane and bias becomes negligible." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Generalized Cross-Validation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For linear regression models, there is a formula for approximating the leave-one-out error rate. The formula for the generalized corss-validation (GCV) statistic is the i-th training set outcome $$\\text{GCV} = {1\\over n} \\sum_{i=1}^n \\left({y_i - \\hat{y}_i \\over 1 - df/n} \\right)^2,$$where $y_i$ is the i-th in the training set outcome, $\\hat{y}_i$ is the model prediction of that outcome, and $df$ is the degrees of freedom of the model. The degrees of freedom are an accounting of how many parameters are estimated by the model and, by extension, a measure of complexity for linear regression models. Based on this equation, two models with the same sums of square errors (the numerator) would have different GCV values if the complexities of the models were different." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Repeated Training/Test Splits" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Repeated training/test splits is also known as \"leave-group-out cross-validation\" or \"Monte Carlo cross-validation\". This technique simple creates multiple splits of the data into modeling and prediction sets. One difference between this procedure and k-fold cross-validation is that samples can be represented in multiple held-out subsets. Also, the number of repetitions is usually larger than in k-fold cross-validation.\n", "\n", "The proportion of the data going into each subset is controlled by the practitioner as is the number of repetitions. The bias of the resampling technique decreases as the amount of data in the subset approaches the amount in the modeling set. A good rule of thumb is about 75-80%. Higher proportions are a good idea if the number of repetitions is large.\n", "\n", "The number of repetitions is important. Increasing the number of subsets has the effect of decreasing the uncertainty of the performance estimates. To get stable estimates of performance, it is suggested to choose a larger number of repetitions (say 50-200). This is also a function of the proportion of samples being randomly allocated to the prediction set; the larger the percentage, the more repetitions are needed to reduce the uncertainty in the performance estimates." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "The Bootstrap" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A bootstrap sample is a random sample of the data taken *with replacement*. The bootstrap sample size is the same size as the original data set. As a result, some samples will be represented multiple times in the bootstrap sample while others will not be selected at all. The samples not selected are usually referred to as the \"out-of-bag\" samples. For a given bootstrap resampling, a model is built on the selected samples and is used to predict the out-of-bag samples.\n", "\n", "In general, bootstrap error rates tend to have less uncertainty than k-fold cross-validation. However, on average, 63.2% of the data points the bootstrap sample are represented at least once, so this technique has bias similar to k-fold cross-validation when $k \\approx 2$.\n", "\n", "A few modifications of the simple bootstrap procedure have been devised to eliminate this bias, such as the \"632 method\" and the \"632+ method\". If a classification model was characterized by its error rate, the 632 method would use $$(0.632 \\times \\text{simple bootstrap estimate}) + (0.369 \\times \\text{apparent error rate}).$$ The modified bootstrap estimate reduces the bias, but can be unstable with small sample sizes." ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Side note" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Why each bootstrap sample contains roughly 63.2% of the observations?\n", "\n", "We populate $S = \\{ s_1, \\cdots, s_n \\}$ by sampling $\\text{Obs} = \\{ d_1, \\cdots, d_n \\}$ for n times with replacement. Consider a particular observation $d_m$. Then the probability that this particular observation in bootstrap sample is $$P(d_m \\in S) = 1 - P(d_m \\notin S) = 1 - \\prod_{i=1}^n P(s_i \\neq d_m ) = 1 - \\prod_{i=1}^n (1-{1\\over n}) \\to 1 - e^{-1} \\approx 0.638. $$" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "4.5 Case Study: Credit Scoring" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The German credit data set is a popular tool for benchmarking machine learning algorithms\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# check if exists\n", "!ls -l ../datasets/GermanCredit/" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "total 480\r\n", "-rw-r--r-- 1 leigong staff 244776 Nov 18 16:08 GermanCredit.csv\r\n" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "germancredit = pd.read_csv(\"../datasets/GermanCredit/GermanCredit.csv\")\n", "germancredit.head(5)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0DurationAmountInstallmentRatePercentageResidenceDurationAgeNumberExistingCreditsNumberPeopleMaintenanceTelephoneForeignWorker...OtherInstallmentPlans.BankOtherInstallmentPlans.StoresOtherInstallmentPlans.NoneHousing.RentHousing.OwnHousing.ForFreeJob.UnemployedUnskilledJob.UnskilledResidentJob.SkilledEmployeeJob.Management.SelfEmp.HighlyQualified
0 1 6 1169 4 4 67 2 1 0 1... 0 0 1 0 1 0 0 0 1 0
1 2 48 5951 2 2 22 1 1 1 1... 0 0 1 0 1 0 0 0 1 0
2 3 12 2096 2 3 49 1 2 1 1... 0 0 1 0 1 0 0 1 0 0
3 4 42 7882 2 4 45 1 2 1 1... 0 0 1 0 0 1 0 0 1 0
4 5 24 4870 3 4 53 2 2 1 1... 0 0 1 0 0 1 0 0 1 0
\n", "

5 rows \u00d7 63 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ " Unnamed: 0 Duration Amount InstallmentRatePercentage ResidenceDuration \\\n", "0 1 6 1169 4 4 \n", "1 2 48 5951 2 2 \n", "2 3 12 2096 2 3 \n", "3 4 42 7882 2 4 \n", "4 5 24 4870 3 4 \n", "\n", " Age NumberExistingCredits NumberPeopleMaintenance Telephone \\\n", "0 67 2 1 0 \n", "1 22 1 1 1 \n", "2 49 1 2 1 \n", "3 45 1 2 1 \n", "4 53 2 2 1 \n", "\n", " ForeignWorker ... OtherInstallmentPlans.Bank \\\n", "0 1 ... 0 \n", "1 1 ... 0 \n", "2 1 ... 0 \n", "3 1 ... 0 \n", "4 1 ... 0 \n", "\n", " OtherInstallmentPlans.Stores OtherInstallmentPlans.None Housing.Rent \\\n", "0 0 1 0 \n", "1 0 1 0 \n", "2 0 1 0 \n", "3 0 1 0 \n", "4 0 1 0 \n", "\n", " Housing.Own Housing.ForFree Job.UnemployedUnskilled \\\n", "0 1 0 0 \n", "1 1 0 0 \n", "2 1 0 0 \n", "3 0 1 0 \n", "4 0 1 0 \n", "\n", " Job.UnskilledResident Job.SkilledEmployee \\\n", "0 0 1 \n", "1 0 1 \n", "2 1 0 \n", "3 0 1 \n", "4 0 1 \n", "\n", " Job.Management.SelfEmp.HighlyQualified \n", "0 0 \n", "1 0 \n", "2 0 \n", "3 0 \n", "4 0 \n", "\n", "[5 rows x 63 columns]" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "germancredit = germancredit.drop('Unnamed: 0', axis=1) # drop the first column\n", "germancredit.shape" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 12, "text": [ "(1000, 62)" ] } ], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "germancredit.groupby('Class').count()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DurationAmountInstallmentRatePercentageResidenceDurationAgeNumberExistingCreditsNumberPeopleMaintenanceTelephoneForeignWorkerCheckingAccountStatus.lt.0...OtherInstallmentPlans.BankOtherInstallmentPlans.StoresOtherInstallmentPlans.NoneHousing.RentHousing.OwnHousing.ForFreeJob.UnemployedUnskilledJob.UnskilledResidentJob.SkilledEmployeeJob.Management.SelfEmp.HighlyQualified
Class
Bad 300 300 300 300 300 300 300 300 300 300... 300 300 300 300 300 300 300 300 300 300
Good 700 700 700 700 700 700 700 700 700 700... 700 700 700 700 700 700 700 700 700 700
\n", "

2 rows \u00d7 61 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ " Duration Amount InstallmentRatePercentage ResidenceDuration Age \\\n", "Class \n", "Bad 300 300 300 300 300 \n", "Good 700 700 700 700 700 \n", "\n", " NumberExistingCredits NumberPeopleMaintenance Telephone \\\n", "Class \n", "Bad 300 300 300 \n", "Good 700 700 700 \n", "\n", " ForeignWorker CheckingAccountStatus.lt.0 ... \\\n", "Class ... \n", "Bad 300 300 ... \n", "Good 700 700 ... \n", "\n", " OtherInstallmentPlans.Bank OtherInstallmentPlans.Stores \\\n", "Class \n", "Bad 300 300 \n", "Good 700 700 \n", "\n", " OtherInstallmentPlans.None Housing.Rent Housing.Own Housing.ForFree \\\n", "Class \n", "Bad 300 300 300 300 \n", "Good 700 700 700 700 \n", "\n", " Job.UnemployedUnskilled Job.UnskilledResident Job.SkilledEmployee \\\n", "Class \n", "Bad 300 300 300 \n", "Good 700 700 700 \n", "\n", " Job.Management.SelfEmp.HighlyQualified \n", "Class \n", "Bad 300 \n", "Good 700 \n", "\n", "[2 rows x 61 columns]" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "To demonstrate the process of tuning models using resampling, we took a stratified random sample of 800 customers to use for training models. The remaining samples will be used as a test set to verify performance when a final model is determined." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def stratified_sampling(data, target, prop_train):\n", " '''a stratified random sampling based on proportion of the target outcomes.'''\n", " from collections import Counter\n", " \n", " n_class = dict(Counter(data[target]).items()) # frequency of possible outcomes\n", " data.reindex(np.random.permutation(data.index)) # random shuffle\n", " for key, val in n_class.iteritems():\n", " n_train = np.int(val*prop_train)\n", " try:\n", " trainset = trainset.append(data[data[target] == key].iloc[:n_train,:], ignore_index=True)\n", " testset = testset.append(data[data[target] == key].iloc[n_train:, :], ignore_index=True)\n", " except NameError:\n", " trainset = data[data[target] == key].iloc[:n_train,:]\n", " testset = data[data[target] == key].iloc[n_train:, :]\n", " \n", " return trainset, testset\n", " \n", "credit_train, credit_test = stratified_sampling(germancredit, 'Class', 0.8)\n", "print \"The size of training set is {0} and test set is {1}.\".format(credit_train.shape[0], credit_test.shape[0])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The size of training set is 800 and test set is 200.\n" ] } ], "prompt_number": 14 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "4.6 Choosing Final Tuning Parameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once final model performance has been quantified across sets of tuning parameters, there are several philosophies on how to choose the final settings. The simplest approach is to pick the settings associated with the numerically best performance estimates." ] }, { "cell_type": "code", "collapsed": false, "input": [ "X_train = credit_train.drop('Class', axis=1)\n", "y_train = credit_train['Class']\n", "X_test = credit_test.drop('Class', axis=1)\n", "y_test = credit_test['Class']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "# Support Vector Machine with kernel 'rbf'\n", "from sklearn.svm import SVC\n", "from sklearn.grid_search import GridSearchCV\n", "\n", "svc_param = {\n", " 'C': np.logspace(-2, 7,num=10, base = 2),\n", "}" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "# 10-fold CV for each model\n", "from scipy.stats import sem\n", "\n", "gs_svm = GridSearchCV(SVC(kernel = 'rbf'), svc_param, cv=10, n_jobs=-1)\n", "%time _ = gs_svm.fit(X_train, y_train)\n", "\n", "#cross-validated score\n", "cv_score = np.zeros([len(svc_param['C']), 2])\n", "for idx, i in enumerate(gs_svm.grid_scores_):\n", " cv_score[idx, 0] = np.mean(i[2])\n", " cv_score[idx, 1] = sem(i[2]) * 2 # two standard errors\n", " \n", "gs_svm.grid_scores_" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "CPU times: user 483 ms, sys: 57.3 ms, total: 541 ms\n", "Wall time: 3.56 s\n" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "[mean: 0.70000, std: 0.00000, params: {'C': 0.25},\n", " mean: 0.70000, std: 0.00000, params: {'C': 0.5},\n", " mean: 0.69000, std: 0.01346, params: {'C': 1.0},\n", " mean: 0.67000, std: 0.03172, params: {'C': 2.0},\n", " mean: 0.66875, std: 0.03075, params: {'C': 4.0},\n", " mean: 0.66750, std: 0.03172, params: {'C': 8.0},\n", " mean: 0.66750, std: 0.03172, params: {'C': 16.0},\n", " mean: 0.66750, std: 0.03172, params: {'C': 32.0},\n", " mean: 0.66750, std: 0.03172, params: {'C': 64.0},\n", " mean: 0.66750, std: 0.03172, params: {'C': 128.0}]" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "# apparent score\n", "apparent_score = np.zeros(len(svc_param['C']))\n", "\n", "# iterate over all models\n", "for cdx, c in enumerate(svc_param['C']):\n", " svm = SVC(kernel = 'rbf', C = c)\n", " svm.fit(X_train, y_train)\n", " apparent_score[cdx] = svm.score(X_train, y_train)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "plt.fill_between(svc_param['C'],\n", " cv_score[:,0] - cv_score[:,1],\n", " cv_score[:,0] + cv_score[:,1],\n", " color = 'b', alpha = .2)\n", "plt.plot(svc_param['C'], cv_score[:,0], 'o-k', c='b', label='Cross-validated')\n", "\n", "plt.plot(svc_param['C'], apparent_score, 'o-k', c='g', label='Apparent')\n", "\n", "plt.xlabel('Cost')\n", "plt.ylabel('Estimated Accuracy')\n", "plt.ylim((None, 1.05))\n", "plt.legend(loc = 'upper right', ncol=2)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAm0AAAHSCAYAAAC+f/yDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt8FPW9//H3JwkXgXALiMpFJKJHrQoKCCqQVgWOotZa\nsVhpsR6rv6NgLVYqVsFaaz2tHgWth1ptvSG1tlYUUfASxRuWCoLXckslQFVEFOROPr8/dhND2CSb\nmWwmO3k9H499mJmd2fnuexP9+J3PzJq7CwAAAI1bTtQDAAAAQO0o2gAAALIARRsAAEAWoGgDAADI\nAhRtAAAAWYCiDQAAIAtktGgzs3vN7CMzW1rDNlPNbJmZvWVmfSutLzGzJWa2yMzeyOQ4AQAAGrtM\nz7T9QdKI6p40s1MlHezuvSX9UNJdlZ52SUXu3tfdB2R2mAAAAI1bRos2d58v6bMaNjlD0n3JbRdI\nam9mXSo9bxkcHgAAQNaIuqetq6TVlZZLk+ukxEzbs2a20MwuavCRAQAANCJ5UQ9A1c+mnejua82s\ns6R5ZvZ+cubuqx3N+A4uAACQNdw98FnEqGfa1kjqXmm5W3Kd3H1t8p+fSHpMUsq+NnfnEfAxefLk\nyMeQzQ/yIzvyy84H+ZFdVI+woi7aZkn6niSZ2UBJG939IzNrZWb5yfWtJQ2TVO0VqAimpKQk6iFk\nNfILjuzCIb9wyC84sotWRk+PmtnDkoZK6mRmqyVNltRMktx9urs/ZWanmtlySV9KuiC5636S/mpm\n5WN8yN3nZnKsAAAAjVlGizZ3H53GNpelWLdSUp+MDAoVxo4dG/UQshr5BUd24ZBfOOQXHNlFy+rj\nHGtUzMyzefwAAKDpMDN5iAsRGsPVo4hIcXGxioqKoh5G1iK/4MguIdkCAiCGMjGpRNEGABHibAEQ\nP5n6HzJOjwJARJKnSqIeBoB6Vt3fdtjTo1Hf8gMAAABpoGhrwoqLi6MeQlYjv+DIDgDqjqINAAAg\nC1C0NWFcvRcO+QVHdmgoJSUlysnJUVlZmSTp1FNP1QMPPJDWtpnWs2dPPffccw1yLMQDRRsAIKUZ\nM2aoX79+ys/P1wEHHKBTTz1Vr7zyStTDCuWpp57SmDFjQr9OcXGxunfvXvuGNTCzJnnbl6KiInXs\n2FE7duyIeih11tCFfVUUbU0YfUXhkF9wZFez2bNf0vDhP1NR0RQNH/4zzZ79UoO/xq233qorrrhC\nP/vZz/Txxx9r9erVuvTSSzVr1qy9tt29e3edx4eGNXvebA2/YLiKxhZp+AXDNXve7Eheo6SkRG+8\n8Yb23XfflL9LmbZr1656eZ3IrvqO+hvvwzwSw0dQL7zwQtRDyGrkFxzZJaT6d9iTT77ohYWTXPKK\nR2HhJH/yyRfTft2wr7Fx40Zv06aNP/rooymfnzx5sp999tl+/vnne9u2bf2ee+7xNWvW+Omnn+4d\nO3b0gw8+2O++++6K7RcsWODHHnust23b1rt06eI//vGP3d1969at/t3vftcLCgq8ffv23r9/f//o\no4/2Ot7MmTO9X79+e6y79dZb/Ywzzki+3ye9T58+3rZtW+/evbtPmTKlYrtVq1a5mfnu3bvd3X3o\n0KH++9//3t3dd+3a5RMmTPBOnTp5r169/I477thj23vvvdcPO+wwz8/P9169evn06dPd3X3z5s3e\nsmVLz8nJ8TZt2nh+fr6vW7fOy8rK/KabbvLCwkIvKCjwUaNG+YYNGyrGcv/993uPHj28oKDAb7zx\nRu/Zs6c/99xzaX0mYTw590kvPLPQNUUVj8IzC/3JuU826Gu4u19//fV++umn+y9+8QsfOXJkxfrv\nf//7fvHFF/spp5zi+fn5PnToUP/Xv/5V8byZ+dSpU71Xr17eqVMn/8lPfuJlZWXu7r58+XL/+te/\n7gUFBd6pUyf/7ne/6xs3bqzY98ADD/Sbb77ZjzzySG/ZsqXv3r3bX3vtNR80aJC3b9/ejz76aC8u\nLq7YfujQoX7ttdf6CSec4Pn5+T5s2DBfv369u7t3797dzczbtGnjbdq08ddffz3l+6yuPkmuD173\nhNk56gdFG4BslurfYcOGXbNHsVX+GD78Z2m/btjXmDNnjufl5VUUL1VNnjzZmzVr5o8//ri7J4qv\nwYMH+6WXXurbt2/3xYsXe+fOnf355593d/eBAwf6gw8+6O7uX375pS9YsMDd3f/v//7PTz/9dN+6\ndauXlZX5m2++6V988cVex9uyZYvn5+f7smXLKtb169fP//SnP7m7e3Fxsb/99tvu7r5kyRLv0qWL\n/+1vf3P3vYu2oqIiv+eee9zd/a677vL/+I//8NLSUt+wYYMXFRV5Tk5OxbazZ8/2lStXurv7iy++\n6K1atfI333yz4pjdunXbY5y33XabDxo0yNesWeM7duzwiy++2EePHu3u7u+88463adPG58+f79u3\nb/cf//jHnpeX1yBF27Cxw/Yotsofwy8Y3qCv4e5eWFjoDz74oP/zn//0Zs2a+ccff+zuiaItPz+/\nIp/LL7/cTzzxxIr9zMy/8Y1v+GeffeYffvihH3LIIRXF9/Lly/3ZZ5/1HTt2+CeffOJDhgzxH/3o\nRxX7Hnjggd63b18vLS31bdu2eWlpqRcUFPicOXPc3X3evHleUFBQUZgNHTrUDz74YF+2bJlv3brV\ni4qK/Kc//am7u5eUlOzx+1SdTBVtnB4FgEZk+/bUX1TzzDO5MlNaj7lzU7/Gtm25aY3h008/VadO\nnZSTU/1/Io4//nidccYZkqRPPvlEr776qm6++WY1b95cRx99tP7rv/5L999/vySpefPmWrZsmdav\nX69WrVppwIABFes//fRTLVu2TGamvn37Kj8/f69j7bPPPjrzzDP18MMPS5KWLVumDz74oOL4Q4cO\n1RFHHCFJOvLII/Wd73xHL774Yq3v85FHHtEVV1yhrl27qkOHDpo0aVL5hICkxEULBx10kCRpyJAh\nGjZsmObPny8p9emx6dOn6xe/+IUOOOAANWvWTJMnT9ajjz6q3bt369FHH9Xpp5+uE088Uc2bN9cN\nN9xQY771abtvT7n+mZXPyK63tB5zV81N+RrbyralPY6XX35Za9as0RlnnKHevXvr8MMP10MPPVTx\n/MiRIyvyufHGG/Xaa69pzZo1Fc9PnDhR7du3V/fu3fWjH/2o4vehsLBQJ510kpo1a6ZOnTrpiiuu\n2OPzNzONHz9eXbt2VYsWLfTggw/q1FNP1YgRIyRJJ598svr166fZs2dXbH/BBRfo4IMPVsuWLTVq\n1CgtXrxYUvTfYELR1oTRVxQO+QVHdtVr0SJ1z83w4btTzJ2lfgwblvo1WrZMr/esoKBA69evr7HZ\nulu3bhU/r127Vh07dlTr1q0r1vXo0aPiP7j33HOP/vnPf+qwww7TgAEDKv7jOGbMGA0fPlzf+c53\n1LVrV02cOFG7du3S/PnzlZ+fr/z8fB155JGSpPPOO6/iP9IzZszQWWedpZYtW0qSFixYoK9//eva\nd9991b59e02fPl2ffvppre9z3bp1e1xM0KNHjz2enzNnjgYOHKiCggJ16NBBTz31VI2vW1JSorPO\nOksdOnRQhw4ddPjhhysvL08fffSR1q1bt0dmrVq1UkFBQa1jrA8trEXK9cN7DZdP9rQeww4alvI1\nWua0THsc9913n4YNG1ZRmJ9zzjm67777Kp6vnE/r1q3VsWNHrV27tmJd1c+q/LmPPvpI3/nOd9St\nWze1a9dOY8aM2etzqrzvv/71L/35z3+u+Jw6dOigV155Rf/+978rttlvv/0qft5nn320efPmtN9n\nJlG0AUAjMn78MBUWXrPHusLCSRo37pQGe41BgwapRYsWeuyxx1I+X/WqxwMOOEAbNmzY4z9sH374\nYcV/hA8++GDNmDFDn3zyiSZOnKhvf/vb2rp1q/Ly8nTdddfpnXfe0auvvqonn3xS999/vwYPHqxN\nmzZp06ZNWrp0qaTEbMgnn3yit956SzNnztR5551XcazzzjtP3/zmN1VaWqqNGzfqkksuSevqvv33\n318ffvjhHmMut337dp199tm66qqr9PHHH+uzzz7TqaeeWjHTkuqqzx49eujpp5/WZ599VvHYsmWL\nDjjgAO2///5avXp1xbZbtmxJq7CsD+PPG6/CRYV7rCt8s1DjRo9rsNfYunWrHnnkET3//PPaf//9\ntf/+++uWW27RkiVLtGTJEknaI5/Nmzdrw4YNOuCAAyrWVf2sunbtKkmaNGmScnNz9fbbb+vzzz/X\nAw88sNfnX/nz6tGjh8aMGbPH57Rp0yZdddVVtb6PqK/25QvjmzDulRUO+QVHdtU77bQhkqRp067V\ntm25atlyt8aNG1GxviFeo127dvr5z3+uSy+9VHl5eTrllFPUrFkzPfvssyouLlarVq322L579+46\n/vjjdfXVV+s3v/mNPvjgA917772aMWOGJOnBBx/U8OHD1blzZ7Vr105mppycHL3wwgvq1KmTDj/8\ncOXn56tZs2bKzU19CrdZs2Y655xzdOWVV+qzzz7TKad8VYBu3rxZHTp0UPPmzfXGG29oxowZGj58\neK3vc9SoUZo6dapGjhypVq1a6Ve/+lXFczt27NCOHTsqThPPmTNHc+fOrZj569Kliz799FN98cUX\natu2rSTpkksu0aRJk3TfffepR48e+uSTT/Taa6/pjDPO0Le//W0dd9xxeuWVV9S/f39dd911DXbb\niNNOOU2SNO3hadpWtk0tc1pq3GXjKtY3xGv87W9/U15ent566y01b95cUuJU46hRo3T//ffLzPTU\nU09V5HPttddq0KBBFYWZJP3mN7/Rcccdp02bNmnq1KmaMGGCpMTn365dO7Vt21Zr1qzRr3/96xrH\n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\n+habnratW6WXXkpciPDYY9LUqREPDgAA1Bt62mI001Z+z7WvfU165x1ukgsAAOIlNkVbTo7UsqXU\noUPin6WlUY+o8aM3IRzyC47swiG/cMgvOLKLVmyKNklq3ToxfUpfGwAAiJvY9LRJiXu1rV0rPf54\n4svhr7wywsEBAIB6Q09bzGba8vMTH+rXvsZMGwAAiJdYFW0tWyb+edhh0vLl0o4d0Y6nsaM3IRzy\nC47swiG/cMgvOLKLViy+e7RcixaJq0YXLnxJOTlzdcEFeerQYZfOPXcYXyAPAACyWqx62nbskH71\nq5d0993PqLT0xor13bpdowkThlcUbvPnv6Q//WmuduzIU/PmFHUAADR29LTFbKateXNp1qy5exRs\nklRaeqPuuuta7bffEH344UuaNm3Poq609BpJSrtwi7roi/r4UWvq778p47MHmqb581/SzJlztX17\nnvbdd5fGjx+m005ren/7sSraJGn37tRv6d//ztWkSVJJyVy5713UTZt2rXbsGKJ27VTxaNv2qz65\ncvPnv6RbbglX9IVRn8dfuLBY/foV1efwMi7q/CvLxvwaiyDZNabPPmr87oVDfsFFkV2qv/0VKxJ/\n+02tcItd0daq1a6U6484YremTZMuuihPixbt/fznn+fq6aelzz/f85GTI7Vvnyjg2rWTVq6cqw0b\n9i76br31Wi1blvlfnieeSD2TGOT4a9ZIS5bU5+gyrz7ff1jZmF9jESS7xvTZR43fvXDIL7goskv1\nt79iRWKyhaIty1144TCtWnWN1q2r3NM2SaNGjZAktWiRuqg75JDd+vWv91znLm3blijeNm6UvvhC\n+vWv87Rhw97779iRq61b6+1tVGvHjtQfWZDjd+xY1CBjrk/1+f7Dysb8Gosg2TWmzz5q/O6FQ37B\nRZFddX/727blNuxAGoHYFW2nnTZEpaXS009fq+3bc9WixW6NGjWi4vTJuecOU2npNVUuVPiqqKvM\nTNpnn8Rjv/0S67p02aVVq/Y+bq9eu3XppRl5S3t4771d+uij6I4ftab+/psyPnugaarub79ly90N\nP5iIxeo+bVLith/HHTdE06bdoN/9boqmTbthj36XwYOHaMKE4Ro06Fodc8wUDRp0rSZMGJF2T8y5\n5w5Tt27X7LEuUfSdUq/voyGOn43324k6/8qyMb/GIkh2jemzjxq/e+GQX3BRZJfqb7+wcJLGjWt6\n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\n", "text": [ "" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the over-estimation of the accuracy from the apparent score is likely due to over-fitting." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In general, it may be a good idea to favor simpler models over more complex ones and choosing the tuning parameters based on the numerically optimal value may lead to models that are overly complicated. Other schemes for choosing less complex models should be investigated as they might lead to simpler models that provide acceptable performance.\n", "\n", "The \"one-standard-error\" method for choosing simpler models find the numerically optimal value and its corresponding standard error and then seeks the simplest model whose performance is within a single standard error of the numerically best value.\n", "\n", "Another approach is to choose a simpler model that is within a certain tolerance of the numerically best value. The percent decreases in performance could be quantified by $(X - O)/O$ where $X$ is the performance value and $O$ is the numerically optimal value." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Additional resampling techniques were applied to the same data: 10-fold cross-validation, LOOCV, the bootstrap (with and without the 632 adjustment), and repeated training/test splits (with 20% held-out). THe latter two methods used 50 resamples to estimate performance." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# LOOCV (leave-one-out cross-validation)\n", "from sklearn.cross_validation import LeaveOneOut\n", "\n", "gs_svm = GridSearchCV(SVC(kernel = 'rbf'), svc_param, cv=LeaveOneOut(X_train.shape[0]), n_jobs=-1)\n", "%time _ = gs_svm.fit(X_train, y_train)\n", "\n", "#cross-validated score\n", "loocv_score = np.zeros([len(svc_param['C']), 2])\n", "for idx, i in enumerate(gs_svm.grid_scores_):\n", " loocv_score[idx, 0] = np.mean(i[2])\n", " loocv_score[idx, 1] = sem(i[2])*2 # two standard errors" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "CPU times: user 31.2 s, sys: 3.36 s, total: 34.6 s\n", "Wall time: 6min\n" ] } ], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the LOOCV takes siginificantly longer time to run when compared to other methods. It should be considered only when the number of samples is very small." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# bootstrap (with/without 632 method)\n", "bootstrap_score = np.zeros([len(svc_param['C']), 2])\n", "bootstrap632_score = np.zeros([len(svc_param['C']), 2])\n", "\n", "n_resamples = 50\n", "\n", "def bootstrap_resample(X, y):\n", " '''generate bootstrap training/test set.'''\n", " sample_size = X.shape[0]\n", " boot_idx = np.random.choice(sample_size, sample_size)\n", " # find out-of-bag samples\n", " boot_outbag = list(set(range(sample_size)) - set(np.unique(boot_idx)))\n", " X_bs, X_outbag = X.iloc[boot_idx, :], X.iloc[boot_outbag, :]\n", " y_bs, y_outbag = y[boot_idx], y[boot_outbag]\n", " return X_bs, X_outbag, y_bs, y_outbag\n", "\n", "# iterate over all models\n", "for cdx, c in enumerate(svc_param['C']):\n", " scores = np.zeros(n_resamples)\n", " scores_632 = np.zeros(n_resamples)\n", " for r in range(n_resamples):\n", " X_bs, X_outbag, y_bs, y_outbag = bootstrap_resample(X_train, y_train)\n", " svm = SVC(kernel = 'rbf', C = c)\n", " svm.fit(X_bs, y_bs)\n", " scores[r] = svm.score(X_outbag, y_outbag)\n", " # 632 method\n", " scores_632[r] = 0.632*svm.score(X_outbag, y_outbag) + 0.368*svm.score(X_bs, y_bs)\n", " bootstrap_score[cdx, 0] = np.mean(scores)\n", " bootstrap_score[cdx, 1] = sem(scores)*2 # two standard errors\n", " bootstrap632_score[cdx, 0] = np.mean(scores_632)\n", " bootstrap632_score[cdx, 1] = sem(scores_632)*2 # two standard errors" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "# repeated training/test splits\n", "repeated_score = np.zeros([len(svc_param['C']), 2])\n", "\n", "n_resamples = 50\n", "p_heldout = 0.2 # proportion of held-out\n", "\n", "def random_splits(X, y, p_heldout):\n", " '''random split training/test set.'''\n", " sample_idx = range(X.shape[0])\n", " n_heldout = np.int(X.shape[0]*p_heldout)\n", " np.random.shuffle(sample_idx)\n", " heldout_idx = sample_idx[:n_heldout]\n", " sample_idx = sample_idx[n_heldout:]\n", " X_heldout, X_sample = X.iloc[heldout_idx, :], X.iloc[sample_idx, :]\n", " y_heldout, y_sample = y[heldout_idx], y[sample_idx]\n", " return X_sample, X_heldout, y_sample, y_heldout\n", "\n", "# iterate over all models\n", "for cdx, c in enumerate(svc_param['C']):\n", " scores = np.zeros(n_resamples)\n", " for r in range(n_resamples):\n", " X_sample, X_heldout, y_sample, y_heldout = random_splits(X_train, y_train, p_heldout)\n", " svm = SVC(kernel = 'rbf', C = c)\n", " svm.fit(X_sample, y_sample)\n", " scores[r] = svm.score(X_heldout, y_heldout)\n", " repeated_score[cdx, 0] = np.mean(scores)\n", " repeated_score[cdx, 1] = sem(scores)*2 # two standard erros\n", " \n", "print repeated_score" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[ 0.69325 0.00755794]\n", " [ 0.70975 0.00877118]\n", " [ 0.6885 0.00913588]\n", " [ 0.670625 0.00936266]\n", " [ 0.676 0.00886664]\n", " [ 0.6685 0.00854878]\n", " [ 0.672125 0.00852076]\n", " [ 0.6715 0.01197979]\n", " [ 0.666375 0.00920909]\n", " [ 0.672125 0.00966406]]\n" ] } ], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "fig, axarr = plt.subplots(3, 2, sharex=True, sharey=True)\n", "\n", "# apparent score\n", "#axarr[0, 0].plot(svc_param['C'], apparent_score, 'o-k', c='b')\n", "#axarr[0, 0].set_title(\"Apparent\")\n", "#axarr[0, 0].set_ylim((None, 1.05))\n", "\n", "# 10-fold cross-validation\n", "axarr[1, 0].fill_between(svc_param['C'],\n", " cv_score[:,0] - cv_score[:,1],\n", " cv_score[:,0] + cv_score[:,1],\n", " color = 'b', alpha = .2)\n", "axarr[1, 0].plot(svc_param['C'], cv_score[:,0], 'o-k', c='b')\n", "axarr[1, 0].set_title('10-fold Cross-Validation')\n", "\n", "# LOOCV\n", "axarr[1, 1].fill_between(svc_param['C'],\n", " loocv_score[:,0] - loocv_score[:,1],\n", " loocv_score[:,0] + loocv_score[:,1],\n", " color = 'b', alpha = .2)\n", "axarr[1, 1].plot(svc_param['C'], loocv_score[:,0], 'o-k', c='b')\n", "axarr[1, 1].set_title('LOOCV')\n", "\n", "# Bootstrap\n", "axarr[2, 0].fill_between(svc_param['C'],\n", " bootstrap_score[:,0] - bootstrap_score[:,1],\n", " bootstrap_score[:,0] + bootstrap_score[:,1],\n", " color = 'b', alpha = .2)\n", "axarr[2, 0].plot(svc_param['C'], bootstrap_score[:,0], 'o-k', c='b')\n", "axarr[2, 0].set_title('Bootstrap')\n", "\n", "# Bootstrap with 632\n", "axarr[2, 1].fill_between(svc_param['C'],\n", " bootstrap632_score[:,0] - bootstrap632_score[:,1],\n", " bootstrap632_score[:,0] + bootstrap632_score[:,1],\n", " color = 'b', alpha = .2)\n", "axarr[2, 1].plot(svc_param['C'], bootstrap632_score[:,0], 'o-k', c='b')\n", "axarr[2, 1].set_title('Bootstrap 632')\n", "\n", "#\n", "axarr[0, 1].fill_between(svc_param['C'],\n", " repeated_score[:,0] - repeated_score[:,1],\n", " repeated_score[:,0] + repeated_score[:,1],\n", " color = 'b', alpha = .2)\n", "axarr[0, 1].plot(svc_param['C'], repeated_score[:,0], 'o-k', c='b', label='Repeated training/test splits')\n", "axarr[0, 1].set_title('Repeated training/test splits')\n", "\n", "fig.text(0.5, 0.04, 'Cost', ha='center', va='center')\n", "fig.text(0.04, 0.5, 'Resampled Accuracy', va='center', rotation='vertical')\n", "#fig.xlabel('Cost')\n", "#fig.ylabel('Estimated Accuracy')\n", "#fig.ylim('Estimated Accuracy')\n", "#fig.legend(loc = 'upper right', ncol=2)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 23, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the standard error bands for LOOCV are wider than other techniques, mostly because it predicts only one sample at a time which subjects to large fluctuation. The reason why 10-fold Cross-Validation has a wider error bands when compared to the rest techniques is because of its small resample size (10 versus 50 used by the bootstrap and repeated splits). The 632 rule appears to overcompensate for the bias and estimate the accurarcy to be higher than others." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "4.7 Data Splitting Recommendations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is a strong technical case to be made against a single, independent test set:\n", "- A test set is a single evaluation of the model and has limited ability to characterize the uncertainty in the results.\n", "- Proportionally large test sets divide the data in a way that increases bias in the performance estimates.\n", "- With small sample sizes:\n", " - The model may need every possible data point to adequately determine model values.\n", " - The uncertainty of the test set can be considerably large to the point where different test sets may produce very different results.\n", "- Resampling methods can produce reasonable predictions of how well the model will perform on future samples." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "No resampling method is uniformly better than another. If the sample size is small, we recommend repeated 10-fold cross-validation: the bias and variance properties are good and, given the sample size, the computational costs are not large. If the goal is to choose between models, as opposed to getting the best indicator of performance, a strong case can be made for using one of the bootstrap procedures since these have very low variance. For large sample size, the difference between resampling methods become less pronounced, and computational efficiency increases in importance." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "4.8 Choosing Between Models" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once the settings for the tuning parameters have been determined for each model, we suggest the following scheme for finalizing the type of model:\n", "1. Start with several models that are the least interpretable and most flexible, such as boosted trees or support vector machines. Across many problem domains, these models have a high likelihood of producing the empirically optimum results.\n", "2. Investigate simpler models that are less opaque (e.g., not complete black box), such as multivariate adaptive regression splines (MARS), partial least squares, generalized additive models, or naive Bayes models.\n", "3. Consider using the simplest model that reasonably approximates the performance of the more complex methods.\n", "\n", "Using this methodology, the modeler can discover the \"performance ceiling\" for the data set before settling on a model. In many cases, a range of models will be equivalent in terms of performance so the practitioner can weight the benefits of different methodologies (e.g., computational complexity, easy of prediction, interpretability)." ] } ], "metadata": {} } ] }