Newer
Older
"deletable": true,
"editable": true
"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": "markdown",
"metadata": {},
"## Contents\n",
"\n",
"* Dataset\n",
"* Machine Learning Overview\n",
"* Plurality Learner Classifier\n",
" * Overview\n",
" * Implementation\n",
" * Example\n",
"* k-Nearest Neighbours Classifier\n",
" * Overview\n",
" * Implementation\n",
" * Example\n",
"* MNIST Handwritten Digits Classification\n",
" * Loading and Visualising\n",
" * Testing\n",
" * kNN Classifier"
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"The dataset we will be using for the following tutorials is [Fisher's Iris](https://github.com/aimacode/aima-data/blob/a21fc108f52ad551344e947b0eb97df82f8d2b2b/iris.csv). Each item represents a flower, with four measurements: the length and the width of the sepals and petals. Each item/flower is categorized into one of three species: Setosa, Versicolor and Virginica."
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"\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 observes some example input-output pairs and learns a function that maps from input to output.\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."
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
"## Plurality Learner Classifier\n",
"\n",
"### Overview\n",
"\n",
"The Plurality Learner is a simple algorithm, used mainly as a baseline comparison for other algorithms. It finds the most popular class in the dataset and classifies any subsequent item to that class. Essentially, it classifies every new item to the same class. For that reason, it is not used very often, instead opting for more complicated algorithms when we want accurate classification.\n",
"\n",
"\n",
"\n",
"Let's see how the classifier works with the plot above. There are three classes named **Class A** (orange-colored dots) and **Class B** (blue-colored dots) and **Class C** (green-colored dots). Every point in this plot has two **features** (i.e. X<sub>1</sub>, X<sub>2</sub>). Now, let's say we have a new point, a red star and we want to know which class this red star belongs to. Solving this problem by predicting the class of this new red star is our current classification problem.\n",
"\n",
"The Plurality Learner will find the class most represented in the plot. ***Class A*** has four items, ***Class B*** has three and ***Class C*** has seven. The most popular class is ***Class C***. Therefore, the item will get classified in ***Class C***, despite the fact that it is closer to the other two classes."
},
{
"cell_type": "markdown",
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
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
223
224
225
226
227
228
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
264
265
266
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"### Implementation\n",
"\n",
"Below follows the implementation of the PluralityLearner algorithm:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"def PluralityLearner(dataset):\n",
" \"\"\"A very dumb algorithm: always pick the result that was most popular\n",
" in the training data. Makes a baseline for comparison.\"\"\"\n",
" most_popular = mode([e[dataset.target] for e in dataset.examples])\n",
"\n",
" def predict(example):\n",
" \"Always return same result: the most popular from the training set.\"\n",
" return most_popular\n",
" return predict"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"It takes as input a dataset and returns a function. We can later call this function with the item we want to classify as the argument and it returns the class it should be classified in.\n",
"\n",
"The function first finds the most popular class in the dataset and then each time we call its \"predict\" function, it returns it. Note that the input (\"example\") does not matter. The function always returns the same class."
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"### Example\n",
"\n",
"For this example, we will not use the Iris dataset, since each class is represented the same. This will throw an error. Instead (and only for this algorithm) we will use the zoo dataset, found [here](https://github.com/aimacode/aima-data/blob/a21fc108f52ad551344e947b0eb97df82f8d2b2b/zoo.csv). The dataset holds different animals and their classification as \"mammal\", \"fish\", etc. The new animal we want to classify has the following measurements: 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1 (don't concern yourself with what the measurements mean)."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"mammal\n"
]
}
],
"source": [
"from learning import DataSet, PluralityLearner\n",
"\n",
"zoo = DataSet(name=\"zoo\")\n",
"\n",
"pL = PluralityLearner(zoo)\n",
"print(pL([1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 4, 1, 0, 1]))"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"The output for the above code is \"mammal\", since that is the most popular and common class in the dataset."
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"## k-Nearest Neighbours (kNN) Classifier\n",
"\n",
"### Overview\n",
"The k-Nearest Neighbors algorithm is a non-parametric method used for classification and regression. We are going to use this to classify Iris flowers. More about kNN on [Scholarpedia](http://www.scholarpedia.org/article/K-nearest_neighbor).\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"Let's see how kNN works with a simple plot shown in the above picture.\n",
"\n",
"We have co-ordinates (we call them **features** in Machine Learning) of this red star and we need to predict its class using the kNN algorithm. In this algorithm, the value of **k** is arbitrary. **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 the majority class. Observe that smaller circle which contains three points other than **test point** (red star). As there are two violet points, which form the 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 four yellow points, which form the 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, 3, 5, 10, 20, 50, 100]), see how it performs and select the best one. "
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"### Implementation\n",
"\n",
"Below follows the implementation of the kNN algorithm:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"def NearestNeighborLearner(dataset, k=1):\n",
" \"\"\"k-NearestNeighbor: the k nearest neighbors vote.\"\"\"\n",
" def predict(example):\n",
" \"\"\"Find the k closest items, and have them vote for the best.\"\"\"\n",
" best = heapq.nsmallest(k, ((dataset.distance(e, example), e)\n",
" for e in dataset.examples))\n",
" return mode(e[dataset.target] for (d, e) in best)\n",
" return predict"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"It takes as input a dataset and k (default value is 1) and it returns a function, which we can later use to classify a new item.\n",
"To accomplish that, the function uses a heap-queue, where the items of the dataset are sorted according to their distance from *example* (the item to classify). We then take the k smallest elements from the heap-queue and we find the majority class. We classify the item to this class."
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"### Example\n",
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
"We measured a new flower with the following values: 5.1, 3.0, 1.1, 0.1. We want to classify that item/flower in a class. To do that, we write the following:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"setosa\n"
]
}
],
"source": [
"from learning import DataSet, NearestNeighborLearner\n",
"\n",
"iris = DataSet(name=\"iris\")\n",
"\n",
"kNN = NearestNeighborLearner(iris,k=3)\n",
"print(kNN([5.1,3.0,1.1,0.1]))"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"The output of the above code is \"setosa\", which means the flower with the above measurements is of the \"setosa\" species."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## MNIST Handwritten Digits Classification\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 and 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 different learning algorithms.\n",
"\n",
"It is estimated that humans have an error rate of about **0.2%** on this problem. Let's see how our algorithms perform!\n",
"NOTE: We will be using external libraries to load and visualize the dataset smoothly ([numpy](http://www.numpy.org/) for loading and [matplotlib](http://matplotlib.org/) for visualization). You do not need previous experience of the libraries to follow along."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Loading MNIST digits data\n",
"\n",
"Let's start by loading MNIST data into numpy arrays."
]
},
{
"cell_type": "code",
},
"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",
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def load_MNIST(path=\"aima-data/MNIST\"):\n",
" \"helper function to load MNIST data\"\n",
" with open(os.path.join(path, \"train-images-idx3-ubyte\"), \"rb\") as train_img_file:\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",
" with open(os.path.join(path, \"train-labels-idx1-ubyte\"), \"rb\") as train_lbl_file:\n",
" magic_nr, tr_size = struct.unpack(\">II\", train_lbl_file.read(8))\n",
" tr_lbl = array.array(\"b\", train_lbl_file.read())\n",
" with open(os.path.join(path, \"t10k-images-idx3-ubyte\"), \"rb\") as test_img_file:\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",
" \n",
" with open(os.path.join(path, \"t10k-labels-idx1-ubyte\"), \"rb\") as test_lbl_file:\n",
" magic_nr, te_size = struct.unpack(\">II\", test_lbl_file.read(8))\n",
" te_lbl = array.array(\"b\", test_lbl_file.read())\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 going to use to train and classify hand-written digits in various learning approaches."
]
},
{
"cell_type": "code",
},
"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 a 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",
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
"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": [
"### Visualizing MNIST digits data\n",
"To get a better understanding of the dataset, let's visualize some random images for each class from training and testing datasets."
]
},
{
"cell_type": "code",
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
},
"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",
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"<matplotlib.figure.Figure at 0x7f7403b82780>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# takes 5-10 seconds to execute this\n",
"show_MNIST(\"training\")"
]
},
{
"cell_type": "code",
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nEydO6AmudAqoqanR50UaE7e1telGxnK9kYro0mTa7TZu3Ki/lveqfN5nE5f2iIiIiGzypHJnnLYX\n83im9WI/fvzQESm7xsfHdaLdTCilPKn83HTHmKry8nK9VFJfXw8g/aUAUhnjTMYnEQq/369LOEhk\nKhAI6JIAmZLJc7ht2zYAwLVr1/72f8uxWJ6/ffs2RkZGAMSqSD958gQTExPTOo5cv0/NJFneHMGQ\nyE15eTkAeyU8MjXGw4cP60rzshy9d+9enV7w7ds3AEafRDnPydIM0iHTf4u5luv3qVJKR9m2b9+e\niZdI+xgl4jJ//nx9HXn8+DEAaw9E6XW5bNmyhOuNLGmm67MjV+dRIlE3b97UmyRkpUlWNtIllTEy\nIkVERERkk6NypOK1tLRg3759AIDVq1dP63dlhi5J5243MTEx7eiE00jESfIv8ols9b9z5w4Ao/jk\nrVu3ABh5NoAR3aioqLD8nkSfGhoaXJ1nk4wUfZQ+ifX19Trx3InFAAsLC7F//37Lc9FoFGfOnAEQ\nS8Z26oYHym+Sa6iU0jlSUrqipqZGXz/MUSjJ/5L8qnwpaNzW1gbAWrLjy5cvuTocZ0+kLly4oMOv\nspwFxGpiVFVVATCWReLJzr/4xGW3Ghwc1B9IsuxAziGThj8lUV+8eDFLR+MMMvGX5ds5c+ZgfHwc\nAPDx48ecHdfvnDx5EitWrABg1C4DjMTe+IrzRLkgu9rb2toskyrAWDI37+ADjL872WnqxBuXmTDv\nJpVdo+fOncvV4XBpj4iIiMguRyebO0mukyOzgQmuBo7R2ThGQ76PD0j/GKXswfDwsF72kg0G6cb3\naUy6xiiRuGfPngEASkpKdKR/z5496XiJBEw2JyIiIsogR+dIERERZYIbe+z962SzipTScQou7aWI\nYVpDvo8P4BidjmM05Pv4AI7R6ThGA5f2iIiIiGzKakSKiIiIKJ8wIkVERERkEydSRERERDZxIkVE\nRERkEydSRERERDZxIkVERERkEydSRERERDZxIkVERERkEydSRERERDZxIkVERERkEydSRERERDZx\nIkVERERkEydSRERERDZxIkVERERkEydSRERERDZxIkVERERkEydSRERERDZxIkVERERkEydSRERE\nRDZxIkVERERkEydSRERERDZxIkVERERkEydSRERERDZxIkVERERk03/U/8ILIfnKEQAAAABJRU5E\nrkJggg==\n",
"<matplotlib.figure.Figure at 0x7f7400a4b1d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# takes 5-10 seconds to execute this\n",
"show_MNIST(\"testing\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's have a look at the average of all the images of training and testing data."
]
},
{
"cell_type": "code",
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
},
"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",
"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",
"<matplotlib.figure.Figure at 0x7f740390c7b8>"
]
},
"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": "iVBORw0KGgoAAAANSUhEUgAAAlMAAABeCAYAAAAHQJEfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnWtsnNl53/+HM+TwMqR4GVKUxNVdXK1X613b9XrhIs4C\naeqmRdu07ge3rhsUKFrYcIBeUrQfUqB1UgQFiqZAbkUAN3HrooALuGmaBvnSwGg3a2+9a+39ol2J\nEkWKlEhqeJ/hzJCnH17+n3neMyOtsjPzviT3+QHCjGaGM+e85/I+z/885znOew/DMAzDMAzjo9GV\ndgEMwzAMwzAOM2ZMGYZhGIZhtIAZU4ZhGIZhGC1gxpRhGIZhGEYLmDFlGIZhGIbRAmZMGYZhGIZh\ntIAZU4ZhGIZhGC1w6I0p59yoc+6/O+e2nHO3nHN/K+0ytRvn3Deccy8753acc7+bdnnajXMu55z7\n1n77bTjnXnXO/Uza5Wo3zrnvOOcWnHPrzrlrzrm/l3aZOoFz7pJzruyc+07aZWk3zrnv79dtc//f\ne2mXqRM4577snHtnf1697pz7ibTL1C5U2/HfrnPu19IuVztxzp11zv2hc67onFt0zv26cy6bdrna\niXPuCefcHzvn1pxzHzjn/lqa5Tn0xhSA3wBQAXAcwFcA/JZz7sl0i9R27gD4ZQD/Me2CdIgsgNsA\nfhLAMQC/COC7zrmzKZapE/wKgLPe+yEAfwXALzvnPpNymTrBbwD4UdqF6CDf8N7n9/89nnZh2o1z\n7qcB/BsAfxfAIIAvALiRaqHaiGq7PIBJACUA/y3lYrWb3wRwD8AJAM8gmlu/nmqJ2si+Yfg/APwB\ngFEAfx/Ad5xz02mV6VAbU865AQBfAvAvvPeb3vsXAPw+gK+mW7L24r3/nvf+9wCspF2WTuC93/Le\n/0vv/U3v/Z73/g8AzAA4UoaG9/4t7/0O/7v/70KKRWo7zrkvA1gF8L/TLovxkflXAL7pvf/h/nic\n997Pp12oDvElREbH/027IG3mHIDveu/L3vtFAH8E4CiJDJcBnATwq977Xe/9HwP4E6R47z/UxhSA\naQA17/019dprOFqd5mOHc+44orZ9K+2ytBvn3G8657YBvAtgAcAfplyktuGcGwLwTQD/OO2ydJhf\ncc4tO+f+xDn3fNqFaSfOuQyAPwNgfH/pZG5/iagv7bJ1iJ8D8J/80TtX7d8D+LJzrt85dwrAzyAy\nqI4yDsCVtH78sBtTeQDrwWtriKRp4xDinOsG8F8AfNt7/27a5Wk33vuvI+qfPwHgewB2Hv4Xh4pf\nAvAt7/1c2gXpIP8MwHkApwD8NoD/6Zw7SuricQDdAP4Goj76DIBPIVp6P1I4584gWv76dtpl6QD/\nB5GosA5gDsDLAH4v1RK1l/cQKYr/1DnX7Zz784jasj+tAh12Y2oTwFDw2hCAjRTKYrSIc64LwH9G\nFAP3jZSL0zH2ZekXAEwB+Fra5WkHzrlnAPw5AL+adlk6iff+Je/9hvd+x3v/bURLC38x7XK1kdL+\n46957xe898sA/h2OVh3JVwG84L2fSbsg7WR/Hv0jRM7aAIACgBFEcXBHAu99FcDPAvhLABYB/BMA\n30VkOKbCYTemrgHIOucuqdeexhFcHjrqOOccgG8h8oy/tD9YjjpZHJ2YqecBnAUw65xbBPALAL7k\nnPtxmoVKAI9oeeFI4L0vIroh6WWvo7YERv4OjqYqNQrgNIBf3zf6VwD8Do6YQey9f917/5Pe+zHv\n/RcRKcb/L63yHGpjynu/hcj6/qZzbsA592cB/FVE6saRwTmXdc71AsgAyDjneo/aNlcAvwXgCQB/\n2Xtf+rAPHzaccxP7283zzrmMc+6LAP4mjk6g9m8jMgyf2f/3HwD8LwBfTLNQ7cQ5N+yc+yLHn3Pu\nK4h2uh21WJTfAfDz+312BMA/QrRr6sjgnPs8oqXao7aLD/tq4gyAr+3302FEsWGvp1uy9uKc++T+\nWOx3zv0Cop2Lv5tWeQ61MbXP1wH0IVo//a8Avua9P2rK1C8ikt//OYC/vf/8yMQw7Mcu/ANEN+FF\nlf/lKykXrZ14REt6cwCKAP4tgH/ovf/9VEvVJrz32977Rf5DtARf9t4vpV22NtKNKEXJEoBlAD8P\n4GeDDTBHgV9ClNriGoB3AFwF8K9TLVH7+TkA3/PeH9WQkL8O4C8g6qsfAKgiMoqPEl9FtInnHoCf\nAvDTard04rijt4nBMAzDMAwjOY6CMmUYhmEYhpEaZkwZhmEYhmG0gBlThmEYhmEYLWDGlGEYhmEY\nRguYMWUYhmEYhtECieYqcs4d6q2D3vsPTc531Ot41OsHWB0PA1bHo18/wOp4GLA6Rhy1xI+GYRjG\nIxIdPND4qPHeY29vr+n7llrHMCLMmDI6AiddPdnyta6urtijnqCbTc67u7ux92wCN4yPTldXF7LZ\naOrv7u4GAPT3R+fD5nI55HI5eU5qtRoAYGdnJ/ZYqVRiz4FovNL4MoyPCxYzZRiGYRiG0QKHXply\nzjUoHV1dXQ3KCD2lvb09ec73nHOHRu14mOJzEOtADzibzaK3txcAMDg4CAAYGBgAAOTzeXmP1Go1\nbG5uAoA8bm9vyyO9YXrMB6HuzrkG9U3/P1TWvPcPVNv0e4edZktHRI9B/f+Dhq5DWB/d7s14WLsn\nCftkNpsV1SmfzwMAjh07BgAYHh7GyMhI7L2+vj5Uq9G546urqwDqY7FYLMpr6+vrACLViipVONca\nydOs75rK335MmTIMwzAMw2iBQ6NMZTIZAPV1fKoaIyMjGB8fBwCMjo4CAIaGhuTv6C3dv38fALCy\nsoJisQigrnhUKhWJyzkIa/30HhjP0NvbK14ivcZsNiuqDMteLpflUT8HIgUnjD3qJCw72+nYsWOY\nnJwEADz22GMAgKmpKfn/8ePHAUSeMRC1w8rKCgDg+vXrAIB33nkHAHDjxg0sLi4CqHvK5XI50bbT\nimhPTw+AKO6EHj77YqFQABCpcfwcy1kqlbC2tgYg3j8BYGNjI9Z2/Lu0PMlmyksYtPyg+DiO3fA7\ntIKsxx+fJ9lfw/KxbVl29udcLicqKl/r7u4WBZZoxY3tR3VnZ2cHW1tbANDQxp2oa9hOmUymYR5l\nfx0fH5fnHIv9/f2iBPPz9+7dk3JTpeI1qFQqcv1MAeksoRLOPtnX1ydtxcdsNivtQOWwVCoBiPok\n25j9tFqtHmhl8UGbJdLClCnDMAzDMIwWONDKlPakuNuEXtPZs2cBANPT03jiiSdir1G9AerKxezs\nLIBI3Xj//fcBADMzMwAiVWBjYwNAup7Ug7yMwcHBmIoDREoPPQl6uazr2tqaKBykVCol5mV0dXWh\nr68PQL29pqamcPHiRQCQ9uL/z549K+oi46m89+Lxzs3NyXcAwCuvvII333wTQKRSAZGKQW+rk/XT\nCin7JD34yclJXLp0CQBw+fJlAMCFCxcAAMePHxfFlO28traGhYUFAMAHH3wAAHj33XcBANeuXcP8\n/DwAiJJaLpdFwegkWskI4xGz2WyDIsdrUq1WpXz8TF9fn/QFKhf0lHWsIj3kzc1NUYyp2tBT7lS7\nhuMul8vFFFWg3o9HR0dj8UVApNxQ6eGY5VirVCpSN62Ss93v3LkDoK5IVqvVjtVTtyHVtVDxLhQK\noqbyPQANaiHrtLW1JeMuzd18D4tje5iCSvRrD7sHpKl8hP00k8nI2GL7Uf0/c+YMzp8/DwA4ceIE\ngKi/cqxSEb958yaA6F54+/ZtABDVf21tTdpZq+NAOnF/oVqczWZlTuFrLBtQ76ucP3S/7ET/PJDG\nFDsNL1R/f7/cbHlzeuaZZwAAV65cwfT0NID6zTafz8eWUoC6oVUoFOSGzYnv2rVrYphwAj8IsqZe\n7uPExuswNjYmZebNVk90unMByXR+fZOlocFBPj4+jomJCQD1GxPbwTknddFtz/bhEiCNsI2NjYbl\n21Kp1LDs2am6AVEfo3HEfnf58mU89dRTAIBz587Fyj42NiY3aN7IvPdiHIfLnJlMRuqj69XJyYBo\nJ4ZjkGXWy1x85GdqtZqMH9LT0yPtzOtFY6Svr09uwGzHhYWFhnp3epMB60uDaGhoSNqU8wbb6fTp\n02JssD4DAwPSV/ldrNf6+rrcuGgwLS4uxtIOAHFjst0GczMnjW2njSggGqfsg/y7crkscwxvtEtL\nS/IYGr9JGVO6XuyDvK69vb2xMAmgPt/rJVltOLHMvP6sT6VSkfbUqSGSdLybhRXk83mZN+jEffKT\nnwQAPPnkk9J3Od92d3fH+iVQN75GRkZkztabhthnQ8emE3NsM7q6uhrSd4yNjQGIxiTtgVOnTgGI\nxiL7I41DCinz8/OxMAogatt29VVb5jMMwzAMw2iBA6dMOedEVdHeEz19ev5Ups6fPy/WOT+/t7cn\nFjS9F1qzly9fbgg2L5VKYqnS8zho0BuhNzw8PBxLFQDU61qr1RpSB+zu7iaqTIWJ/7q7u+X3uSzJ\nJY7FxUVpE7b94OCgeMs6gBKIvGh6z7weKysrD92e3irhpgBdR7aNc076EZcm6dHrz7M+g4ODDa+d\nPHlSHsNlvs3NTfEsO4n2+HVwPRCNRaqkVJzYLnocsd855+TzHINUV/v7+xsCsbPZ7AMD1juBnm+4\nZFIoFGS+4VI0Pf8zZ87ElveAqK6hqsGy9/b2iuqkE2Xy2vGR14jXo531C5X+vr6+huVLqsaFQkHq\npTdHsC9yzN69exdA1Cc51zRTK9o552jFFKiPu76+PlHYWI/x8XGZP/ga+19/f7/8bbPysb2ovs3N\nzUlICJfFisWifK7Ty9BAXKHhXHHixAlR67UiBURqOecWqjFra2sNKy/st+Pj49L39CpNuEEiXO7t\nFHpMso9ShfrMZz4DAHjuuefw+OOPA6i3cTablX7LjUuvvPIKAODHP/4xrl27BqCusK6vr0sdW1Wo\nTJkyDMMwDMNogQOpTNGDoupw6tQp8RBpeTO4jl4uAPGeVldXxboOFZ18Pi8WLr3olZWVmKUKJLcm\n3IzQa/Dei1dCr3hsbKzBU2OdNzc3G9a4k4ix0Y/8Pe3l0EOil3Pr1i35DMtLdWt8fFzUAba19kTp\nnfG1cGt6uwlVEq3+MfD/9u3b4t3puCg+hjFgZ86ckbV+KhM6CDqMw9HXtRM0S12g1Qwg6ncsP9UN\ntufGxkYsuJ7fGQbJMiBWx3Do9AFhXEan6xwqHYVCQRRCxp3w/8eOHZN2oTKxuroq7U6VmHPL2tqa\nzCm8Jqurq/KcddVxKnytXYTpHZopOTq2LwyYn52dlbgTzpOsr47vYt/V7dXOZKw68BioK4MTExM4\nc+YMgLqSePHixZiaCNRVOD22iPdeysrrz7q+9dZbePHFF2P12d3dbVBpOnHPaKYSc644efKk9E8+\n8j5XLBZFHaeadv/+/Zi6D9Rjprq7u+Xewu/v7e2V3+T1anffDAlV4snJSbnnf+ELXwAAPPvsswAi\nu4CfX15eBhCPZeMczLF7+/ZtUVR1Sp123SMPjDGlOw0HCQ2l06dPN+yO4nvValWkZ3aaubk5maw4\n4XOQnT9/Xr6fg2xpaUlkXH5XGEibBjrYmJItperjx4/LjYidgRP45uZmwy6MJIIk+Rva0GAw4N27\nd6VMzFHD+unlKw729fV1mRgY/MsBpnMX8ZETeafhtS6VSrH6AtGNlBNwSC6Xk7bT2d75nPXgddAG\ncScD6x+Gc04mUU6wo6OjYgCyfWhA6GBOvauP38EJnDfunZ0d+bzOixbmu+kkOrBXL2WGxhSND++9\nLP/QOZibm5PXOAa1ccX68Drp5RMaLHyv3W3czFjM5/NiWLCenE+z2azccLjjcHZ2VsYsxzDRTgzb\ncnd3t+3zjl6uDJe7hoeHZWyxj508eVLmDb7HslarVZmX9BJouGmG88329rbcH7h0pI2xJMILtGOj\ny8mxxLHIfnX79m1cvXoVQH3H8/b2dmyJHaj3t56enkeqR6eXMnmfYxtcunQJzz//PADgc5/7HIC6\noDAzM4P33ntPngNR27JP01DkPDIwMNCws/jDTi/4U5W/Ld9iGIZhGIbxMeXAKFMkm82Klc3lAC3Z\n0uqkRX3r1i3JzcMM2TMzM+Lx0QOjp9jd3S3LRloupcVOb4d/nySh1a+X+ehJ8JpMTEyIjBsuI2xs\nbDScjZVEubUqEXqw1WpVykdPWZ9Ez/akkjg+Pi7fSy9C5w8Jl4c6nX8pzF2iA8H526VSqWH7NetT\nKBRE5bhy5QqASGWlJ81rQ4Xjzp07Il2z71YqlY56huE5eXppgWNyYmJCPD72SSoZ5XK54RzF/v5+\n8QbZd1nnxcVF+Rzrv7W1JUpOUrmKWEcGg4+NjYlqTc+ffXZ1dVXahbnBbt68Ka9pdRiIroPeYg9E\nfUhnQwfiaQXaTXh6xPDwsNSLbcJ5cnl5WdqTy/ArKytSrnAziM6qzbqUSqWOqqrhWCyXy3LduXyz\nuLgoZeQSJcdRsViUOZN9rL+/X+4Ln/70pwHET9Jge+nwiSTSlBCtoOprH6bYYPnu3r0rqyysay6X\ni6XAAOrzU6lUkj7LubtcLjfkEOtEXbU6SKWe/fPpp5+WZT72PapRL7zwAt544w2pLxCNYW5SoyLJ\nOk5MTMg9v1leqlYxZcowDMMwDKMFDpwy1dfXJ0GR9A6np6dl/ZsWpc5o/uqrr8pzIJ74j3ENVAxO\nnDgh3hit4MHBQVmHpRd9EE6x10oBy8dkgkNDQ+IJ0itm4sNyuZz4uWb6t5plI69Wq7EUAkBcTQoT\n6x07dkw8C77G+m5sbIiSEcaG6e9vZ92beWShOpbL5cRTZB+movrUU0+Jx8S4v9HRUVFmqAJQbZyf\nn2+oY1JKTbM4Eh1jQ6+R15cxGWtra7Fs7UCk/tIL1tn7gaiuVBJ04sckY8P0hhfWtVAoyBzBR177\njY2NmBIJRP2A9WU9WK/19XV5rVmaklDdaPd4bVa/kZERURd1rBQQz87O+SSbzcp1oFqjN1jobOj8\nO/YhvtdqmzZLqsmxs76+LoqujkcM47yoXty7d0+ULH7niRMnZH6hgsx5Z2NjI3a6BH87zAreCXQ/\n0TFpQDRWwhUAvYGF8yfn3cnJSUmlwBUefn55eVmuoU578aAM6O1Eb6Si+sS54uLFi3Lv4wazH/zg\nBwCAl156SeZLojP4sx2pOK+urjZs6mlnMmtTpgzDMAzDMFrgwChTtJDz+bx4TXrbJ9c66RkwXuHV\nV1/Fa6+9BqCuVjXbaUWFqlgsihepj7UIt9qnqUyFxxRkMhnZQUWLvVQqyVq4PksJ6Oz5Xo9CMy/K\ney/P2dZ6d45OgwFEqiQ9K0Jvcnl5WTxFvUU7TNFA2nEtwjbR6gK9nUwmIwoOPcDPf/7zAKI4DB57\nxLpWq9WG3V86cV6YDLHTbRpev56eHhkjHJNTU1PSLvT8WWZ9FArH0cTEhOykPX36NIC6orC1tdVw\nFElS/VbXNYwpGhoaakgdoHcdssx81GdRUhlhH69UKg079XSSzyQS6VJ1ooeu497YvhxPy8vLoi7y\nepw4cUIU8VDtKJVKsWNygGgcsH6MNWrH9vNwTtdqIK87VRWdfJl1o+K2srIS2+EFRPeAMIEu22tl\nZUX6Or9Lx3kmgU5ErWO/WC4qTWyf6elpUXR43SYnJ0WJ1DHHfORueF6nZolJO9FvdSwYrz3V75GR\nESkD7+/cUbmxsSGfZ72eeOIJfOpTnwIAmW91DKbeUQu0N9b2wBhTHPAjIyMy6erz9Nj4DKpj4Nm1\na9ekQ3By0zc6Dnod/BkOAj2hJrXF/lHQBiaDIzlA1tfX5VpwQCUduPswQuNDBzOHZ2YNDw9LmzOT\n77lz5+SGxvbiRHb//n0xJHXgbjjAO3Gj4rXt6upquM56iZo5svTGCdZXT4qsm77RAdFNjjdo9msd\n9NpJ9Fl1bANO1hMTE9IHeRPVJxVwHPMzV65ckeVNfgcn7d3d3Zjhxscwo3SnDY7Q8NcGEPuXznFE\ng5mf7+3tFQOZbcb6AI0GRZI3YZ2agn1sfHxc6sB66SU6GhUM/L148aI4OfwOndaEy4G8sQFxgxlo\nT6qZsO/rDSx6yQ+IrnWYB47l3NzcjM2tQHTzZvodGiQ0zGZnZ2WJid9fq9USTTejQyd4Te/duyfn\nz3Fpi+P14sWL4tDpUyVYfgZxv//++wCi+yi/i+Nap6xJwvjPZDIN537u7e1JmWlUsQ9qkYXz7dNP\nPy0Z0jnf0PhaXl6WuunlSzubzzAMwzAM4wBw4JQpnWGZUnRvb68sYfFsHVqbt27dinnuQDybbXia\n+MDAgDzXJ7ynlRixGWFyusnJSVHp6GWsra2Jh38QsrZrMpmMXGN66v39/bKkEJ5UPzU1JUtBrKfO\n8M5lB3qWy8vLDRmkvffibYZb/DvhTek+ph9ZBnrF9Gh3d3cblg+Axoy/vA4rKysN6lulUklkyU8H\nsVJxoYxeKBTEG2RQMpWn48ePyziiMnXp0iVJBcHXqKh2d3dLUDQfS6XSA73hTtWZv8c+NT8/L5tZ\nWAa2XaVSkfmG7+VyuYYlFVKr1aT99HmZoTfcyfYMUz+MjIzIWCRcbgbqXj6XSc6fPy/109vmQ1i/\nYrEowcxaoWsXoZJYq9VEmSI6xQbf41yh5yfOQU8++aSc88Yysw63bt2SuSct9d97L2OLytTKyoqo\nSVQauWkrn8+LMsP6VKtVWYplmAzvp7Ozs7KRif1bJ+FNinBzx/b2tqhUVO25erG3tyf9mHW9cOGC\nzEucx6hGzc7OxjZpAe09s9aUKcMwDMMwjBY4MMqUPnKCXjA9KQANR8YwGG11dbWpIhOeY6ST1PE1\n/t36+rp4pTpwMS30GjcQeYrhOWhzc3MSKJjEqeUPIzwjUJ9Kz/gDHfTK+AumCDh79qy8RoWmWq2K\nR9Hs6I0woWdPT08s6BdI7hgWHZzM+DUqG/T2hoaGpKz6+BJeE3qU9JSnp6cbzpHa2tpKpE4sX1dX\nV8NmAe+9tBE3Q7CfXrhwQT5PJWdyclLGXphgVdeB1yaTyXT0eI5msDxsq7feekvmAXruVM5yuVzT\ns+7CszPZP8vlsswtelt9J89z0+gjgViHfD4vz8MUJuPj46IAMI5xYGBA1GEqG7xmOnCb39nX19ew\nkacTsMw6gW54LJX+HK9DLpeT+YlxUp/97GdF3aDyw1jcxcVFeY1jXR9DktRmpWaJg6m68ZGfyeVy\ncg14TdbX12VO5aOeW8K+kNT9RG8sCNNYzM3NNcwpnCszmUzsvFYgah9eH45h2grz8/MNq1jtVN4O\njDGlMy1zcubF29vba9gxwsGtd67p5bEwLxMHzdTUlHwvv2tpaUkaL+yUScJOw2vBm9DU1FQsAzMQ\nybTsGGnu3APiActAFDzNiZhG0qlTpySInkt5HBRTU1PSXmHuLKA+eeigUcra+qBYLQ0D7c0qrbOC\n8//hZoVSqSR9im2jA6vD61QoFBp2+HFC104FJ/7l5eW25e15GDqjNWVx3lgGBgbEqOXNSZeFdaM0\n39/fLzdeGprMDbO0tBTL2g9E1zCJw7lJJpORdtQH3LL9aEzpHXGcn/QSA41ifYYhEBlQ+uBYIH7A\nc6cDe/VuPrZXd3d3w0G/OsdWuPHj5s2bDSEFzTZKcFms2QkFnVpq52/ofHZA1K56ly0QP9OP8xN3\nfl24cEE+x6V5BmnfvXs38d2mIdp4085YuNtWZzRnm+ndp7yPhqEk+vBnvRkrCcNK5w/jPMDly3w+\nL+WnY845Ru8QZ/91zknfpI3A67C0tNR0mdaW+QzDMAzDMA4AB06Z6u3tFU9HB/PSogyX4bLZbMP2\n6qGhIVE/nnvuOQD185YmJyfFmuUy2e3bt8WrSkuZ0pmKQ5VieHhYPD169bOzs/Ja0nJzCNuJ7TYx\nMSGKINWoc+fOybIQvSh9OjvronMraU8aQOzMRnoW/M379++LJ6I3FrRKuISpH8PXnHNS/mbKQ6g8\n7uzsiIJBxUl/Ri8t8bUklk10oCu9dL63uLjYkJmeZdZ5tjj+arWa1IOZ0nliwQcffCCKsA62D4Ps\nO9GfdZ8Nz5vb29trWJojfX19oqLSA+7r6xP1KcxXp88m1Oc2JjVW9/b2mv4Gy8Jyst34N0B9KejO\nnTsytjhmOZZPnjwpbUcFQZ99x/HQSWWqmYLpnJPXOT51XZmyhOkDCoWC1JFnvTJtwPLyckMQezsD\nlx8V1kPnVgpVfva1O3fuyD2N7bi3tyfzEtuf7X7//v2GnG9dXV2JbGrSqiKXU3lvrtVqMkdwjOlN\nDRyzVBofe+wxUdO5vEeVS6d66MTcYsqUYRiGYRhGCxwYZUqf10ZrWHv1+sRzIO5J0cvke4899phs\nx3722WcB1IOdc7mceMhcE79+/XrTzLlJks1mxatgEDI9397e3thp6EDkyWtFAGiezTUJ74negY4X\nofpEj+HEiRMN5x/SwyiXyw0nz+u6MEaF8Vf9/f3yW7we+kwuqjx67b/V+BvWkb/T09Mjz3Wwa6hM\n6e3bYZxCJpORevCa6CD1sMxJBWZrZUr3NyDy8sJ667HJ9tbfxXZg/BEf5+bmRA3QmZY7mf4hVBqH\nhoakX7EepVKpwUvXcR3hONNxV0RvkNDKIhCPRek03nvpk6yTThugM9sDUV10/BoQjV3On+GZftVq\nVeZTKgC6XTupTDVDq1XsRzouiGVn+gduoy+XyxJbQ+WU/19dXZV+oOP5kgzU1kmPOY8eP35c+i5j\npaigLSwsSLuw3QcHB0XV4jig2j80NCRtpuNCk6zj3t5eLL0GEPUfPmf9dQwc+yFXcWq1mihybD/G\n3zZLLdPOOdWUKcMwDMMwjBY4MMoULcbNzU3xjGilDg4OisfLXXlkdXVVPGXufrtw4YKshYde58LC\nAt58800AwNtvvw0AmJmZEeWnnWf1PAp6PT9MkMj/e+9FOaNSsLOz06BM8f9JJ+8MY4Hy+bzEVtBj\n0rvTqCqyTarVasNxEBsbGw0nolOh0jt1qBiUSiVZK2/n2XwPSv46ODgoHqLeSUIPlmv/rFelUpHv\nYD+dnp6FGLIUAAAKJklEQVSW3XzhKe763Dq9MyopD5G/q9M+AM0VUdZ/d3dXrgm9yUwmI/2R8Vf6\nWI9Qwev0Dr6wPfP5vKgTVIK99013GfLv6d3rnZesN/ul3sXWLMlkUkrN7u6u9EHGzty+fVtibVgH\nzq/Dw8NSZx2XyLHH/q/ji15//XUA9XQgCwsL8h1JzEVaQWnWf8K0FZOTk9LWfG9hYaFprBQQjeHw\nKCDvfaIxU845uc9xTh0dHZU6sT+zjW/cuCHKjP4OKuGhWpfL5WIpUdJA787TaSDYf3UaHCCK3+M1\n4b1yZ2dH7pWcbziWm407nXy51fY8MMYUJ6ulpSUJPqOBMzo6KoHMnMgoO29tbclF5s16YmIiZogA\n9YC2H/3oR7h69SqA+nLD0tKS/H5SA6RZrhoOEpad9drc3JRt5ewYu7u70qn4OR2Inna6BKLP3+ME\nxomZN9JSqST1okRbLBZlEIWB3ru7u2JoPOzQ3HYaxqHBODQ0JP2NAdm9vb3SBnQE9PIA25c37+np\naXziE58AUJ/o2c537txpaPM0DlflNdQGVpjigWMyl8vFjFsgGsO8Eelz0/idSR34+yBqtZqMQX24\nqnbugPjGFN6QuBxfKBQastvT2Nje3pZ608DWyw2dZm9vT9qCufreffddcXbY7+iknjp1qiG3WFdX\nl/Rj3qBffvllAMAPf/hDmU9nZmYARHUPA307if4NXeZmG1eAyIDka9rQ5P2ADmuz9ko6B5OuD+ce\nnX6Ec394+HO1Wo3dW4CoXzc7hSGEY1IbpklvbmpmFOsDkYFo3gkdc+2E0xh+WIqcdt4rbZnPMAzD\nMAyjBVJXpmjx0nqcn5+Xc4PoKY6OjooSxWU7LuOVSqWm52HRG2SywVdeeQUAcPXqVQk8p6e2sbGR\nqMevEz7qLdTh1k96G7p89JR3d3cbMmonnTma0IvQp7SHGXaLxaLUj14r67K0tCRtQQWxWCzGtujq\n36lUKrFz+oDIm+RzepTtzAzP79DeEevDbeJTU1Pi8dJT0tvh+R69qbGxMVHb6A3Tu3/77bcloJfX\ncHt7O9GzsvQSla5/2HfDdABAvQ2cczEFEqj3a91fk+q7rA/7xvb2dkP6g0Kh0KAO6yzabFMqrNls\nVr6PaiKVKb1Fnb9TqVQSUzi89zKOmmV41+cRAtHZkFTcWLbl5WVRbbikx1AJvXmHbd7s7MFOopdq\ndN9k+7A+vJ8MDQ3J5zmP3Lx5U9LOcImyWbB50jQLlNZjMkwLRJUcqG8q4PjkfAXUlwNZx3K5LM+b\npX9Iov46MSnRSWepsLFdR0dHZZzymqyurkr7hek5Ot0nTZkyDMMwDMNogdSVqXBL/OLiogSG09r2\n3ou1zNgpxp/09fWJx6uTddGT4jZXBhfeunVLPCkqI0kGhAJxZYpWdzabbUhxwPIBda+e14nXI/ze\nNGB56QncuXOn4YiOYrEo8RasMz2I5eVl8ejZhuvr6xLPEMYrVCqVhgBvvXGhnUc/hMdUNIvR4nu9\nvb2SPI+Bveyn/f39saSQrD+VqNdeew1AFNMHAG+88YaoBVSmtKKRFjq5LOPhdFoKXntep66uLrk+\nzdJeNAt2TSI+Q5/LyetMFXtsbEzi4ZgKQKf1CONUVldXJUEg+7gOZqbC+LBA2E7hvW+YTyqVivQp\nBlt///vfBxCPq+Hfra2tSdk5Pvn/UqmU2pluRM+n+sgYKsBUpDgWe3p6pH9yzlhYWIjVCUgv2LwZ\nOn6R5dPxQaw3V24ef/xx6aesh07Cy3qzPe/fvx9TTvmbSSlS+lE/b3b+Hsfi8PBwLAEyEF0bfYYr\n0FzJ68S9MnVjirDC6+vrsszHwX/37l15jct9DCbs6emRz7GjXL9+XT6vzwEDookvlP3SGPzhDUNn\nfw1z7/T29kqn0QGuWlbX7yU9+JstQbJDs03efPPNhlxKOp9RGOirD4NlO+nlPp33B4iuX7jjph2y\nbniYqjZw+Ts6MJ6fo1HBfjowMCDl41Lm+++/L46DNvaBqL+Gu/mS3qUJNB8b+lBioF6uUqnUcM11\nnqNwme9B9Ulyx+L29rb0UfavcrksxgYzZfMmxYkciDtvnG8YQsD/LywsyHcltdwQEma21wfKsmw0\n+Lq6uhpuNM02CujHtA0NbeBzeT2fz0tbcVlIn0fIuVPPueEu8mbzaVp11bvaeH+Yn59v2LTEOo+M\njEh/Zr3u3bsnxjPnHZ3zjXN2eHpDGugdw2E4gd7wEjoK1WpV5t7wfMhm9922lrnt32gYhmEYhvEx\n4sAoU6RarYrlTYt6dnYWL774IoB6ThudhZmWJy3R7e3tBy6LpRlMSPQZSfR+yuWyyKzh0ofOq6SX\nRZtl5dWfSYpwKaxWq4nHR0Xwxo0bDRKr9hIe5Pk2e017zkl5yGGQvfbu2W4zMzN46aWXANS9YfbX\n7u7uhiWwYrEoykAoTevt2Gl6iCE6F4zecABEylOY72ZoaCg2LgHEznIL+3DSZ57VarXY8hsQ1YfZ\no3XQMhC1I8vHsheLRennDPLW+anSXgZrhs7jox8PEzroPDx/T5+JyPd02g4dfgBEY/hByqleHkoL\nneKCY0sv13KZmWEtY2NjsdQ6QKSScqWGG150Lq0wDUpSNEttoZf5dCiMplqtyjjTqmt4zqu+P7Yz\nB2GIKVOGYRiGYRgt4BIOvP7IP/an8Qw6VSfv/YcWopU6HgQ+rI6dqF+SSUbb1Ya6P+r1/TBNRTMV\nTSfFCxWBdqgXneynzjnx9MPt6DomQV+TMGZHqyEfVU3tRB312YlhhmjWGYjH6QFRPUKv/mEZuR+V\nNMZikrTahs0SWupt80wSzEB0JiodGBiQ9qRKuri4KLGMzVJZ6Iz2+rHTdXzA5+V5mNBYn4YRrnDs\n7u7GVg+AtsWVtq2O4dmZuVxOVqHYtowLGxoakvc4Xnd2dmIphQDEUuZQ3dMrQ49yDR6ljqZMGYZh\nGIZhtMChUaYOAqZMHf36AVbHw0DSdXxYgtFOxevZWHx0lZjxNPoIFe76YuwUH/v7+xt2A+tjfxhj\npFMkNDti5VGwsRjxUdU3rbCFbazjqfT5l/xbneSZ74Xt+Kjt+Uh1NGPq0bGBcfTrB1gdDwNWx6Nf\nP6C15egHvdZsOXq/PACa32g/6n3S+mnEx6GOtsxnGIZhGIbRAokqU4ZhGIZhGEcNU6YMwzAMwzBa\nwIwpwzAMwzCMFjBjyjAMwzAMowXMmDIMwzAMw2gBM6YMwzAMwzBawIwpwzAMwzCMFjBjyjAMwzAM\nowXMmDIMwzAMw2gBM6YMwzAMwzBawIwpwzAMwzCMFjBjyjAMwzAMowXMmDIMwzAMw2gBM6YMwzAM\nwzBawIwpwzAMwzCMFjBjyjAMwzAMowXMmDIMwzAMw2gBM6YMwzAMwzBawIwpwzAMwzCMFjBjyjAM\nwzAMowXMmDIMwzAMw2gBM6YMwzAMwzBawIwpwzAMwzCMFjBjyjAMwzAMowX+P68H+8a5QwGRAAAA\nAElFTkSuQmCC\n",
"<matplotlib.figure.Figure at 0x7f740369a048>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"show_ave_MNIST(\"training\")\n",
"show_ave_MNIST(\"testing\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, let us convert this raw data into `DataSet.examples` to run our algorithms 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",
"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 a DataSet with our training examples, so we can use it in our algorithms."
]
},
{
"cell_type": "code",
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from learning import DataSet, manhattan_distance\n",
"\n",
"# takes ~8 seconds to execute this\n",
"MNIST_DataSet = DataSet(examples=training_examples, distance=manhattan_distance)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Moving forward we can use `MNIST_DataSet` to test our algorithms."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### k-Nearest Neighbors\n",
"\n",
"We will now try to classify a random image from the dataset using the kNN classifier.\n",
"\n",
"First, we 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",
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
]
}
],
"source": [
"from learning import NearestNeighborLearner\n",
"\n",
"# takes ~20 Secs. to execute this\n",
"kNN = NearestNeighborLearner(MNIST_DataSet,k=3)\n",
"print(kNN(test_img[211]))"
]
},
{
"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",
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Actual class of test image: 5\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f74036d6c18>"
]
},
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAdgAAAHVCAYAAABSR+pHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAE8tJREFUeJzt3X+o7XW95/HXO/UapJRxGzN1xjsmQxFpw0kKb4PiXM3+\n0QpCg4sT4ukPmwwuYWh1/SMhhlt3CCKylGuQiZC/oFv3qkR1YRLPEelo5hShHQ8nxcz8QWF6PvPH\nWTJnmnPO3n6/+332XrvHAw5n7bXX+3w+fFny9Lv2WvtbY4wAAGvrVeu9AQDYjAQWABoILAA0EFgA\naCCwANBAYAGggcACQAOBBYAGAgsADQ4/lItVlV8bBcCye3KM8YaVHuQMFgBemUdX8yCBBYAGAgsA\nDWYFtqreW1UPV9UvqupTa7UpAFh2kwNbVYcl+XKS85K8NclFVfXWtdoYACyzOWewpyf5xRjjl2OM\nF5LclOT8tdkWACy3OYE9PsnOfb5+bHEfAPzZa/8cbFVtTbK1ex0A2EjmBHZXkhP3+fqExX3/jzHG\ntUmuTfyiCQD+fMx5ifjeJKdU1V9V1V8kuTDJHWuzLQBYbpPPYMcYL1bVx5L8S5LDklw/xnhwzXYG\nAEusxjh0r9p6iRiATWD7GGPLSg/ym5wAoIHAAkADgQWABgILAA0EFgAaCCwANBBYAGggsADQQGAB\noIHAAkADgQWABgILAA0EFgAaCCwANBBYAGggsADQQGABoIHAAkADgQWABgILAA0EFgAaCCwANBBY\nAGggsADQQGABoIHAAkADgQWABgILAA0EFgAaCCwANBBYAGggsADQQGABoIHAAkADgQWABgILAA0E\nFgAaCCwANBBYAGggsADQQGABoIHAAkADgQWABgILAA0EFgAaCCwANBBYAGggsADQQGABoIHAAkAD\ngQWABgILAA0EFgAaCCwANBBYAGggsADQQGABoIHAAkADgQWABgILAA0EFgAaCCwANBBYAGggsADQ\nQGABoIHAAkADgQWABgILAA0EFgAaHD5nuKoeSfJskpeSvDjG2LIWmwKAZTcrsAtnjTGeXIN/BwA2\nDS8RA0CDuYEdSf61qrZX1db9PaCqtlbVtqraNnMtAFgaNcaYPlx1/BhjV1X9uyR3JvnvY4wfHuTx\n0xcDgI1h+2reczTrDHaMsWvx9xNJbk1y+px/DwA2i8mBrarXVNXRL99Ock6SB9ZqYwCwzOa8i/jY\nJLdW1cv/zo1jjO+tya4AYMlNDuwY45dJTl3DvQDApuFjOgDQQGABoMFa/CYngCTJa1/72smz73rX\nu2at/Z3vfGfW/BzPPffc5Nk5xyxJHn744cmzZ5xxxqy1f/Ob38ya3+ycwQJAA4EFgAYCCwANBBYA\nGggsADQQWABoILAA0EBgAaCBwAJAA4EFgAYCCwANBBYAGggsADQQWABoILAA0MD1YGET2bJly6z5\nrVu3zpr/4Ac/OHm2qmat/dBDD02eveaaa2atfdJJJ63b2r/61a8mz/7xj3+ctTYH5wwWABoILAA0\nEFgAaCCwANBAYAGggcACQAOBBYAGAgsADQQWABoILAA0EFgAaCCwANBAYAGggcACQIMaYxy6xaoO\n3WKwTo444ohZ81ddddXk2UsvvXTW2k899dSs+S996UuTZ++5555Zaz/44IOTZ88666xZa1933XWT\nZ59++ulZa5955pmTZ3/729/OWvvP2PYxxorXhnQGCwANBBYAGggsADQQWABoILAA0EBgAaCBwAJA\nA4EFgAYCCwANBBYAGggsADQQWABoILAA0EBgAaCBwAJAg8PXewOwEZ177rmTZz/96U/PWvvUU0+d\nPHvTTTfNWvuTn/zkrPmjjjpq8uxHPvKRWWvPuRbte97znllr33XXXZNnr7jiillru6brxuUMFgAa\nCCwANBBYAGggsADQQGABoIHAAkADgQWABgILAA0EFgAaCCwANBBYAGggsADQQGABoIHAAkADl6tj\nU7r66qtnzV911VWTZ++///5Za8+5bNuTTz45a+2Pf/zjs+YvueSSybMnnnjirLV37NgxeXbOvpPk\ntttumzz79NNPz1qbjcsZLAA0EFgAaCCwANBAYAGgwYqBrarrq+qJqnpgn/teX1V3VtXPF38f07tN\nAFguqzmD/ack7/2T+z6V5O4xxilJ7l58DQAsrBjYMcYPkzz1J3efn+SGxe0bklywxvsCgKU29XOw\nx44xdi9u/zrJsQd6YFVtTbJ14joAsJRm/6KJMcaoqnGQ71+b5NokOdjjAGAzmfou4ser6rgkWfz9\nxNptCQCW39TA3pHk4sXti5PcvjbbAYDNYTUf0/lWkv+V5D9V1WNVdUmSzyf5m6r6eZL/uvgaAFhY\n8WewY4yLDvCts9d4LwCwafhNTgDQQGABoIHrwbJhzbmm65VXXjlr7XvvvXfy7Lnnnjtr7WeffXby\n7Nzr4H7mM5+ZNX/jjTdOnr3rrrtmrX3rrbdOnn3mmWdmrQ374wwWABoILAA0EFgAaCCwANBAYAGg\ngcACQAOBBYAGAgsADQQWABoILAA0EFgAaCCwANBAYAGggcACQIMaYxy6xaoO3WKsu5NPPnnW/I9+\n9KPJs7fffvustS+//PLJsy+88MKstec47LDDZs2/+tWvnjX/+9//fvLsnj17Zq0Nh9D2McaWlR7k\nDBYAGggsADQQWABoILAA0EBgAaCBwAJAA4EFgAYCCwANBBYAGggsADQQWABoILAA0EBgAaCBwAJA\nA4EFgAaHr/cG2LxOOeWUWfPHHnvs5NkXX3xx1trreU3XOV566aVZ888///wa7QRwBgsADQQWABoI\nLAA0EFgAaCCwANBAYAGggcACQAOBBYAGAgsADQQWABoILAA0EFgAaCCwANBAYAGggcvV0WbHjh2z\n5nfu3Dl59nWve92stV/1qun/77lnz55ZawObgzNYAGggsADQQGABoIHAAkADgQWABgILAA0EFgAa\nCCwANBBYAGggsADQQGABoIHAAkADgQWABgILAA0EFgAauB4sbXbt2jVrfs71ZD/84Q/PWvvoo4+e\nPHvBBRfMWhvYHJzBAkADgQWABgILAA1WDGxVXV9VT1TVA/vcd3VV7aqq+xd/3te7TQBYLqs5g/2n\nJO/dz/3/OMY4bfHnn9d2WwCw3FYM7Bjjh0meOgR7AYBNY87PYD9WVT9ZvIR8zJrtCAA2gamB/UqS\nk5OclmR3ki8c6IFVtbWqtlXVtolrAcDSmRTYMcbjY4yXxhh7knwtyekHeey1Y4wtY4wtUzcJAMtm\nUmCr6rh9vnx/kgcO9FgA+HO04q9KrKpvJTkzyV9W1WNJ/j7JmVV1WpKR5JEkH23cIwAsnRUDO8a4\naD93X9ewFwDYNPwmJwBoILAA0EBgAaBBjTEO3WJVh24xlt4b3vCGybO33HLLrLXf/e53T5695ppr\nZq399a9/ffLszp07Z60NrMr21Xz01BksADQQWABoILAA0EBgAaCBwAJAA4EFgAYCCwANBBYAGggs\nADQQWABoILAA0EBgAaCBwAJAA4EFgAYuV8emdMwxx8ya/+53vzt59p3vfOestedcru5zn/vcrLVd\n7g5WxeXqAGC9CCwANBBYAGggsADQQGABoIHAAkADgQWABgILAA0EFgAaCCwANBBYAGggsADQQGAB\noIHAAkADgQWABq4HC/tx1FFHTZ698MILZ6391a9+dfLs7373u1lrn3POObPmt23bNmseloTrwQLA\nehFYAGggsADQQGABoIHAAkADgQWABgILAA0EFgAaCCwANBBYAGggsADQQGABoIHAAkADgQWABi5X\nB2usqmbNv/GNb5w8+73vfW/W2m95y1tmzb/97W+fPPuzn/1s1tpwCLlcHQCsF4EFgAYCCwANBBYA\nGggsADQQWABoILAA0EBgAaCBwAJAA4EFgAYCCwANBBYAGggsADQQWABoILAA0ODw9d4AbDZzr7G8\ne/fuybOXXXbZrLV/8IMfzJo/55xzJs+6HiybjTNYAGggsADQQGABoMGKga2qE6vq+1X106p6sKou\nX9z/+qq6s6p+vvj7mP7tAsByWM0Z7ItJ/m6M8dYk70pyWVW9Ncmnktw9xjglyd2LrwGArCKwY4zd\nY4z7FrefTfJQkuOTnJ/khsXDbkhyQdcmAWDZvKKP6VTVSUnekeSeJMeOMV7+PMGvkxx7gJmtSbZO\n3yIALJ9Vv8mpqo5K8u0knxhjPLPv98beD/7t98N/Y4xrxxhbxhhbZu0UAJbIqgJbVUdkb1y/Oca4\nZXH341V13OL7xyV5omeLALB8VvMu4kpyXZKHxhhf3OdbdyS5eHH74iS3r/32AGA5reZnsGck+dsk\nO6rq/sV9Vyb5fJKbq+qSJI8m+VDPFgFg+awY2DHGvyWpA3z77LXdDgBsDn6TEwA0EFgAaOBydbDB\nnHDCCZNnP/vZz67hTl65nTt3ruv6sJE4gwWABgILAA0EFgAaCCwANBBYAGggsADQQGABoIHAAkAD\ngQWABgILAA0EFgAaCCwANBBYAGggsADQQGABoIHrwW5yb3rTm2bNX3HFFZNnL7/88llrL6sjjzxy\n1vxVV101efbss8+etfbNN988a/7OO++cNQ+biTNYAGggsADQQGABoIHAAkADgQWABgILAA0EFgAa\nCCwANBBYAGggsADQQGABoIHAAkADgQWABgILAA1qjHHoFqs6dIuRJHnzm988a/6+++6bPHvWWWfN\nWnv79u2z5ud429veNnn2G9/4xqy1Tz311Mmzcy83d+mll86af+6552bNw5LYPsbYstKDnMECQAOB\nBYAGAgsADQQWABoILAA0EFgAaCCwANBAYAGggcACQAOBBYAGAgsADQQWABoILAA0EFgAaCCwANDg\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7400d4b908>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(\"Actual class of test image:\", test_lbl[211])\n",
"plt.imshow(test_img[211].reshape((28,28)))"
{
"cell_type": "markdown",
"metadata": {},
"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",
"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, as they are written with readability in mind, instead of efficiency."
}
],
"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",
}
},
"nbformat": 4,