Newer
Older
"source": [
"# Learning\n",
"\n",
"This notebook serves as supporting material for topics covered in **Chapter 18 - Learning from Examples** , **Chapter 19 - Knowledge in Learning**, **Chapter 20 - Learning Probabilistic Models** from the book *Artificial Intelligence: A Modern Approach*. This notebook uses implementations from [learning.py](https://github.com/aimacode/aima-python/blob/master/learning.py). Let's start by importing everything from learning module."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
"from learning import *"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Review\n",
"\n",
"In this notebook, we learn about agents that can improve their behavior through diligent study of their own experiences.\n",
"\n",
"An agent is **learning** if it improves its performance on future tasks after making observations about the world.\n",
"\n",
"There are three types of feedback that determine the three main types of learning:\n",
"\n",
"* **Supervised Learning**:\n",
"\n",
"In Supervised Learning the agent observeses some example input-output pairs and learns a function that maps from input to output.\n",
"\n",
"**Example**: Let's think of an agent to classify images containing cats or dogs. If we provide an image containing a cat or a dog, this agent should output a string \"cat\" or \"dog\" for that particular image. To teach this agent, we will give a lot of input-output pairs like {cat image-\"cat\"}, {dog image-\"dog\"} to the agent. The agent then learns a function that maps from an input image to one of those strings.\n",
"\n",
"* **Unsupervised Learning**:\n",
"\n",
"In Unsupervised Learning the agent learns patterns in the input even though no explicit feedback is supplied. The most common type is **clustering**: detecting potential useful clusters of input examples.\n",
"\n",
"**Example**: A taxi agent would develop a concept of *good traffic days* and *bad traffic days* without ever being given labeled examples.\n",
"\n",
"* **Reinforcement Learning**:\n",
"\n",
"In Reinforcement Learning the agent learns from a series of reinforcements—rewards or punishments.\n",
"**Example**: Let's talk about an agent to play the popular Atari game—[Pong](http://www.ponggame.org). We will reward a point for every correct move and deduct a point for every wrong move from the agent. Eventually, the agent will figure out its actions prior to reinforcement were most responsible for it.\n",
"\n",
"## Contents\n",
"\n",
"* Explanations of learning module\n",
"* Practical Machine Learning Task\n",
" * MNIST handwritten digits classification\n",
" * Loading and Visualising digits data\n",
" * Naive kNN classifier\n",
" * Overfitting and how to avoid it\n",
" * Train-Test split\n",
" * Crossvalidation\n",
" * Regularisation\n",
" * Email spam detector"
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Explanations of learning module goes here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Practical Machine Learning Task\n",
"## MNIST handwritten digits calssification\n",
"\n",
"The MNIST database, available from [this page](http://yann.lecun.com/exdb/mnist/) is a large database of handwritten digits that is commonly used for training & testing/validating in Machine learning.\n",
"\n",
"The dataset has **60,000 training images** each of size 28x28 pixels with labels and **10,000 testing images** of size 28x28 pixels with labels.\n",
"\n",
"In this section, we will use this database to compare performances of these different learning algorithms:\n",
"* kNN (k-Nearest Neighbour) classifier\n",
"* Single-hidden-layer Neural Network classifier\n",
"* SVMs (Support Vector Machines)\n",
"\n",
"It is estimates that humans have an error rate of about **0.2%** on this problem. Let's see how our algorithms perform!\n",
"\n",
"Let's start by loading MNIST data into numpy arrays."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import os, struct\n",
"import array\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from collections import Counter\n",
"%matplotlib inline\n",
"plt.rcParams['figure.figsize'] = (10.0, 8.0)\n",
"plt.rcParams['image.interpolation'] = 'nearest'\n",
"plt.rcParams['image.cmap'] = 'gray'"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def load_MNIST(path=\"aima-data/MNIST\"):\n",
" \"helper function to load MNIST data\"\n",
" train_img_file = open(os.path.join(path, \"train-images-idx3-ubyte\"), \"rb\")\n",
" train_lbl_file = open(os.path.join(path, \"train-labels-idx1-ubyte\"), \"rb\")\n",
" test_img_file = open(os.path.join(path, \"t10k-images-idx3-ubyte\"), \"rb\")\n",
" test_lbl_file = open(os.path.join(path, 't10k-labels-idx1-ubyte'), \"rb\")\n",
" \n",
" magic_nr, tr_size, tr_rows, tr_cols = struct.unpack(\">IIII\", train_img_file.read(16))\n",
" tr_img = array.array(\"B\", train_img_file.read())\n",
" train_img_file.close() \n",
" magic_nr, tr_size = struct.unpack(\">II\", train_lbl_file.read(8))\n",
" tr_lbl = array.array(\"b\", train_lbl_file.read())\n",
" train_lbl_file.close()\n",
" \n",
" magic_nr, te_size, te_rows, te_cols = struct.unpack(\">IIII\", test_img_file.read(16))\n",
" te_img = array.array(\"B\", test_img_file.read())\n",
" test_img_file.close()\n",
" magic_nr, te_size = struct.unpack(\">II\", test_lbl_file.read(8))\n",
" te_lbl = array.array(\"b\", test_lbl_file.read())\n",
" test_lbl_file.close()\n",
"\n",
"# print(len(tr_img), len(tr_lbl), tr_size)\n",
"# print(len(te_img), len(te_lbl), te_size)\n",
" \n",
" train_img = np.zeros((tr_size, tr_rows*tr_cols), dtype=np.int16)\n",
" train_lbl = np.zeros((tr_size,), dtype=np.int8)\n",
" for i in range(tr_size):\n",
" train_img[i] = np.array(tr_img[i*tr_rows*tr_cols : (i+1)*tr_rows*tr_cols]).reshape((tr_rows*te_cols))\n",
" train_lbl[i] = tr_lbl[i]\n",
" \n",
" test_img = np.zeros((te_size, te_rows*te_cols), dtype=np.int16)\n",
" test_lbl = np.zeros((te_size,), dtype=np.int8)\n",
" for i in range(te_size):\n",
" test_img[i] = np.array(te_img[i*te_rows*te_cols : (i+1)*te_rows*te_cols]).reshape((te_rows*te_cols))\n",
" test_lbl[i] = te_lbl[i]\n",
" \n",
" return(train_img, train_lbl, test_img, test_lbl)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The function `load_MNIST()` loads MNIST data from files saved in `aima-data/MNIST`. It returns four numpy arrays that we are gonna use to train & classify hand-written digits in various learning approaches."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"train_img, train_lbl, test_img, test_lbl = load_MNIST()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Check the shape of these NumPy arrays to make sure we have loaded the database correctly.\n",
"\n",
"Each 28x28 pixel image is flattened to 784x1 array and we should have 60,000 of them in training data. Similarly we should have 10,000 of those 784x1 arrays in testing data. "
]
},
{
"cell_type": "code",
"execution_count": 5,
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training images size: (60000, 784)\n",
"Training labels size: (60000,)\n",
"Testing images size: (10000, 784)\n",
"Training labels size: (10000,)\n"
]
}
],
"source": [
"print(\"Training images size:\", train_img.shape)\n",
"print(\"Training labels size:\", train_lbl.shape)\n",
"print(\"Testing images size:\", test_img.shape)\n",
"print(\"Training labels size:\", test_lbl.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To get a better understanding of the dataset, let's visualize some random images for each class from training & testing datasets."
]
},
{
"cell_type": "code",
"execution_count": 6,
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"classes = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"]\n",
"num_classes = len(classes)\n",
"\n",
"def show_MNIST(dataset, samples=8):\n",
" if dataset == \"training\":\n",
" labels = train_lbl\n",
" images = train_img\n",
" elif dataset == \"testing\":\n",
" labels = test_lbl\n",
" images = test_img\n",
" else:\n",
" raise ValueError(\"dataset must be 'testing' or 'training'!\")\n",
" \n",
" for y, cls in enumerate(classes):\n",
" idxs = np.nonzero([i == y for i in labels])\n",
" idxs = np.random.choice(idxs[0], samples, replace=False)\n",
" for i , idx in enumerate(idxs):\n",
" plt_idx = i * num_classes + y + 1\n",
" plt.subplot(samples, num_classes, plt_idx)\n",
" plt.imshow(images[idx].reshape((28, 28)))\n",
" plt.axis(\"off\")\n",
" if i == 0:\n",
" plt.title(cls)\n",
"\n",
"\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nnjzOvnrp0qUANGjQIG6fo+eizjEIaM6ToiiKoihKHAlsztOgQYMAGDp0KABHjx6lXr16AHz55Zee\njUtxOf/88wHo168f119/PQB582bc2/jyyy8H4MorrwTg999/T/AIFcXloYceAtx8n/vuuw+AzZs3\nM29exj1ymzRpAkDBggUB+Pjjj42aGgQefPBBADp06EBkJGL+/JRow6gocUeVJ0VRFEVRlBgIZM5T\ny5YteemllwAoXLgwALZt8+yzzwLQq5fTRPrgwYO5/iwvY7v33nsvAP379wfgkUce4bXXXgNg27Zt\ncfucROUg7NixA4CSJUvG9HeffPIJAFdccUVOPjYqycizKFCgAAA33ngjAHfccYdRQ48cOQLAhAkT\nGDNmDABbtmzJ7UcavDpOS5Uqxdy5cwFo164dAGlpaele98QTTwBQr1496tatm6PPSvQcP/jgAwAa\nN24c+bl89NFHAGzatMk83qpVKwCKFi0qnw3A9OnTuf3223M0hmTmA8l5+f333wNw4oknplOeRFX7\n8MMP4/WxmvOEzjFW5Bzr0aOHiUxcdtllACxbtswcp3v37o3XR2Y5x0CF7Vq2bAnAtGnTKFSoEAA/\n/vgjAJUrV+auu+4CIF8+Z1ry76BSuXJlwLmoAYwbN84sqOTCvWbNGm8Glw1efPFFAMaOHcuBAwei\nvqZx48YmXNelSxcATjvtNAAqVKgQiNCdLPKeeeYZwP3eQpGbbrdu3czrGzZsCBCoEE8kRYoUMQtE\n2bw0b9483esqVaoEQI0aNTjrrLMA96btB0499VSKFSsGuJsuKVyoXLmyuWBnxooVKwB47LHHEjTK\n+PL8888D7vUF3AXghg0bAPj222+TPzAlIcgx3Lp1awDy58/P7t27AZg4cSIAP/30U7q/O+WUU4Do\nm6JEIwv8t956C4D69eub544ePQrA2rVrTYFDMtGwnaIoiqIoSgwEQnk69dRTAUyorlChQkydOhVw\nQlngyMpnnnkm4IRLwF2Zdu3aNanjjRfRwlYVK1YEMLtkPyPh08yYOXMm69atAzBJ5WeccQbgKIzx\nDN0lgqpVq2YY0liyZIkJV0nC8eDBgxk8eDDg7gCnTZuWhJEmhtACgMwsJn7++WfAsaoQZc4PylOF\nChUAJ9R2zjnnAJiQ2/vvvw9A586dadOmDeAWMaxYscKEYv/++28AXnnlFcAN0foV2b1fe+21ACZU\n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\nMXjwYAD+/vtvp+pu3LgRgJIlSwLetTM/jj32WADat28PwEUXXeQUnaAVHMlO4vbbb8/x+LZt29x9\nTve37du307Rp0xyv07HbunVrF8GYM2cOAOeee26g7o2a47XXXgvAfvvt584b/Tz44INZsGAB4Kv5\nkydPTvjYTHkyDMMwDMOIgbRUno444giXdBqJJ598EvBi+KJx48YAXHLJJQDcc889CRxhYmjRogVV\nq1YF/IRxJXamK59++ikDBgwA4IsvvgBg/vz5gDc3WVFUqlQpJeOLBqkwUiXE+eef71Qm7Y63b9+e\n69iVEah2T+mAdoSlS5dmx44dBb7+pJNOAqBYsWKBzVerUqUK4KvT//vf/3K9Rsehcu+iZcuWLSxZ\nsgSAF154AYDXX3+90GONB7IIue222wAoX748t9xyC+Crv+lAr169AM9U9+qrrwbgo48+Arw5gX/8\nRUt2djZ33nknEDzlKS8++OCDiPe1V155Jcf/pZQ2a9bMHeP6+9SpUycQylOxYp6uE6o4gWdJdNNN\nN+V47YsvvsgRRxwB+Pf8ZChPgV48hVcRKDzQo0cPpk2bBuDCWNOmTXNyuLjqqqsAX94D37fkm2++\n4emnn07c4BNAq1atXJJcqi+88WLFihWu+iwSp556KgB77bVXsoYUEzVq1HAL2QYNGuR6Xt/XY489\nluu5Xbt2ATBixIgEjjC+KFn1oosuAuCff/7JN2yni/KgQYMA+OWXX3JdzIPCaaedBsDEiROjev0f\nf/wBwKpVqwA//HrHHXfkeu2OHTvyPc5TgSqUdY5t3ryZ5557LpVDiglVa2pDCbh0DoXfdP4Vpqq8\nfv36RR1iUgn3j8sLbda+//57vv/++xzPXX755YEoqho1ahTgL5p07lx99dUuJBv62lQscC1sZxiG\nYRiGEQOBU55CyzDDSzBV0v7WW2+5HZKS31588UUnR2plLfr16+eSOfX+l112WdooTwcffDDglZ1q\nByVVLpMpW7ZsLok2aJQpUyai4hQN8+bNA4JXsh4J7eDlJ6aS9qlTp/Ljjz/m+Xs6J/X733//fSDL\noUNDVuFs3brVqdhSlwB+//13AN55553EDzABqLxbTJkyJde1M8hINfnpp58AL+QUDVIM9RO8kB/4\nxykE/3tVaEs/zzjjDBe+ihQaV3FOly5dAM/up1q1ajneI9xiIxXstddetGnTJsdjukaGq06QO10i\n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\n4Nprr03ZmAwjiJjyZBiGYRiGEQNprzyF7pT27NkDwIMPPgjAyJEjAdi0aRP//fdfagZYSLp3707n\nzp0BuOCCCwD4888/UzkkwzAymL322ovHHnsMgOxsr1CqZs2aqRySYQQWU54MwzAMwzBiIEs7jIR9\nQIK8Hs455xwApkyZAkC5cuXIay4vvvgi119/PQC//vprTJ+TKj+LuXPncuqppwJwzDHHAPDxxx/H\n+2OAzPddgcyfYzr6rgwaNAiAgQMHcvfdd+d4LBLJmmP58uUBqF69OgDr16/P93W67uzatcs9V7du\n3RzvcfbZZ9OvX78cr3v55ZcBuOSSS9zvpfI47dWrF+PHjwf86+QZZ5wBwKeffhq3z7FzMblzLFOm\nDABt27YF4LTTTgPg9NNP54ADDgBg27ZtANx777088sgjAPz77795vmfQ5pgICppjWobtjj76aB54\n4AEAypYtW+DrO3fuzEEHHQTAWWedBcDPP/+cuAHGmRkzZgDQoUMHVq1aleLRGPGmZMmSgH+RC+fv\nv/8G4K+//kramADatGnj/j1//vy4vW+kTU7r1q3j9v5F5cMPPwSgWrVqAPzwww8RX1euXDkAly6w\ne/du91ydOnVyvEdWVlaueWvxlGr23XdfAB544AGX3nDTTTcB8V00GalhzJgxAPTo0SPXczomK1eu\nDHjHQI0aNQC44447kjTCgilevDjgLQA7dOgA4MbZuXNnt+jXuahz+KWXXuL3339PyJgsbGcYhmEY\nhhEDaaU8ValSBYCJEydSr169HM99/vnnHHLIIQC88847gKdQgbeqbtq0KQBPPfUU4EmW6YLmWr9+\nfVOe0oCKFSsC3k5Psnh+6LiVrB6OdlEtWrSI0wijQ8rTwIEDycoqUKWPirzCcgsWLIjL+xeF3r17\nA/73oV15jRo13L/1d8jOzs7x74Ke27VrF2vWrAFg5syZQOqVJx2nAwYMALyE8VdffRWAZ555JmXj\niielS5cG4P3332fOnDkA3H777akcUsIoU6aMU6mlwIwdO5ZLL70UiKz4RuKWW24BYMmSJQDumEgm\nUnX79u0L4NQmpbCEsmfPHnr16pXjsSuvvBKArl27MnnyZACef/75uI7RlCfDMAzDMIwYSAvlSYmZ\n2rEdeuih7rlx48YBni1B//79Abj66qsBf2e1evVq9t57b8DPrbj55pt56KGHkjD6/ztcdNFFADRu\n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\nJkEwCSbDBbvFINPEIH4Bq8EyQTBrEHxh2Gfk3rlP9+OMzgy/X1THMwu3Z9ZZe++1//nStUuFqpza\n3ul0vvS6Wj/xv1gqSPv7+1WLwf/v37TtGMt5mTc3N5mbmxv6M09PT9na2koy+H9r4945TJvjtDS4\nXFtbS5Jsb283XdCHfS6WKb1yJmiv12sq3W36yfvNyclJkjTLH9bX15tqYps0yQQAaNFYrHl6fX3N\n4+NjkmRhYaHqteUp/v39vWlEWLZ+j/pIjFF6eXnJ29tbksHiv/v7+2Z76qiemvhvvV4vyWC9RDmS\nJemfZZckd3d3STJ0Ifnl5WVzLuO0LOCcREdHR0n6TQT/ppw6v7Oz02z3/mrblEnycV3TxypUMrwt\nQc2i8u9Qqi3Dqk5le/7GxsaXmyyPk7KurlSeTk9Pm+NZfm/HMDs723yvODw8/IZ3+b1+XyNaZmi+\n21hM2yWDjr/dbjdJf/fc36btOp1Onp+fkyTn5+etvddhfrI8Wc4iKsng7e1tVlZWkqRJrNpg2m7y\nYzRt11znSzGWzRibm5tJ+vef0sPp4uIiyaCPzsf+OaM27eM0aT/Gq6urJMnq6mrztdJ7q+yK/c4+\nTm2O0/K5+OvXryTJ0tLSx99RrvfH6/b29pIMHhLa9pP3m7KZofTJW1xczMPDQ+vXMW0HANCisak8\njatxeqIfFU+7kx/jOI3Tg4ODP3oIjVvlaVxN+zhN2o+xbOLodrvNFM7x8XGSn+kcPopxOj8/nyTZ\n3d3N8vJykjS9x8pn+PX1dVM1LWc1jmppgMqTyhMAQBWVp0942p38+JLpj9E47Zv2GCc9vmT6YzRO\n+0YV49nZWZL+OX+JyhMAwEQYi1YFAACfmZmZ+em3kMS03aeUYCc/vmT6YzRO+6Y9xkmPL5n+GI3T\nvmmP0bQdAECFkVeeAACmicoTAEAFyRMAQAXJEwBABckTAEAFyRMAQAXJEwBABckTAEAFyRMAQAXJ\nEwBABckTAEAFyRMAQAXJEwBABckTAEAFyRMAQAXJEwBABckTAEAFyRMAQAXJEwBABckTAEAFyRMA\nQIV/AfF9HaTqK51yAAAAAElFTkSuQmCC\n",
"<matplotlib.figure.Figure at 0x108bc4390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# takes 5-10 secs. to execute the cell\n",
"show_MNIST(\"training\")"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk8AAAHpCAYAAACbatgAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXm8TdX7x9/bPIeKkqEoZSjzUAlFJE2mIplTSpN+migl\nFJr5qhQpSqaIEn2lrxKVNCklylSGRIZrjrt/f2zP2ufee+6959x79tn7nJ736+V1r3P22Xute9Ze\ne63PM1m2baMoiqIoiqJERh6/G6AoiqIoipJI6OJJURRFURQlCnTxpCiKoiiKEgW6eFIURVEURYkC\nXTwpiqIoiqJEgS6eFEVRFEVRokAXT4qiKIqiKFGQsIsny7JKWZY1x7Ks/ZZlbbAsq4vfbYollmX1\ntyzrK8uyDluW9Zrf7Yk1lmUVsCxrgmVZGy3L2mtZ1jeWZV3hd7tijWVZUyzL2mZZ1h7LstZYltXH\n7zZ5gWVZ51iWdciyrMl+tyXWWJa15ETf9lmWlWJZ1s9+t8kLLMvqbFnWTyfm1HWWZV3sd5tixYnv\nbV/Id3jMsqwX/G5XrLEsq5JlWfMty/rbsqytlmWNtSwrYZ/z6bEs6zzLshafmE/XWpZ1nV9tSeQ/\n6ovAYeBU4CbgJcuyqvnbpJiyBRgGTPS7IR6RD9gMXGLb9knAI8AMy7Iq+tusmPMkcJZt2yWBa4Dh\nlmXV8blNXvAfYIXfjfAIG7jdtu0Stm0Xt207meYZACzLuhxnrPawbbsY0BRY72+rYseJ762Ebdsl\ngNOAg8AMn5vlBS8CO4CyQG2gGXC7ry2KEZZl5QXmAvOAUsCtwJuWZZ3tR3sScvFkWVYRoD3wsG3b\nh2zbXobzR+3mb8tih23b79q2PQ/42++2eIFt2wdt237ctu3fT/x/PrABqOdvy2KLbds/2bZ9+MR/\nLZwHcRUfmxRzLMvqDOwGFvvdFg+x/G6AxzwGPG7b9lcAtm1vs217m79N8oyOwI4Tz41k40xgum3b\n/9i2vQNYCNTwt0kx4zzgdNu2X7Ad/gcsw6fnfkIunoCqwD+2bf8W8tr3JM8g+ddhWVZZ4Bxgtd9t\niTWWZY2zLOsA8DOwFfjA5ybFDMuySgBDgXtJ7gXGk5Zl7bAsa6llWc38bkwsOWHWqQ+UOWGu23zC\n3FPQ77Z5RHcg6czLJ3ge6GxZVmHLss4A2gALfG6Tl1hATT8unKiLp2LAvnSv7QOK+9AWJZdYlpUP\n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\naQDstNNORb5v0qRJXH311QCsXr0agMLCvC6QyyqmPBmGYRiGYQSgINMrzWx6PQwePBjwVtSx3Hzz\nzQBcdNFFgT4zl34WUp40r99//92pahMnTkzb78mU78oHH3wAwG677Zb0devWrQPg3HPPBeCBBx4A\n0qvSpHuOJ554IuCNVYpnMh599FEAunfvHuTXpEyujtPPP/+cKVOmAHDTTTel++OjMG+Z7M2vSZMm\nAIwbNw7wjttnn30W8JX9v/76C/DP81QJyxwzRaaPU6n3p556KgCXXnopUPx1Nhn9+/cHYPr06Smp\nT3YulqHF0xVXXMGZZ54JQP369QF44YUXADjooIPcib7ffvsB8N1336X0uWFaPBUWFrJ27VrAT7xO\nB5m6mB1zzDEAXHjhhbRt27bY1xcUeMM4+OCDAXj99ddL8msTku45jh8/HoDhw4ezYsUKAO6//34A\nFi5cCHiJtKNHj9bnA9CmTRveeeedIL8qJbJ9nO6///4AvPHGG+44Pfvss4t8vZKL3377be655x7A\nv+inSr5csHfYYQeqVKkCQN26dQHo3Lmze17f/9y5c+PeG5aFxV133QVA3759Ae/a8/vvvwMwatQo\nAG6//XYANm3aFOizwzLHTJHJ43S77bZjzJgxAPTr1y+l92hzqk3eli1bAKhWrVrca+vVq8evv/5a\n7Gfm8lxUuPiggw4CvLQQpUok4/nnnwe8xX8q9xYzyTQMwzAMw0gjeZ8wrgS54cOHU6tWLcBPPJby\nsWLFCho2bAh4O3/AJfKGlW233Zaff/4518NImaOOOopnnnkm6rF58+YBsGjRIvc9CSWTJ1IrtCNv\n0aJFaP8G11xzDQCzZ8/m3XffBeCPP/6Ies2iRYucKjVnzhwA7r33Xvbee+8sjjQzXHjhhe7fX331\nVbGvV6ihfv36tGzZMlPDyio77rgjAN26dQPgyCOPBKBt27buWpRI2X/zzTeBxMpTrtlzzz0BPywt\npk+fziWXXALglImgilM+IFWjQ4cOPPLIIwBORbz66qu56qqrcjKu7bbbDoAFCxa47ygRSnVYtmwZ\nADNnznTXnkaNGgGwZs0aAJ5++um4hPIuXbpw3333pXfwaaRbt24uLWf77bcHPFU/lQiaisZOO+20\ntEQ1THkyDMMwDMMIQF4oTyoBV7L3woUL+frrr92/AWrVquVyTvr06RP1/g0bNridb76wZs2alPOy\n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\nfxyAQYMGAfDzzz9nf2BGYC655BIArr322oTP33777YD/fS5btgyARx99lMLCvC5QiaNTp04AdOzY\nEYC1a9dy3XXX5XJIOaF58+b8+eefAHz99dc5Ho1Hs2bNADjiiCMAGD9+fC6HYxh5hSlPhmEYhmEY\nASjI9E43014P2uWPHTs26etGjhwJwLhx4wJ9frb8LKQ8SW2K5IknngCge/fupf01Ccm070qLFi1o\n3759wucWLVrELbfcAsCcOXOinps4cWJpfm0U2fSWkfLZrVu3QO+bPHkyl19+OQBr1qwJ9N6w+q6s\nWrUKgG233RaA77//nj322AOA9evXB/qssM4xlipVqlC3bl0AzjvvPAAGDhzIr7/+CuDOhUQKVDaP\n0+OOOw7wj9caNWqwYcOGdH18kZjPU3rmWFDg/ZrtttsOgCFDhtCgQQMABgwYAMC9997LCy+8AMD9\n998PwD///APAli1b4j6zYsWK7vFNmzYV+bvz5VwsDcUep/m4eNp55525+OKLAahatSoAvXv3ds//\n/fffAHz77bcANGzYkB9++AGAa665BoC77747pd8VhsWT2GqrrUr7axKS6YvZ2WefXWRI4JdffqFO\nnToJn/viiy8455xzAHj66adLM4SsXrAbNWoEwIsvvshOO+0U6L0K6Y0YMQKAP/74I6X3hfViFrt4\nArj11lsBf2GRKmGaY8WKFTn55JOjHtttt90AOOaYY2jRokWR7x04cCAAd911V9xz2TxOb7zxRgAO\nOeQQAFq3bp2uj05KJueoxcPSpUsBqF27NuAtFJ9//vmSfmwgMn2cVq5cGYDTTz8dgClTpgR6v+6d\n+v7BFyEuueQS7rzzTsC/BiUil+dilSpVAD8loFOnTu7+qYXhww8/DOA2oyXBTDINwzAMwzDSSF4k\njG+zzTaAHwaZOnUqlSpVAnAJtuPGjePNN98E/JDHc889B3g73JtuugmAdu3aAakrT0bJGTJkCOAn\nvCeibt26RSZJN23a1H1P/fr1A0qvQGUDKQuRqtPvv/8OQLVq1ZK+98wzzwRg1qxZALz00kuZGGJO\nef3113M9hJRQMcqYMWPYddddATj00EMBTwUuX758ke9VSCXy2NZjnTt3BhIrT9lEFgWLFi3K6TjS\nyZgxYwBfgRIPPvigUwqzpUBlgnLlyjFp0iTAvyZGEqtUKzITicLGU6ZMcWqj1Kjy5cuzYMGCtI45\n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\n2OLFiwHo1q0bAGvXrs3+wErI/fffD8B3333HpZdeCsCmTZtyOaS00qxZMwCef/55AJYsWQJA7969\nczamdLHXXnsB0K9fPwBatmxJhw4dANiyZUvc67t37w7As88+C8Aff/yRhVEaBhx88MEcdthhUY/t\nsssuORqNYYQbU54MwzAMwzACUKDYdsZ+QRa9Hpo0aQL4KlODBg0ixwHArrvuCsDnn3+e0meGwc9i\n8+bNGgvt2rUD4LXXXkvb5+fSd6VZs2bccMMNACxfvhyAqVOnxr3u77//BuD3338v0e/JxhylMh16\n6KEAtG/fnjZt2gCwww47RP4ujSnROADo2bMnAA8//HBKvzsMx2kqfPHFF+48HT16dNTP4siXOZaG\nXJ6LCxcu5JBDDkn4XIUK6QtSmM9Tdue4//77A3D99dcDuLy2SO69914Azj777JSiMmGbYyYobo5l\nJmxXr149nnjiCSB60ZTodZD64ikM3H333QD07duXI488Ekjv4ikX1K5dG4ChQ4dywgknALifV199\nddzrP/roIwBuvPFGAKZPn54w7JULrrnmGsC78ABUq1YN8BZCyTYnr776KgC77bYb4P9NyiKdO3cG\nvA1Opjds2WLfffcFYNtttwX8m1KVKlXca7bbbjsA9ttvP1cQ8fHHHwNw1llnAbm/Fmmx36FDB3dO\nKVyszWa+0LRpUwAOP/xwwPu762fr1q2B6M2LvosrrrgCSH2zki/06tWL//3vf4BXEACJN22nnXYa\nAA0bNnR/uzAQm/YwYMAAatSoAUSnPSxbtgyACy64AICXXnop7rMaNWoEwKxZs2jbtm2px2ZhO8Mw\nDMMwjADkvfIkJemZZ55hjz32ABKvrMWoUaMAOPbYYzM/uDTx559/5noIpaZixYqAlzAN8OCDDwLe\nTkdonj/99JN7TOEulUrfddddgBfKnDFjRoZHXTSSwufOncs222wDRCsOsTzwwAMA/PDDDy6srKTw\ncePGATBkyBC+//57AJ588snMDDxNaEfYo0cPHn30UQDefvvtuNeVL18egIsvvjh7g8sgCpuffPLJ\nDB06FIBy5YLtQXfccUcAFixYAPhqSa64/PLLAW8nr2unjr9Vq1blbFxBadSoEW+++SaAUyci0dwi\n7w9SfaXuf/bZZ0DiYzmfkIo/bdo0d+2VyiYFqk6dOlSvXj3qfQceeKBTGz/99NNsDTeO008/HfCj\n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\nSUVORK5CYII=\n",
"<matplotlib.figure.Figure at 0x11ba51978>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# takes 5-10 secs. to execute the cell\n",
"show_MNIST(\"testing\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's have a look at average of all the images of training and testing data."
]
},
{
"cell_type": "code",
"execution_count": 9,
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"classes = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"]\n",
"num_classes = len(classes)\n",
"\n",
"def show_ave_MNIST(dataset):\n",
" if dataset == \"training\":\n",
" print(\"Average of all images in training dataset.\")\n",
" labels = train_lbl\n",
" images = train_img\n",
" elif dataset == \"testing\":\n",
" print(\"Average of all images in testing dataset.\")\n",
" labels = test_lbl\n",
" images = test_img\n",
" else:\n",
" raise ValueError(\"dataset must be 'testing' or 'training'!\")\n",
" \n",
" for y, cls in enumerate(classes):\n",
" idxs = np.nonzero([i == y for i in labels])\n",
" print(\"Digit\", y, \":\", len(idxs[0]), \"images.\")\n",
" \n",
" ave_img = np.mean(np.vstack([images[i] for i in idxs[0]]), axis = 0)\n",
"# print(ave_img.shape)\n",
" \n",
" plt.subplot(1, num_classes, y+1)\n",
" plt.imshow(ave_img.reshape((28, 28)))\n",
" plt.axis(\"off\")\n",
" plt.title(cls)\n",
"\n",
"\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Average of all images in training dataset.\n",
"Digit 0 : 5923 images.\n",
"Digit 1 : 6742 images.\n",
"Digit 2 : 5958 images.\n",
"Digit 3 : 6131 images.\n",
"Digit 4 : 5842 images.\n",
"Digit 5 : 5421 images.\n",
"Digit 6 : 5918 images.\n",
"Digit 7 : 6265 images.\n",
"Digit 8 : 5851 images.\n",
"Digit 9 : 5949 images.\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11ade5208>"
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Average of all images in testing dataset.\n",
"Digit 0 : 980 images.\n",
"Digit 1 : 1135 images.\n",
"Digit 2 : 1032 images.\n",
"Digit 3 : 1010 images.\n",
"Digit 4 : 982 images.\n",
"Digit 5 : 892 images.\n",
"Digit 6 : 958 images.\n",
"Digit 7 : 1028 images.\n",
"Digit 8 : 974 images.\n",
"Digit 9 : 1009 images.\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11a504438>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"show_ave_MNIST(\"training\")\n",
"show_ave_MNIST(\"testing\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
"## k-Nearest Neighbours (kNN) classifier\n",
"\n",
"### Review\n",
"k-Nearest Neighbors algorithm is a non-parametric method used for classification and regression. We are gonna use this to classify MNIST handwritten digits. More about kNN on [Scholarpedia](http://www.scholarpedia.org/article/K-nearest_neighbor).\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see how kNN works with a simple plot shown in the above picture. There are two classes named **Class A** yellow color dots and **Class B** violet color dots. Every point in this plot has two **features** i.e. (X<sub>2</sub>, X<sub>1</sub>) values of that particular point which we used to plot. Now, let's say we have a new point, a red star and we want to know which class this red star belongs. Solving this problem by predicting the class of this new red star is out current classification problem.\n",
"\n",
"We have co-ordinates (we call them **features** in ML) of this red star and we need to predict its class using kNN algorithm. In this algorithm, the value of **k** is arbitary. **k** is one of the **hyper parameters** for kNN algorithm. We choose this number based on our dataset and choosing a particular number is known as **hyper parameter tuning/optimising**. We learn more about this in coming topics.\n",
"\n",
"Let's put **k = 3**. It means you need to find 3-Nearest Neighbors of this red star and classify this new point into majority class. Observe that smaller circle which containg 3 points other that **test point** (red star). As there are two violet points, which is majority, we predict the class of red star as **violet- Class B**.\n",
"\n",
"Similarly if we put **k = 5**, you can observe that there are 4 yellow points, which is majority. So, we classify our test point as **yellow- Class A**.\n",
"\n",
"In practical tasks, we iterate through a bunch of values for k (like [1, 2, 5, 10, 20, 50, 100]) and see how it performs and select the best one.\n",
"\n",
"Let's classify MNIST data in this method. Similar to these points, our images in MNIST data also have **features**. These points have two features as (2, 3) which represents co-ordinates of the point in 2-dimentional plane. Our images have 28x28 pixel values and we treat them as **features** for this particular task. \n",
"\n",
"Next couple of cells help you understand some useful definitions from learning module. "
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%psource DataSet"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"class DataSet explanation goes here"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%psource NearestNeighborLearner"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nearest NeighborLearner explanation goes here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, let us convert this raw data into `Dataset.examples` to run our `NearestNeighborLearner(dataset, k=1)` defined in `learning.py`. Every image is represented by 784 numbers (28x28 pixels) and we append them with its label or class to make them work with our implementations in learning module."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(60000, 784) (60000,)\n",
"(60000, 785)\n"
]
}
],
"source": [
"print(train_img.shape, train_lbl.shape)\n",
"temp_train_lbl = train_lbl.reshape((60000,1))\n",
"training_examples = np.hstack((train_img, temp_train_lbl))\n",
"print(training_examples.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, we will initialize DataSet with our training examples. Call NearestNeighbor Learner on this dataset. Predict the class of a test image."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# takes ~8 Secs. to execute this cell\n",
"MNIST_DataSet = DataSet(examples=training_examples, distance=manhattan_distance)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"kNN_Learner = NearestNeighborLearner(MNIST_DataSet)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Choose a number from 0 to 9999 for `test_img_choice` and we are going to predict the class of that test image."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Predicted class of test image: 2\n"
]
}
],
"source": [
"# takes ~20 Secs. to execute this cell\n",
"test_img_choice = 2311\n",
"predicted_class = kNN_Learner(test_img[test_img_choice])\n",
"print(\"Predicted class of test image:\", predicted_class)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To make sure that the output we got is correct, let's plot that image along with its label."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Actual class of test image: 2\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x11abc1710>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\niXsj88QAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11a275390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(\"Actual class of test image:\", test_lbl[test_img_choice])\n",
"plt.imshow(test_img[test_img_choice].reshape((28,28)))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"Hurray! We've got it correct. Don't worry if our algorithm predicted a wrong class. With this techinique we have only ~97% accuracy on this dataset. Let's try with a different test image and hope we get it this time.\n",
"\n",
"You might have recognized that our algorithm took ~20 seconds to predict a single image. How would we even predict all 10,000 test images? Yeah, the implementations we have in our learning module are not optimized to run on this particular dataset. We will have an optimised version below in NumPy which is nearly ~50-100 times faster than this implementation."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Faster kNN classifier implementation"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"class kNN_learner:\n",
" \"Simple kNN learner with manhattan distance\"\n",
" def __init__(self):\n",
" pass\n",
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
" \n",
" def train(self, train_img, train_lbl):\n",
" self.train_img = train_img\n",
" self.train_lbl = train_lbl\n",
"\n",
" def predict_labels(self, test_img, k=1, distance=\"manhattan\"):\n",
" if distance == \"manhattan\": \n",
" distances = self.compute_manhattan_distances(test_img)\n",
" num_test = distances.shape[0]\n",
" predictions = np.zeros(num_test, dtype=np.uint8)\n",
" \n",
" for i in range(num_test):\n",
" k_best_labels = self.train_lbl[np.argsort(distances[i])].flatten()[:k]\n",
" predictions[i] = mode(k_best_labels)\n",
" \n",
" return predictions\n",
" \n",
" def compute_manhattan_distances(self, test_img):\n",
" num_test = test_img.shape[0]\n",
" num_train = self.train_img.shape[0]\n",
"# print(num_test, num_train)\n",
" \n",
" dists = np.zeros((num_test, num_train))\n",
" \n",
" for i in range(num_test):\n",
" dists[i] = np.sum(abs(self.train_img - test_img[i]), axis = 1)\n",
" \n",
" return(dists)\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"learner = kNN_learner()\n",
"learner.train(train_img, train_lbl)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let us predict the classes of first 100 test images."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# takes ~17 Secs. to execute this cell\n",
"num_test = 100\n",
"predictions = learner.predict_labels(test_img[:num_test], k=3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's compare the performances of both implementations. It took 20 Secs. to predict one image using our native implementations and 17 Secs. to predict 100 images in faster implementations. That's 110 times faster.\n",
"\n",
"Now, test the accuracy of our predictions:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy of predictions: 98.0 %\n"
]
}
],
"source": [
"# print(predictions)\n",
"# print(test_lbl[:num_test])\n",
"\n",
"num_correct = np.sum([predictions == test_lbl[:num_test]])\n",
"num_accuracy = (float(num_correct) / num_test) * 100\n",
"print(\"Accuracy of predictions:\", num_accuracy, \"%\")"
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
},
"widgets": {
"state": {},
"version": "1.1.1"