{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# K-Means Clustering for Imagery Analysis\n", "> In this post, we will use a K-means algorithm to perform image classification. Clustering isn't limited to the consumer information and population sciences, it can be used for imagery analysis as well. Leveraging Scikit-learn and the MNIST dataset, we will investigate the use of K-means clustering for computer vision.\n", "\n", "- toc: true \n", "- badges: true\n", "- comments: true\n", "- author: Chanseok Kang\n", "- categories: [Python, Machine_Learning, Natural_Language_Processing, Vision]\n", "- image: images/mnist_kmeans.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Required Packages" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sys\n", "import sklearn\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Version Check" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python: 3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]\n", "Scikit-learn: 0.22.1\n", "NumPy: 1.18.1\n" ] } ], "source": [ "print('Python: {}'.format(sys.version))\n", "print('Scikit-learn: {}'.format(sklearn.__version__))\n", "print('NumPy: {}'.format(np.__version__))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load Datasets\n", "For the convenience, we will load the MNIST dataset from tensorflow Keras Library. Or you can download it directly from [here](http://yann.lecun.com/exdb/mnist/)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "from tensorflow.keras.datasets import mnist" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training: (60000, 28, 28)\n", "Test: (10000, 28, 28)\n" ] } ], "source": [ "(X_train, y_train), (X_test, y_test) = mnist.load_data()\n", "\n", "# Print shape of dataset\n", "print(\"Training: {}\".format(X_train.shape))\n", "print(\"Test: {}\".format(X_test.shape))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see, the original dataset contains 28x28x1 pixel image. Let's print it out, and what it looks like." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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ffbZaXbUUUel2f33359me+65Z5rNnDmzb4MBAFTEE1MAAKqgmAIAUAXFFACAKiimAABUQTEFAKAKiikAAFVwXNQgWXfdddNs6tSpadbV1ZVmm2yySZptvPHGaea4KPjLNtpoozSbMGFCmu2www5pdv7556dZu70+lKZNm5Zm+++/f5otXrx4SYwDA9Zuv2633XZpduqpp6bZX//1Xw9oJjrniSkAAFVQTAEAqIJiCgBAFRRTAACqoJgCAFAFxRQAgCo4LmqQzJkzJ81uueWWNNtrr72WxDgwpmy66aZpdsghh7Rc/8QnPpFeM25c/jX7WmutlWbtjoRqmibNhlK7jznf//730+xLX/pSms2bN29AM8FATJ48Oc1uuummNHvmmWfSbI011ujoOgbOE1MAAKqgmAIAUAXFFACAKiimAABUQTEFAKAKiikAAFVwXNQgWbBgQZrNnDlzCCeBsee0005Lsz322GMIJxnZDj744DT753/+5zS77bbblsQ4sES1OxLKcVHDxxNTAACqoJgCAFAFxRQAgCoopgAAVEExBQCgCoopAABVcFzUIFlppZXSbIstthjCSWDsueGGG9Ksk+OinnvuuTRrd2zSuHH51/pdXV39niMiYrvttmu5vuOOO3Z0P6BbKWW4R6AFT0wBAKiCYgoAQBUUUwAAqqCYAgBQBcUUAIAqKKYAAFTBcVGDZLnllkuztddee9Bfb+utt06zGTNmpNnMmTMHfRYYbhdccEGaXXnllf2+35///Oc0e+aZZ/p9v4GYNGlSy/X7778/vWattdbq6LXa/Vvdc889Hd0TatU0TZots8wyQzgJvXliCgBAFRRTAACqoJgCAFAFxRQAgCoopgAAVEExBQCgCo6LGiRPP/10ml188cVpduKJJ3b0eu2umzt3bpqdd955Hb0e1Oy1115Ls1mzZg3hJINvt912a7m+8sorD/prPfnkk2m2aNGiQX89qNV73/veNLvzzjuHcJKxxxNTAACqoJgCAFAFxRQAgCoopgAAVEExBQCgCn4rfwicfPLJadbpb+UDo8f++++fZocddljL9WWXXXbQ5zjhhBMG/Z6wpLU7leOll15Ks8mTJ6fZBhtsMKCZ6JwnpgAAVEExBQCgCoopAABVUEwBAKiCYgoAQBUUUwAAquC4qGE2blz+tUFXV9cQTgIM1IEHHphmX/nKV9Jsww03TLMJEyYMaKY3u++++9Lsz3/+86C+FgyFuXPnptmtt96aZnvuueeSGIcB8sQUAIAqKKYAAFRBMQUAoAqKKQAAVVBMAQCogmIKAEAVHBc1zNodCdU0zRBOAiPXuuuum2YHHXRQy/Wdd9550OfYfvvt02yw9/O8efPSrN3RVNdcc02aLVy4cEAzAQyUJ6YAAFRBMQUAoAqKKQAAVVBMAQCogmIKAEAVFFMAAKrguChgRNhss83S7Kqrrkqztddee0mMM+xuvfXWNPvhD384hJPA6POWt7xluEcYszwxBQCgCoopAABVUEwBAKiCYgoAQBUUUwAAqqCYAgBQBcdFASNeKaWjbLCNG5d/rd/V1TWor7Xnnnum2Yc+9KE0u/baawd1DhiN9tprr+EeYczyxBQAgCoopgAAVEExBQCgCoopAABVUEwBAKiCYgoAQBUcFzXMlsTxMjvssEOanXfeeR3dE4bb/fffn2Y77bRTmk2dOrXl+nXXXZde8+qrr/Z5rsHw2c9+Ns2OPPLIIZwERpebbropzdoducbw8cQUAIAqKKYAAFRBMQUAoAqKKQAAVVBMAQCogmIKAEAVStM0eVhKHjIoXn/99TRr999NpzbffPOW6w8++OCgv9ZI1zRNGe4Z+sueHZkmT56cZs8//3y/7/eRj3wkza699tp+32+kGGl71n5d8vbdd980+9d//dc0W7hwYZq9613vSrOZM2f2bTDS/eqJKQAAVVBMAQCogmIKAEAVFFMAAKqgmAIAUIXxwz3AWPf9738/zT7/+c8P+usdfvjhLde/9KUvDfprAX2z2267DfcIMCq99tprHV1XSn7Aw8SJEzsdhz7wxBQAgCoopgAAVEExBQCgCoopAABVUEwBAKiCYgoAQBUcFzXMZsyYMdwjwJCaMGFCmu26665pduONN6bZwoULBzTTUDj00EPT7Oyzzx7CSWDsmDZtWpq1+/y78cYbp1m74xWPOOKIvg1GyhNTAACqoJgCAFAFxRQAgCoopgAAVEExBQCgCoopAABVKE3T5GEpecgS94c//CHNNthgg47uOW5c669FNtxww/SaRx99tKPXGumapinDPUN/1bJnt99++zT72te+lma77LJLmq233nppNmvWrL4NNghWWWWVNNtjjz3S7Nxzz02zFVdcsd9ztDsia6+99kqzm266qd+vNVKMtD1by34dq7773e+mWbvj3VZfffU0e/XVVwc001iS7VdPTAEAqIJiCgBAFRRTAACqoJgCAFAFxRQAgCoopgAAVGH8cA9A7oEHHkiz9ddfv6N7dnV1dToO9Nl5552XZptttllH9/z7v//7NJs/f35H9+xEuyOtttxyyzRrdzRfO9OnT2+5fsEFF6TXjOYjoWAotNuvixcvHsJJxh5PTAEAqIJiCgBAFRRTAACqoJgCAFAFxRQAgCoopgAAVMFxURX74Q9/mGYf+chHhnASGH5f+MIXhnuEAXnuuefS7Ne//nWaHX300S3XX3311QHPBLQ2adKkNPvoRz+aZldcccWSGGdM8cQUAIAqKKYAAFRBMQUAoAqKKQAAVVBMAQCogmIKAEAVHBdVsQcffDDNfv/736fZJptssiTGgT475JBD0uzII49Ms09/+tNLYJr+e/TRR9PslVdeSbNbb701zdod/3b//ff3bTBg0Oy3335ptmjRojRr9/mXgfPEFACAKiimAABUQTEFAKAKiikAAFVQTAEAqIJiCgBAFUrTNHlYSh7CKNc0TRnuGfprJOzZiRMnplm7Y6a++c1vptnKK6+cZldeeWXL9RtuuCG9Ztq0aWn2zDPPpBnDa6Tt2ZGwX0ezyy67LM3aHbu41157pdnMmTMHNNNYku1XT0wBAKiCYgoAQBUUUwAAqqCYAgBQBcUUAIAq+K18SIy03/CNsGcZ20banrVfGcv8Vj4AAFVTTAEAqIJiCgBAFRRTAACqoJgCAFAFxRQAgCoopgAAVEExBQCgCoopAABVUEwBAKiCYgoAQBUUUwAAqqCYAgBQBcUUAIAqKKYAAFRBMQUAoAqKKQAAVVBMAQCogmIKAEAVFFMAAKpQmqYZ7hkAAMATUwAA6qCYAgBQBcUUAIAqKKYAAFRBMQUAoAqKKQAAVfj/AbsdJRo9mpAtAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, axs = plt.subplots(3, 3, figsize = (12, 12))\n", "plt.gray()\n", "\n", "# loop through subplots and add mnist images\n", "for i, ax in enumerate(axs.flat):\n", " ax.imshow(X_train[i])\n", " ax.axis('off')\n", " ax.set_title('Number {}'.format(y_train[i]))\n", " \n", "# display the figure\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preprocessing\n", "\n", "### Reshape\n", "Images stored as NumPy arrays are 2-dimensional arrays. However, the K-means clustering algorithm provided by scikit-learn ingests 1-dimensional arrays; as a result, we will need to reshape each image. (in other words, we need to **flatten** the data)\n", "\n", "Clustering algorithms almost always use 1-dimensional data. For example, if you were clustering a set of X, Y coordinates, each point would be passed to the clustering algorithm as a 1-dimensional array with a length of two (example: [2,4] or [-1, 4]). If you were using 3-dimensional data, the array would have a length of 3 (example: [2, 4, 1] or [-1, 4, 5]).\n", "\n", "MNIST contains images that are 28 by 28 pixels; as a result, they will have a length of 784 once we reshape them into a 1-dimensional array." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(60000, 784)\n" ] } ], "source": [ "# Convert each image to 1d array (28x28 -> 784x1)\n", "X_train = X_train.reshape(len(X_train), -1)\n", "print(X_train.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Normalization\n", "Also, One approach to help training is **normalization**. In order to do this, we need to convert each pixel value into 0 to 1 range. The maximum value of pixel in grayscale is 255, so it can normalize it by dividing 255. Of course, its overall shape is same as before." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Normalize the data to 0 - 1\n", "X_train = X_train.astype(np.float32) / 255." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Applying K-means Clustering\n", "Since the size of the MNIST dataset is quite large, we will use the **mini-batch** implementation of k-means clustering (`MiniBatchKMeans`) provided by scikit-learn. This will dramatically reduce the amount of time it takes to fit the algorithm to the data.\n", "\n", "Here, we just choose the `n_clusters` argument to the `n_digits`(the size of unique labels, in our case, 10), and set the default parameters in `MiniBatchKMeans`.\n", "\n", "And as you know that, K-means clustering is one of the unsupervised learning. That means it doesn't require any label to train." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10\n" ] } ], "source": [ "from sklearn.cluster import MiniBatchKMeans\n", "\n", "n_digits = len(np.unique(y_train))\n", "print(n_digits)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "MiniBatchKMeans(batch_size=100, compute_labels=True, init='k-means++',\n", " init_size=None, max_iter=100, max_no_improvement=10,\n", " n_clusters=10, n_init=3, random_state=None,\n", " reassignment_ratio=0.01, tol=0.0, verbose=0)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "kmeans = MiniBatchKMeans(n_clusters=n_digits)\n", "kmeans.fit(X_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can find the labels of each input that is generated from K means model." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([7, 8, 3, ..., 7, 9, 7])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "kmeans.labels_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But these are not real label of each image, since the output of the `kmeans.labels_` is just group id for clustering. For example, 6 in `kmeans.labels_` has similar features with another 6 in `kmeans.labels_`. There is no more meaning from the label.\n", "\n", "To match it with real label, we can tackle the follow things:\n", "\n", "- Combine each images in the same group\n", "- Check Frequency distribution of actual labels (using `np.bincount`)\n", "- Find the Maximum frequent label (through `np.argmax`), and set the label." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def infer_cluster_labels(kmeans, actual_labels):\n", " \"\"\"\n", " Associates most probable label with each cluster in KMeans model\n", " returns: dictionary of clusters assigned to each label\n", " \"\"\"\n", "\n", " inferred_labels = {}\n", "\n", " # Loop through the clusters\n", " for i in range(kmeans.n_clusters):\n", "\n", " # find index of points in cluster\n", " labels = []\n", " index = np.where(kmeans.labels_ == i)\n", "\n", " # append actual labels for each point in cluster\n", " labels.append(actual_labels[index])\n", "\n", " # determine most common label\n", " if len(labels[0]) == 1:\n", " counts = np.bincount(labels[0])\n", " else:\n", " counts = np.bincount(np.squeeze(labels))\n", "\n", " # assign the cluster to a value in the inferred_labels dictionary\n", " if np.argmax(counts) in inferred_labels:\n", " # append the new number to the existing array at this slot\n", " inferred_labels[np.argmax(counts)].append(i)\n", " else:\n", " # create a new array in this slot\n", " inferred_labels[np.argmax(counts)] = [i]\n", " \n", " return inferred_labels \n", "\n", "def infer_data_labels(X_labels, cluster_labels):\n", " \"\"\"\n", " Determines label for each array, depending on the cluster it has been assigned to.\n", " returns: predicted labels for each array\n", " \"\"\"\n", " \n", " # empty array of len(X)\n", " predicted_labels = np.zeros(len(X_labels)).astype(np.uint8)\n", " \n", " for i, cluster in enumerate(X_labels):\n", " for key, value in cluster_labels.items():\n", " if cluster in value:\n", " predicted_labels[i] = key\n", " \n", " return predicted_labels" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[8 0 4 1 7 2 1 8 1 7 3 1 3 6 1 7 2 8 6 7]\n", "[5 0 4 1 9 2 1 3 1 4 3 5 3 6 1 7 2 8 6 9]\n" ] } ], "source": [ "cluster_labels = infer_cluster_labels(kmeans, y_train)\n", "X_clusters = kmeans.predict(X_train)\n", "predicted_labels = infer_data_labels(X_clusters, cluster_labels)\n", "print(predicted_labels[:20])\n", "print(y_train[:20])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a result, some predicted label is mismatched, but most of case, the k-means model can correctly cluster of each group." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Evaluating Clustering Algorithm\n", "With the functions defined above, we can now determine the accuracy of our algorithms. Since we are using this clustering algorithm for classification, accuracy is ultimately the most important metric; however, there are other metrics out there that can be applied directly to the clusters themselves, regardless of the associated labels. Two of these metrics that we will use are **inertia** and **homogeneity**. (See the detailed description of [homogeneity_score](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.homogeneity_score.html))\n", "\n", "Furthermore, earlier we made the assumption that K = 10 was the appropriate number of clusters; however, this might not be the case. Let's fit the K-means clustering algorithm with several different values of K, than evaluate the performance using our metrics." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import homogeneity_score\n", "\n", "def calc_metrics(estimator, data, labels):\n", " print('Number of Clusters: {}'.format(estimator.n_clusters))\n", " # Inertia\n", " inertia = estimator.inertia_\n", " print(\"Inertia: {}\".format(inertia))\n", " # Homogeneity Score\n", " homogeneity = homogeneity_score(labels, estimator.labels_)\n", " print(\"Homogeneity score: {}\".format(homogeneity))\n", " return inertia, homogeneity" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of Clusters: 10\n", "Inertia: 2383375.0\n", "Homogeneity score: 0.46576292303121536\n", "Accuracy: 0.56465\n", "\n", "Number of Clusters: 16\n", "Inertia: 2208197.5\n", "Homogeneity score: 0.5531322770474518\n", "Accuracy: 0.65095\n", "\n", "Number of Clusters: 36\n", "Inertia: 1961340.875\n", "Homogeneity score: 0.6783212163972349\n", "Accuracy: 0.767\n", "\n", "Number of Clusters: 64\n", "Inertia: 1822361.625\n", "Homogeneity score: 0.727585914263205\n", "Accuracy: 0.7895166666666666\n", "\n", "Number of Clusters: 144\n", "Inertia: 1635514.25\n", "Homogeneity score: 0.8048996371912126\n", "Accuracy: 0.8673833333333333\n", "\n", "Number of Clusters: 256\n", "Inertia: 1519708.25\n", "Homogeneity score: 0.8428113183818001\n", "Accuracy: 0.9000333333333334\n", "\n" ] } ], "source": [ "from sklearn.metrics import accuracy_score\n", "\n", "clusters = [10, 16, 36, 64, 144, 256]\n", "iner_list = []\n", "homo_list = []\n", "acc_list = []\n", "\n", "for n_clusters in clusters:\n", " estimator = MiniBatchKMeans(n_clusters=n_clusters)\n", " estimator.fit(X_train)\n", " \n", " inertia, homo = calc_metrics(estimator, X_train, y_train)\n", " iner_list.append(inertia)\n", " homo_list.append(homo)\n", " \n", " # Determine predicted labels\n", " cluster_labels = infer_cluster_labels(estimator, y_train)\n", " prediction = infer_data_labels(estimator.labels_, cluster_labels)\n", " \n", " acc = accuracy_score(y_train, prediction)\n", " acc_list.append(acc)\n", " print('Accuracy: {}\\n'.format(acc))" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 2, figsize=(16, 10))\n", "ax[0].plot(clusters, iner_list, label='inertia', marker='o')\n", "ax[1].plot(clusters, homo_list, label='homogeneity', marker='o')\n", "ax[1].plot(clusters, acc_list, label='accuracy', marker='^')\n", "ax[0].legend(loc='best')\n", "ax[1].legend(loc='best')\n", "ax[0].grid('on')\n", "ax[1].grid('on')\n", "ax[0].set_title('Inertia of each clusters')\n", "ax[1].set_title('Homogeneity and Accuracy of each clusters')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a result, we found out that when the K value is increased, the accuracy and homogeneity is also increased. We can also check the performance on test dataset." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.8877\n" ] } ], "source": [ "X_test = X_test.reshape(len(X_test), -1)\n", "X_test = X_test.astype(np.float32) / 255.\n", "\n", "kmeans = MiniBatchKMeans(n_clusters=256)\n", "kmeans.fit(X_test)\n", "\n", "cluster_labels = infer_cluster_labels(kmeans, y_test)\n", "\n", "test_clusters = kmeans.predict(X_test)\n", "prediction = infer_data_labels(kmeans.predict(X_test), cluster_labels)\n", "print('Accuracy: {}'.format(accuracy_score(y_test, prediction)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There we have MiniBatchKmeans Clustering model with almost 90% accuracy. One definite way to check the model performance is to visualize the real image.\n", "\n", "For the convenience, we decrease the `n_clusters` to 36." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "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GTNmjI3PnDkzi0UFVCdOnJjFonvEtm3bstjmzZttrivyK/l5f+3atTbXFQWOrndXpPT48eM2N3p+KM8Vd543b57NjYr/uvyo8Pvu3buz2Ouvv25z3TwfFZiOHq/OfdDdr9z9R/LXd/T6zJ4928bdPSi6t7li/BT/BQAAAAAAGIDYmAEAAAAAACiEjRkAAAAAAIBC2JgBAAAAAAAohI0ZAAAAAACAQvptV6axY8fauKvWvHr1apu7ZMmSLBZVjz916lQWO3r0qM2NOtu4av/R83MVn9966y2b6zoOuC4NEh04BopojNXpyuTGY1Rd3Ym6L0Xn4MZ61GmhlUVdO/CjXEX+aGy4+S7qIuS62Eh+bos6H02dOjWLRfP5pUuXslg0BqLOAK4byIIFC2zuhAkTmj6u6/oRdfKIuiEwnnueG+duHEn1rpOoq6LrGhF153JdOF555RWbe+TIkSx25coVmxutLdzYX7lypc29/fbbm/r96Nxc90zJd6KS/FwSzTu92YVjsHJzT7SucB1sJN+xLur65ebLPXv22NwDBw5ksWiMu46AkvTAAw9ksY9//OM2192TXnzxRZvrruFojLPmL6/OeiFaE0djuq2tLYu5uVGSduzYkcWiTkSuA1O0tqjzuSPqbuc+e0TPw63VovtrNG+4+0q0rzBixIgsFt1fewLfmAEAAAAAACiEjRkAAAAAAIBC2JgBAAAAAAAohI0ZAAAAAACAQlq++G8kKuro4vPmzbO5kydPzmJnz561ua540+zZs21uVDzOFUhyhXslX8jLFSOT/DlHhR4xMETFtqLCWs2KCsW5ol9RIcro3FwBLVeML8qNii/WKTxWR3RufXkOg4UbX9H7febMGRufMWNGFhs3bpzNXbZsWRaLiu65Im/R/BrN/e7covuSKwgYFVx14y46hzr3paiQHnqeG0vR3BMVZz906FAWi+byEydOZLGosYArxBoVsozGl2uysG7dOpt7yy23NP14W7duzWK7du2yudH16uaYqCEDep57b+vcdyVfLN3FoseLini6e0c0FlesWGHjDz30UBZzDUokf20/99xzNnf79u1ZLCrMGr2eFAXuO9G4cePUrX2luMC0m7uPHTtmc13R3GjcuLmx7ucLlx8dw43H6H7n1kNRbvR4rtBv3YYTvYU7EAAAAAAAQCFszAAAAAAAABTCxgwAAAAA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E7NY1MBx69atWczdq6S4Kff69euz2Ouvv25zcfKGDBli41deeWUWixqERm644YYs9tBDD9nc1157LYtFv29XS7/85S9tbtScsrW+9rWv2bhb19144402N3q9fuUrX8liUaNg1wwWHSdqTDtu3LgsFjXpddfWs846y+bOmjUri/Xv3/94p9gq7jXft29fm+vWR9Gax61tosdjCEjrlfm5ujVL1Hg/Wp+sWLEii7k1i+SHe7j7geQb/UbX0ahhsXufEuW69xPRz8I1yo6aZ3fG97F8YgYAAAAAAKAibMwAAAAAAABUhI0ZAAAAAACAirAxAwAAAAAAUBE2ZgAAAAAAACpSyVSmaDKQ654cTdo4ePCgjbvO7dHkIzdBw3WtlvwkgmgqU9RJeujQoVls6tSpNnfQoEFZzHXJlnynbDepSZL27Nlj46jezTffnMW+8IUvtPq4Ud3cfvvtWcxNeZH8azZ6HbcFdx533nmnzXUd6L/0pS/Z3DPPPNPGn3322SzmJqNJ0quvvprFVq5caXPR+bl7UK9evWyum/ohSfPmzctip556qs11kz+iiXwPPPBAFnvuueds7rJly2x87969No62tXPnThu/9dZbs1hTU5PNvfjii23829/+dhY7dOhQ3ecWTfJyx20Uy5cvb/UxXO23drobWieajHraaafZ+FVXXZXFLrnkEpvr1r/RxDtXB1FtRNNqWrtG6t27t4276bPR5J/o+u6m8a1Zs6bE2cFxNVLmPW+UG90/3JSjaGqre28aTQB0k80mTJhgc6dMmVJ3PHp/7N57b9myxea69wdR/XfGSWN8YgYAAAAAAKAibMwAAAAAAABUhI0ZAAAAAACAirAxAwAAAAAAUJGGav771ltvZbGo2VbUFGvs2LFZbNSoUXU/3jPPPGNzX3rppSwWNcqKGi+5c4samrkmSxs2bLC5O3bsyGKvv/66zY24JlToWO736xrNStL+/ftt3DUOPXLkiM118fnz59tcF48aZZdpILcmXfQIAAAgAElEQVR06VIbd6+L8847z+a6eNTw+Ec/+pGNu/pvbm62uVGDZHRN7n7lGuNJ0kUXXWTjM2bMyGKuGbzkG79GDX1d898lS5bY3LVr19p4Z2yO15W463DUvP+cc86x8dY2+m3kJr+RqElsGW74Aq+HjuOa5o4fP97mXnPNNTZ+2WWXZbGooelrr72WxdzwAEnavXt3FoteZ9Gaf8SIETZer+j9gbt3RIMNnnjiCRt3P/uoMStaJ3p/5a79ZZvYuubOQ4YMsbnuenf++efb3NGjR2ex6L10NPTAnXPUtN2tq6OGx/U+lhT/7Bv5PS+fmAEAAAAAAKgIGzMAAAAAAAAVYWMGAAAAAACgImzMAAAAAAAAVISNGQAAAAAAgIpUMpWpTJfkKHfAgAE27jpJu+7jkrRx48Ystm7dOpvrJh9F5zZ8+HAbnz59ehaLpiy46TpRh2oXd526pXjKFRpTNI3l5ptvtvEzzjgjiy1cuNDmvuc978liixcvtrmuk7p7rUXHlXxNu/OV/FSSaBLbwIEDs1g0lWzPnj027iYwuAkOUS66Lldf0fQyNyFEkubMmZPFoskJbnrS/fffb3NdfMWKFTaXaTOdx5QpU1p9DDd9SeqcE5ic6P7jROuen/3sZ211OjgJ7v5/7rnn2tzomtu3b98s9uCDD9pc9/uOJrGWuV62dvqS5O8z48aNs7kzZ87MYtFkqGjN4yZ7Ro+3cuVKG0fruImPhw8ftrlR3E12itbKF154YRaL7jWunqJrbnR9dbXn6lySJk2alMWiibJu6lpUo9ExGnk9xCdmAAAAAAAAKsLGDAAAAAAAQEXYmAEAAAAAAKgIGzMAAAAAAAAVaajmv07UoCdqdDV48OC6j+GaX7311lt1Hzdq3uiaGEnSxRdfnMVcQ2BJOnDgQBaLmv8eOnQoi7nmSFL8c3M/I9eYKspF+3j88cdt3DW8k6Rdu3ZlsagR7siRI7NY1Cj42muvDc4w55r8Sr4Jd/R6a60nnnjCxpubm2387rvvzmLuNYjG5eorug46Ud3Omzcvi334wx+2uRdddJGNu/vHtm3bbO4999yTxW6//Xabu379+iwW3V+j67lT5h6N1nHNF6PrcBldpcnvqaeeauOnn3563ceI6nnZsmUndU4oJ1orn3322Vls1qxZNnfUqFE2/sgjj2SxRYsW2Vz3+y7zHiNq8hvdO1w8GlwybNiwVh3X3QukePhJe6290DrR7yVqsNurV6+6j93U1JTFhg4dWvdxy9aMW39F1wL3Xjhav7nredTkNzpn916pUYbj8IkZAAAAAACAirAxAwAAAAAAUBE2ZgAAAAAAACrCxgwAAAAAAEBF2JgBAAAAAACoSCVTmcqIOipHXfZdfjSVxk2piKYkuY7p0WScyZMn2/i5556bxVyXbEnasGFDFtu6davN3bdvXxaLOrH37t3bxl1HayZzVC+q/1/84hc2Pm7cuCwW/R5djVx55ZU29/zzz49OsW7u9VZmUkwZ5513no1/8YtftHEmMHV+bopGNIVu4MCBWWz27Nk29zOf+UwWu+yyy2zuoEGDbNxdo++9916be9ddd2UxN0FQ8pMTyl77nej1wD2h7V1//fWtPsZtt93W6mM0qgsvvNDGo9e28/DDD9u4m3710EMP1X1c1GfChAk27tbK0fXr8OHDNu6ugdHjzZ07N4u5qaaSn540ceJEm+smvEh+QuuePXtsrrsnRRNz3LSa7du329xNmzbZeHQe6DhuIli05o/uyQcPHsxi0YQiN5Usel316dMni0VTi/r162fjZaYcuYln0fNwEy2j12aZtf3u3bttPNpDaC98YgYAAAAAAKAibMwAAAAAAABUhI0ZAAAAAACAirAxAwAAAAAAUBE2ZgAAAAAAACrS8FOZIq6btSRt2bIli/Xv39/muklLrjO05KfdRFOZRo4caeNuYkc0lcZ1eY+6q7vO1WWn3ZSZmOM6wkedxNGxbr/99ix25pln2tw//uM/zmLRFIC2sHfv3izmptVIviN8mXNzEw4k6eabb7ZxN3lnyZIlNjeajoZquevg4MGDba6bznHttdfa3He9611ZrMz0JUm6//77s9itt95qc1evXp3FomkB7jlH98boes6kpY4xZcqUVh8jmr7kaibiJmi4yR6Nzk1UiibTPPvssza+atWqtjwlBKIJWu4+H12z3fpB8hOYxowZY3OnTp2axaLJqEOGDMli0b0/qjsXj67Dbg3tJkNF8ajGo3WMm5gTTehB+3C/g2gCUFT/K1euzGLRFMcdO3ZksVGjRtlcty6I6iNaQ7g1e/R6mzFjRhZzr0FJOuecc7JYNF0tmj7mnkt0DKYyAQAAAAAAdBNszAAAAAAAAFSEjRkAAAAAAICKsDEDAAAAAABQkYZv/hs1FYoaIb366qtZLGqG6I4RNfR1DYSjhreuIaPkGxZFx3jppZeyWNRgzB0jOm7UxMj9jMo2EEZjOu+882z8d3/3d7NYVDdt0SD0r/7qr7LYz3/+c5vrGmh/5CMfsbkf+tCHsljUNO/000+38XvuuSeLfeITn7C5d911l42jWq5ppGv2KElnn312Frviiitsbq9evbLYunXrbO4rr7xi43fccUfdue6+1BbNWWnyW60yzX+jZs+u4W1ZrjF61LS6jG3bttn4E088kcWitYw7twULFtR9DlEz36ipY3Nzc93HRtvbuXNnFluzZo3N7d27t41PnDgxi0XrXLc2j4ZqrFixou5zc89D8veJqIGwe21PmjTJ5rq6je4nruGr5O8pmzdvtrnoONH7x+j9mHvvFv0eXbPh9evX21x3T4jed0dNgd375rFjx9pcd/+46KKLbK4b3HPaaafZ3Oj5uff6bq0n+Z99e66n+MQMAAAAAABARdiYAQAAAAAAqAgbMwAAAAAAABVhYwYAAAAAAKAibMwAAAAAAABUpKGmMrnOx1En6mhKheuw7jpRS75jes+e/kfizqNHjx42d8iQITY+YsSILBZ1jF6yZEkWcxOnJN8RPppCUGbqTvSzZ7pH9dwkAkm6/vrrs9gNN9zQ6sdzdbNr1y6b+6d/+qc2fuedd2axaBrIKafke8ZPPvmkzX388cez2Je//GWbO3z4cBvv169fFvvkJz9pc92UkWhaA9pe1Dl/5syZWWz27Nk295prrsliY8aMsbmuzqNJHm66lyQtXrw4ix04cMDmRtdudB5uApOrOUm67rrrsthPfvITm+vWBVK8xqlXtGZx3LVSiifIzJo1K4stXbrU5g4dOjSLude15Nchy5cvt7moVlNTk427+3+0tonW224aUbQ2cdfc1157zea6uLuOS/HkVzd9zL0PkKRLL700i0U/Nzd9bO3atTY3eq+0ZcuWLNba6whaL3p/5dbEkp98FK2R3O83eq243GgqU7RmcfnRxDRX69FUTTfZyU30k+LXm1vDRZPf3LWnPV8rfGIGAAAAAACgImzMAAAAAAAAVISNGQAAAAAAgIqwMQMAAAAAAFCRSpr/Rk1lXXOjqFltFHfNvVwDLsk3+o0aLLlzjhpzjRw5su7Hi5rguYZm27Zts7mHDx/OYlEzMnQNN954o41/6lOfymJ9+vSp+7hRQ9I/+IM/yGJ33313qWOUaRrtXt+uybUkPfTQQ1nMNZEsK2pSFj0/tK3oWjxgwAAbnz59ehaLGq6effbZWWzjxo021zV5+9nPfmZzH3vsMRvfv39/FouaMnb0tdvd26LmgVEDTid6ft2Ba+Q5Z84cm/viiy9msVtuucXmPvfcczbekT/rUaNG2fgFF1xg466BY9SUuwzXiHXFihWljuHuHWh70ZrfNR6N7q/R/d9dk6Im0M8++2wWi5r/uvt/1OTUXd8jUTPSqHm28/zzz2exqPmvG3IiMcSjUUUDaKK4WydFTWzdWiZab7g1eJnc6Nyi15B73Uevefd40fucvn372niZ90XR82svfGIGAAAAAACgImzMAAAAAAAAVISNGQAAAAAAgIqwMQMAAAAAAFARNmYAAAAAAAAq0lBTmcqIuiS76QRualF0jOjcXGfnqIv66aefbuOuC/rKlSttruuwfuTIEZvrRNMzmNbUucyfP9/GzzzzTBuPOpA7burA5z73OZv7ve99r67vbyuDBg3KYr/5m79pcz/60Y9msagrfZnu6tHUqWg6GtpWv379bPy0006z8YsvvjiLnXvuuTbXTR3as2ePzX3qqaeyWDR9KTrGjh07sliZ1090X3L3lOjaH00hcJMTosdzUx2iKQvdmZtE1L9/f5vrJjCuWbPG5jbCpKstW7bY+E9+8hMbv/DCC7PYe9/73rofb+HChTa+evXqLDZ27Fib+/jjj9f9eGh7q1atsvExY8ZksWj6jJtEJEm7d++u+/Fc7r59+2yuu7ZG6+fomusmtM6aNavu3GhCVXNzcxbbunWrzWX6UuMqM1GpzNp12LBhNu7u1VH9u3OL6jyaoOnWWWWmIQ0ePLju40bXDfdeQvKv5eg9dke/hvjEDAAAAAAAQEXYmAEAAAAAAKgIGzMAAAAAAAAVYWMGAAAAAACgIpU0/42aGLkGQlHTnegYrmlhmaZJUQMh17Bo/PjxNnf06NE27prmLV++3Obu3Lkzi7nGi5HoeURNmsr8jNA+XFPTq6++2uauX7/exl2NRLXw7W9/O4tFzbamTZtm445rYidJ48aNy2K/8Ru/YXOHDBmSxaKGx2eccUbd5xZxjVjLvN7Q9qJadE1+Jemiiy7KYlHjN9cEb8WKFTb3Zz/7WRbbsGGDzd21a5eNu6Z5roGd5Bt4R0333P1x4MCBNjfifhZRk1l3n6C5ZH0WL15s4zNmzMhil1xyic397ne/26bndDKi5o2XX365jUcNuFtrypQpWeyaa66xuVEjd/dai9ZCZYYv4Ndt2rTJxt3aJLqeRHE3KGPjxo0lzq71Ro0aZePDhw/PYtEQA7fmcY3BJd+QnqEEnY97vxrd6wcMGGDjrm5c3Un+fWX0/sA1BY4GMkTDAtwaLmrQPm/evCzm7o2SX9dF74mi18XevXuzWDQoiOa/AAAAAAAA3QQbMwAAAAAAABVhYwYAAAAAAKAibMwAAAAAAABUhI0ZAAAAAACAilQylSnSFpOBynRPdp2ko+7SbtKFmwog+U7/ku8ev2bNGpvrOmKX8eabb9p4NJXJPW+mbXSs+fPnZ7Hod1Cm0/jQoUNt7m//9m9nsWXLltncD37wg1ksmj42adIkG3e1117TwKKf2+bNm238K1/5Sha788472/ScEHOTXiZOnGhz3fQyydd5NEVg69atdcUkX7fRxK5oYo2btBBNT3LH6N27t81108Sia390zm7aQ/S6jKY14cT2799v43Pnzs1il112mc197LHHbHz16tUnfV7HM2fOnCy2cOFCmxtNUXOiGh02bFgWe/LJJ23uBRdckMWiqRqnn366je/evTuLNTc329zo3oETi+7H7poU/ZyjmnHTTsuI1usjRoyo+xjRZJvJkydnsWiKpLvmrlq1yua6n1H080HjcmuL6D1oVKdujROtQyZMmJDFyqxDtm/fbnOjc3YTo6L3zW56XzT52J1HdN2OJmi690puQmUV+MQMAAAAAABARdiYAQAAAAAAqAgbMwAAAAAAABVhYwYAAAAAAKAibMwAAAAAAABUpKGmMjUCNz1D8hM/oo7RblKGJG3atCmLRV2gWzsRKfr+aNqG6w5Ol/eO9eKLL2axaMJR1KH9gQceyGLXXnutzXU1fd555x3vFBuS667+jW98w+b+0z/9k42712Z7TYzqzqLrq6vn4cOHlzq2m/AR/Q7dtIuoe/+BAweyWDTpLJp6587jyJEjNtdN79m1a5fNdfeP6LgRl1/2GPh1t912Wxa7/vrrbe7tt9+exT796U/b3Gha0z//8z9nsXXr1tlcNx0yqucZM2ZksauuusrmRtx66Mc//rHNdef8q1/9yub++Z//eRa76KKLbG50LXHP5Vvf+pbNxcmLpmW11zSxMqI1ePT6KWP27Nl1H9dNvHvooYds7vLly1t1Xmhc0QTGaM3f1NRUV0zyU+/c5DDJT790ExylePpl//796z43l+vuVZL0yiuvZLGXXnrJ5kavt0Ze8/OJGQAAAAAAgIqwMQMAAAAAAFARNmYAAAAAAAAqwsYMAAAAAABARbp181/XIDdq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RdfF559/3sbdtXHLli02172uonvd3r17686NmgJHcbSt6H7sfv7RtS763br1xs6dO22uaxoaNRt2zUEfffRRmxtdL92aJVqbuybzCxYssLmnnXZaFnv88cdtbvRac+uYaO2G9uGuu9FrJWqC3tTUlMXmzZtnc12D3GjgxxlnnJHFovVNtLaImvfWK6pd11A+avg9ZMgQG3frJJr/AgAAAAAAdHNszAAAAAAAAFSEjRkAAAAAAICKsDEDAAAAAABQETZmAAAAAAAAKtLwU5lWrVplc9944w0bd139Dx06VPcxli5danNXr16dxaKJMm6ikiTNmTPHxp1osobjurxHExmiiQrRzxMdJ5qeVIar/6juxo0bl8XGjx9vc13cfb8UT/hwHd3XrVtnc12dDhs2zOa6SQK7du2yuYMGDbJx93OLXt9u0oLrjC/5KVcrV660uahP9HtxU8LOP/98m3vllVf+3/bu7LfK6m3j+I2oDC1jKbRQxgICZZLJ4AAWQlQw0RjjkBiNh/4bnhoP9cAD45kDkXBAQiAiEWQGAZnK2DIPLfPQMhje4zfruvx1W9r1lH4/h3duy+7e63metZfNfSW1GTNmyF6VErJ//37Zu2XLFlnftWtXUuvdu7fsVel7FRUVsre2tjapuaQ/t+52796d1FQKYYR+RqOY3PpS9+33339f9qqkmH379slel1hz8uTJpObSkFpbW5OaS4pxKT1KR9NB0DHunl1Kr0trUmvJPf/Vvc6l46nnvFqfET5JZ8yYMUmtvr5e9r722mtJ7aWXXpK9LS0tSc3ds93v5/Ze6JixY8cmNZWe6LjvfiohL0LvPVesWCF71T7XXSunT59Oai59yb1mlfzqqDX9888/y151HbvX5pKdXHJbEfAXMwAAAAAAAJlwMAMAAAAAAJAJBzMAAAAAAACZcDADAAAAAACQSaGG/6phbm4o7dWrV2VdDVB1g3DVkLFLly7920v8f8rLy0uqDxo0qN29anCfG3anhhvfvn1b9pYyMA9dS63psrIy2esG4c6dOzepuSG9amCXG7CnVFVVyboaGuZ+thvKqAb6uaGTqtf9Hm6QpLpe3D1GDX519w03eAz/mxteqob8RkTMmzcvqakhvxEREyZMSGqXL1+WvWrdbdy4UfZu3bpV1u/fv5/U1JDACD2899VXX5W9atC2u/dv375d1tVgYvde8PzoPtyg8+nTpye1+fPny141GPKPP/6Qve6aUPditydT13yfPn1kr9rr3bt3T/a6ezmKxz2jHRV+4QaBqrXoetV9eOLEibJ3/Pjxsr5w4cKktmTJEtmrngduPZ86dSqpHThwQPb+/fffsu5+b3SMGvRbynNz0aJFsu7WngoGUEN+I/R9sKGhQfaq78cuWMAFJ6ih2Hfv3pW96nW4UI3m5uakdvToUdnbHQe/8xczAAAAAAAAmXAwAwAAAAAAkAkHMwAAAAAAAJlwMAMAAAAAAJAJBzMAAAAAAACZFCqVSXGpTG7SskpHuXPnjuxVE89VwkuETgB49ln99qkp2RF6orWbnq1SC86fPy971ZRr9/50xwnVPYWagq5SMSL8hPbq6uqk5tJt1Jp+/vnnZe/FixeT2k8//SR7XQKGSotxE+HVNavSFyJ06pTrbW1tlXV1DTU1NcnexsbGpOZ+Z5WYhpRKXnGpMtOmTZP1WbNmJTU31f/cuXNJbcuWLbL30KFDSW3btm2y1yVdqPXokhpUktTixYtlr0o92L17t+xds2aNrKtr210nKCa1Dtwz4q233kpq7lo7e/ZsUnPryCXhqeeMer0R+hno7uXqWnPXVCn/HorJpXOp/Y1bM2r/69Ila2trk9qCBQtkr0ulUel/NTU17X5tx48fl70qYc+lMpEM2bXUs9N9r1TcnlHtQxz1TI/w3zcV9UxQe6wI/x1DfY9VabAROlHWvW9Lly5NaidPnpS93fE7L38xAwAAAAAAkAkHMwAAAAAAAJlwMAMAAAAAAJAJBzMAAAAAAACZFH74rxvc4wb6quFvDx48kL1qQJgbTKSGoqphvhF64FdExNChQ5NaWVmZ7FWuXbsm66UMPHYD+koZToWu4wZMuwFyav27gYhuMKqiBve6QacjRoyQdTV4TK3dCL0e3YCxM2fOJDV3zbv1r4aMNzc3y151HTLkt2PUOh81apTsHT9+vKwPGzYsqbW0tMjeo0ePJrVjx47J3sOHDyc193kPGjRI1tVrXrZsmex9/fXXk5oacB0RsWPHjqS2du1a2euuNfWsUEP7IvRz0F1rePLc80Ctu/nz58teNTzb7bPU+nJ7i0mTJsm6GkLs9j3Dhw9Pam5wrxqAumnTJtnbHQdA9lRuyK9bB6UMGFWDqNX9NiKirq4uqU2dOlX2uroKAnHDeG/dupXUXKiAGgrsnnXoWjt37uzQf6/2GxER77zzTrt/hrpvR+hnwsaNG2Wv+n4we/Zs2eu+Y6h9z5w5c2Sv2u8tWrRI9qpnTWVlpez9+uuvZd19fykC/mIGAAAAAAAgEw5mAAAAAAAAMuFgBgAAAAAAIBMOZgAAAAAAADLhYAYAAAAAACCTwqcyOS4JQk1jV0kSEXr6u+tViTIqZSnCJ+aofpeGpBJhzp07J3tLSYRxyTakMhWTS68oLy+X9Rs3biQ1l7By7969pObWklofbs3cv39f1tXU9KVLl8petdbdpHmVGOUSaNw1q5KWXMpBa2urrOO/U+u8urpa9rqEIpUMoK6HCL323dpQ6RxjxoyRvS4ZYN68eUntzTfflL1TpkxJam4tbt68Oak1NDTIXpemo9JO3LWt0svQdQYMGCDrKpFMpS9F6PQLd788depUUnPJHOPGjZN19ZrV63V1tydTCXunT5+Wve65dvfu3aSm7g3oOi450X2GKsnLJYSpa2L58uWyVz1/3Bp3SVIq/c/t49XPcPdblcJWVVUle69fvy7r7GOKyd1/fvzxxw7/7HXr1iU1lyjmUoAVl8q0b9++pLZ+/XrZO3ny5KTmkqjUtfn555/LXvf956uvvkpqKhktB/5iBgAAAAAAIBMOZgAAAAAAADLhYAYAAAAAACATDmYAAAAAAAAy4WAGAAAAAAAgk26byqRSkiJ0uoebmK4SANSE9wg9KV6lZ0RE1NbWyrpKF3C/x4kTJ5Kam3z98OHDpOYm26sEDvcz0LXq6+uTmvtcDhw4IOtqTbrp+8eOHUtqbn2oa8hNj3dJUi+88EJSc0k46t9z74VKa3DXlUtEuHDhgqwjH5dwNHjwYFlXa8atA7WWXNKfuibcM0Ul3kRELFu2LKnNmTNH9qpkgP3798veXbt2JTWXROWubXUd//PPP7LX1dE1XKri2LFjk5rby6iUCpfKNGLEiKSmEmEiSktlcutIrUV3H6ioqEhq6n2I8Ik+KsXJJZKVkn6J9lFrsdSE0H79+iU1twdR/55LLVL3y6tXr8petxfavXt3Ujt79qzsfeONN5LakCFDZO/o0aOTmkpQi9DvTwSpTD2RSvtVNWfv3r2y7pLz1Hdstw9RqasDBw6UvepZo75fRER88cUXsr5nz56ktnr1atnb1fiLGQAAAAAAgEw4mAEAAAAAAMiEgxkAAAAAAIBMOJgBAAAAAADIpNsO/3UDhFTdDdCaNm1aUhs5cqTsraurS2qzZs2SvW4Qknptbujoo0ePkpobZKkGTqoBkhER/fv3l3U1AO327duy1w06Q8fMmDEjqbkhiefPn5f148ePJzU3EFENqX72WX1LUIPi3BBWNZQxQg9xdMN/1VBTN7hXDa68c+eO7L1//76sIy818NEN43WDStWgODcEXdVramra3TthwgTZO3XqVFlXg+nckMsjR44ktW3btsleNfDR3ftLuZ+7QfPoGm7dumGIatCvuw+r+7Ya8huhnxF3796VvWqwaoR+Vrl7eXl5eVJzv7MaWunWvtpPReg9WanDZ/HfqfuMu++79XXz5s2kpoY6R+jnvxvoqwbEu32X21er9eXWc0tLS1Ir5fnlBoO79xOdQ30ObmC6GuLsBv0XgdtDOO7aaq8tW7bIuvpO775Lq/c4ImL69OlJjeG/AAAAAAAAPRwHMwAAAAAAAJlwMAMAAAAAAJAJBzMAAAAAAACZcDADAAAAAACQSbdNZerXr5+sq6n+c+fOlb0qBWfixImyd+bMmUnNpR60tbXJ+rVr15KamsQeodNxxowZI3vVe+GSEwYMGCDrw4YNS2ouyeDw4cNJzSU1uZ+BVCnT3KuqqmRdpcK4a0X9bJd2Nn78+KTmko/cmr5y5UpSU2lPEREXL15Maio5LEKnaLifS+JGXi5lQq07tV4ifFKZSmRxSXYqDcytfZV4454T7h6t1p1LHFi5cmVS+/3332XvmTNnkpq7F7P2uw93nbjPUO0X3H1fJdOcPHlS9qq6S+5zew51L3cJOyoZrbGxUfaqFA51PUT4e4a65l26DdpHpZK6e6taiy7V1K19lRTj0mBu3LiR1Nx+XaUyuVRHt2ZUIsyyZctkr9pjuXQ8ta92e2324F3rxRdfTGrLly+Xveo7YZFTmTqTuke4+7ba37v0JfUeR/hkwCLgL2YAAAAAAAAy4WAGAAAAAAAgEw5mAAAAAAAAMuFgBgAAAAAAIJPCD/91g+aqq6tlffbs2UmtlEGNY8eOlb1qqLAbYNe/f39ZVwPJ1GDJiIiBAwcmtZs3b7a71w35PXTokKyrIX9uiKsazuYGTqL91JDEDz/8UPa6wY6XLl1KaqdOnZK9arCcu67UoGu3/t0ARrWeLl++LHvVIEk30E8N5GPQaTG5IYlq8Jv7vJubm2VdDTl0w3/VOleDR13vkCFDZK+7Jv7888+k9u2338rePXv2JDU16DRCr3P3GtB9uGGp7jmr7rnHjh2TvWpP5QZOqrobSO/WnRquWllZKXvV88Bdw2roq3sN7nmgnoFq6CvaT+0P3ZpR69x93o66Jtxe+cGDB0nNfd5u8Kiivh9E6DCGFStWyF71vcEFLKjB+O65qH5ndJ6ysrKkNnjwYNmr1qlb/25IdZGpZ82IESNkrxre++mnn8peFVajAh0iItasWSPrR44ckfUi4C9mAAAAAAAAMuFgBgAAAAAAIBMOZgAAAAAAADLhYAYAAAAAACATDmYAAAAAAAAyKVQqk0rscOkzLnVo2rRpSa2urk72Tpo0Kam5idFq2r+bkq3SQSL05HY3+V1N63aT7dVUeTclXk3Mj9C/n5tWr3729evXZS/aT6VoNDQ0yN5x48bJuppsrqbER0TcunUrqY0aNUr2qnXj0sdUolJExIkTJ5KaSlSK0Gkg7ueimNQ95Zln9P8LUGvx2rVr7f65EXqNuueESlVSk/4j9HPCpUvt2rVL1r///vuktnXrVtmrktXcv6e497iUlBHk5ZJU3Geonr/Hjx+XvWp9qDXnqDSkiIiRI0fKuku6VFR6SWtrq+xVKTRuf3Pjxg1ZV++b27+hfVQ6ituDq173nC8ljc+luarryt0vS3meLFy4UNY/+eSTpDZhwoR2vza3/1OpTCrVM4KEyq6mUhzVHiJCr/WPPvpI9v7www8del05qETkzz77TPZOmTIlqbnrTfVu2bJF9u7du1fWXWphEfAXMwAAAAAAAJlwMAMAAAAAAJAJBzMAAAAAAACZcDADAAAAAACQSaGG/yp9+/YtqV8N0FKDHiP04DE3ZFENvHODS91Q1DNnziQ1N7BLDWx1A32fe+65pOaGw7oBfZcvX05qBw8elL0KgyU7Tg2pcsMMP/74Y1mvra1NamqdR+jBh24IZEVFRVJzw1lbWlraXXfrn2HS3Z8bwKioIXhu+Li7JtQQR3e/U/fHmTNnyt4xY8YktaNHj8re7777TtY3b96c1Nz1o+6l7v6q3gs3zFI9JyL8+4x83OftPls14NPdQ9UeR4UmROh9iBvI6PYcKrTADSQ9ffp0UmtsbJS96tnhrqkLFy7IuhuyjP/N3d9VYEdVVZXsVevOrfHDhw/LutqHq2HyETrcw4UjqCGuc+bMkb2uvmDBgqTmvtNs3749qR04cED27tmzJ6m54cjoWqXcl+bOnZvU3LWi9vYREX/99VdScwPTm5qaZF2pr69PagMHDpS9ahhvRMT48eOT2uPHj2Wv+tnumbJq1aqk9uuvv8relStXyrp7HUXAX8wAAAAAAABkwsEMAAAAAABAJhzMAAAAAAAAZMLBDAAAAAAAQCYczAAAAAAAAGSSJZXJTV1X08pdOoFLmFCTyVWiUoSelD18+HDZq1IE7t27J3sbGhpkXaUyudfW1taW1NwUaZUCNXjw4Hb/3IiIEydOtLsXnUN9viqpKSLiyJEjsj5v3ryktmTJEtmr0ppc8pda62oafETE7t27Zf3cuXNJ7c6dO7LXTZVH9+Hu8+3l0pdU6kdExOjRo5PaxIkTZa9Ky6irq5O96r7tEgB27twp62qdu0SYUtIC1HPJve+9evWSddXvUnPQNdxn5ajEu7Nnz8pedS936RcqxUbVInRyX4ROyNm0aZPsVSk0u3btkr3q93D7KdKXnjyXyqT25o8ePZK9KoFG3ccjdIJNRMQHH3yQ1NweXO0rKisrZa9KH1P7q4iImpoaWb9582ZS27Fjh+z97bffktq6detk7/nz55Ma9+xiUOlaLjHryy+/TGpuz+JSI999992k5hL51Hp0+wW1zyplDxGhv2O46031unv/N998k9RUUllEsdOXHP5iBgAAAAAAIBMOZgAAAAAAADLhYAYAAAAAACATDmYAAAAAAAAy4WAGAAAAAAAgkyypTC5tw9UVl9py//79pOYmtKve48ePy141VV6lzERENDY2yrpKmFLJUBERp0+fTmouDaFPnz5JTU2Uj9C/c0TEpUuXkpqbpO+SsvDkuc/r4cOHsn706NGkdvnyZdmrkrtcStKToJIx3PR4dH/qPtG7d2/Zq+quV6X3RUTU1tYmtenTp7e798qVK7J3w4YNSc2lyrjrR13HTyJFQ90HXGJhqWlNyMclSaj0pQidoLFt2zbZq/ZOLm1m2LBhSc1dl2oPERGxb9++pHbw4MF297o9kkoFIpmm67ikqxs3biQ19xk2NTUlNZcoOm3aNFkfOHBgUpszZ47sVfdAd/9T+2r3O7vvGCq5cu3atbJXJdCo9KUIvy9EfoMGDUpqLu30l19+SWorVqyQve+9956sl5WVJTW3Pjp6f3T/vbsuVN2lJ61fvz6prV69WvaqpMzumL7k8BczAAAAAAAAmXAwAwAAAAAAkAkHMwAAAAAAAJlwMAMAAAAAAJBJr38bmNOrV69Omabjhvz2798/qbmBhWrgUUTEqFGjkpoa9OhehxsqrAaauUF8bgDkvXv3klopQ7zUgL8IPaDPvQY3NFYN+nWDWdVAp7a2NtlbisePHxdqCmVnrf/OpAYzumuouro6qalrMEJfK27glxsarYYQ3759W/b2REVa/5219t2gRTXI0w2xnTx5sqzX19cntVdeeUX2qp+thi9GRKxZsyapuXujW8/q3u+un84aYOre+yIMzesJa78o1LWmBqhGRIwePTqpzZo1S/bevXtX1tVA+gsXLshedZ24YcPqGnbXlPq5RfG0rX21N6+qqpK9aqDv1KlTZa8b5K6eB8OHD5e9aiD9rVu3ZK8aBn/ixAnZu337dllXA7ivXr0qe2/evCnrT7Mirf2IJ7P+Fy9enNRKeca65/TLL78s6+r++Pbbb7e7t7KyUvaq7w0uSGTVqlWyvnXr1qTmhtKr76ZF2Jt0Jrf++YsZAAAAAACATDiYAQAAAAAAyISDGQAAAAAAgEw4mAEAAAAAAMiEgxkAAAAAAIBMsqQyuanTamK0ShCI8GlGT/sUZ8Wl7iidlfjxJDyNE9qLTF2HLvlLKfXaLCWBrCcq0vrv6nu/SlgZOnSo7F24cKGsz58/P6kNGDBA9qpUpQ0bNsjeixcvJjWXvuTS8FS9Jz6rnJ6w9rsjlcbnEpxc4mNH02ZcKpN6/qjUnQifFFgET9vaV/d4l7CnPluXqNSnTx9ZV6kyLvm1b9++Sc2liankMJdK4+773OP/XZHWfkQxUpmcpqYmWS9lb9HRe7H7uazz/4ZUJgAAAAAAgILhYAYAAAAAACATDmYAAAAAAAAy4WAGAAAAAAAgkyzDfwHlaRwEBrRXkdZ/Z619N8hTDYesqamRvW74b3l5eVJra2uTvefOnUtqx44dk71qUHBra6vsdQNQ8e96wtrHf+MGhqvhv93x+mPto6cq0tqPYP2jazH8FwAAAAAAoGA4mAEAAAAAAMiEgxkAAAAAAIBMOJgBAAAAAADIhIMZAAAAAACATEhlQmEwoR09WZHWf2et/VISVioqKmTv0KFDZf2ZZ9L/z3Dnzh3Z29zcnNQePHgge7tj0kt30xPWPqCw9tFTFWntR7D+0bVIZQIAAAAAACgYDmYAAAAAAAAy4WAGAAAAAAAgEw5mAAAAAAAAMmH4LwqDQWDoyYq0/ln7H9+90QAAAI1JREFU6EqsffRUrH30VEVa+xGsf3Qthv8CAAAAAAAUDAczAAAAAAAAmXAwAwAAAAAAkAkHMwAAAAAAAJlwMAMAAAAAAJDJv6YyAQAAAAAAoPPwFzMAAAAAAACZcDADAAAAAACQCQczAAAAAAAAmXAwAwAAAAAAkAkHMwAAAAAAAJlwMAMAAAAAAJDJ/wEeDZ/DPobC5QAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Initialize and fit KMeans algorithm\n", "kmeans = MiniBatchKMeans(n_clusters = 36)\n", "kmeans.fit(X_test)\n", "\n", "# record centroid values\n", "centroids = kmeans.cluster_centers_\n", "\n", "# reshape centroids into images\n", "images = centroids.reshape(36, 28, 28)\n", "images *= 255\n", "images = images.astype(np.uint8)\n", "\n", "# determine cluster labels\n", "cluster_labels = infer_cluster_labels(kmeans, y_test)\n", "prediction = infer_data_labels(kmeans.predict(X_test), cluster_labels)\n", "\n", "# create figure with subplots using matplotlib.pyplot\n", "fig, axs = plt.subplots(6, 6, figsize = (20, 20))\n", "plt.gray()\n", "\n", "# loop through subplots and add centroid images\n", "for i, ax in enumerate(axs.flat):\n", " \n", " # determine inferred label using cluster_labels dictionary\n", " for key, value in cluster_labels.items(): \n", " if i in value:\n", " ax.set_title('Inferred Label: {}'.format(key), color='blue')\n", " \n", " # add image to subplot\n", " ax.matshow(images[i])\n", " ax.axis('off')\n", " \n", "# display the figure\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summary\n", "Through this post, we built the K means clustering model for MNIST digit classification. To do this, we applied preprocessing steps like reshape and normalization. And the model performance is changed in depends on n_clusters. After that, we can make MNIST classifier with almost 90%." ] } ], "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.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }