Skip to content

Instantly share code, notes, and snippets.

@ChrisBeaumont
Created August 14, 2013 17:29
Show Gist options
  • Save ChrisBeaumont/6233332 to your computer and use it in GitHub Desktop.
Save ChrisBeaumont/6233332 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Intuition about Cross Validation"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline\n",
"from sklearn.svm import SVC\n",
"from sklearn.grid_search import GridSearchCV\n",
"import numpy as np\n",
"\n",
"import matplotlib.pyplot as plt"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 38
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's some random noisy 0/1-valued data. The true model that the data were generated from is shown in black"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"np.random.seed(42)\n",
"x = np.linspace(0, 2, 100).reshape(-1, 1)\n",
"y0 = (x.ravel() % 1) > .5\n",
"y = y0 ^ (np.random.random(y0.size) > .85)\n",
"\n",
"def draw_plot():\n",
" plt.plot(x.ravel(), y0, 'k', lw=2, alpha=.5, label='True Model')\n",
" plt.plot(x.ravel(), y, 'o', label=\"Noisy Data\")\n",
" plt.legend(loc='center right')\n",
" plt.ylim(-0.05, 1.05)\n",
" \n",
"draw_plot()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x10809b0d0>"
]
}
],
"prompt_number": 70
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's build a model for this using the Suppoert Vector Machine Classifier. If we pick a bad value for $\\gamma$, we overfit:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"clf = SVC(gamma=3000).fit(x, y)\n",
"\n",
"plt.plot(x, clf.predict(x), 'r-', lw=2, alpha=.8, label='SVM')\n",
"draw_plot()\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nDwQrKFXansgSAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x1087c6b10>"
]
}
],
"prompt_number": 76
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Cross validation is one way to fix this. We use `GridSearchCV` to try a bunch of combinations of $C$ and $\\gamma$ and, at each step:\n",
"\n",
"* Split the data into training and test sets\n",
"* Train the classifier using the training data\n",
"* Measure the accuracy on the test data.\n",
"\n",
"`GridSearchCV` then chooses the values for C and $\\gamma$ to maximize the accuracy on the test data.\n",
"\n",
"In principle, this prevents overfitting, since overfitting to the training data doesn't improve the accuracy on the test data:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x = x.reshape(-1, 1)\n",
"grid = {'C':np.logspace(-5, 5, 5), 'gamma': np.logspace(-5, 5, 5)}\n",
"\n",
"clf = GridSearchCV(SVC(), grid)\n",
"clf.fit(x, y)\n",
"\n",
"plt.plot(x, clf.predict(x), 'r-', lw=2, alpha=.8, label='SVM (CV)')\n",
"draw_plot()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x1087b6710>"
]
}
],
"prompt_number": 82
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is much better behaved.\n",
"\n",
"\n",
"Let's try this again, but now we'll copy the data 3 times. This introduces a problem: now, when `GridSearchCV` partitions the data, copies of each data point might be in **both** the training and test sets. Thus, overfitting to the training data **can** improve performance on the test data. When this happens, `GridSearchCV` no longer guards against overfitting. In fact, it may **encourage** overfitting, since this can have a positive impact on the test accuracy."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#replicate the data 3 times, and fit on this\n",
"x2 = np.vstack((x, x, x))\n",
"y2 = np.hstack((y, y, y))\n",
"\n",
"clf = GridSearchCV(SVC(), grid)\n",
"clf.fit(x2, y2)\n",
"\n",
"plt.plot(x, clf.predict(x), 'r-', lw=2, alpha=.8, label='SVM (Bad CV)')\n",
"draw_plot()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x10d698f90>"
]
}
],
"prompt_number": 83
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This problem will occur whenever there are datapoints which are independent from each other"
]
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment