{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#K-Nearest Neighbors\n", "
KNN is a form of instance, or memory based learning wherein we don't learn a function $f(X)$ to estimate $E[Y|X]$. Rather, to make a classification for a given instance $X_i$, we search the training data for the $k$ nearest neighbors, as defined by some distance metric $d(X_i,X_j)$. The estimate of $E[Y|X]$ is then given by:
\n",
"\n",
"
Given a feature set and a distance function, the paramater that controls complexity is the number of neighbors used $k$. Like with all complexity parameters, the optimal value is dependent on the data, and is generally the one that exploits the best bias-variance tradeoff.
\n",
"\n",
"The following is an example grid search to find the optimal $k$. We also create 2 other variants of the data to show the effect of each on accuracy.
\n",
"\n",
"
One major challenge with kNN is that the expected distance between any two points in $p$-dimensional space increases as $p$ increases. The following is a simulation that illustrates this concept.
\n",
"\n",
"We generate $n$ uniformly distributed samples in a $p$-dimensional hyper-cube. We then show the average distance between instances increases as we consider more dimensions.\n",
"\n",
"
Now we plot this histogram of distances, and not just the mean distance by dimension $p$.
" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''\n", "Plot histogram of pairwise distances\n", "'''\n", "import matplotlib.pyplot as plt\n", "\n", "r = (0,12)\n", "b = 24\n", "fig = plt.figure()\n", "frame = plt.gca()\n", "ax = fig.add_subplot(111)\n", "h1 = plt.hist(dists[2], range=r, bins=b, normed=True, histtype='step',stacked=True,label='Dim=2')\n", "h2 = plt.hist(dists[10],range=r, bins=b, normed=True, histtype='step',stacked=True,label='Dim=10')\n", "h3 = plt.hist(dists[20],range=r, bins=b, normed=True, histtype='step',stacked=True,label='Dim=30')\n", "h4 = plt.hist(dists[40],range=r, bins=b, normed=True, histtype='step',stacked=True,label='Dim=40')\n", "frame.axes.get_yaxis().set_ticks([])\n", "ax.set_xlabel('Pairwise Distance')\n", "ax.set_ylabel('Pct of Pairs with Distance')\n", "plt.title('Histogram of Pairwise Distances by Dimensionality of X')\n", "plt.legend()\n", "plt.show()\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nSUVORK5CYII=\n", "text": [ "