{ "cells": [ { "cell_type": "markdown", "id": "095c18c2-5055-4ecc-a22b-4d53335c5f24", "metadata": {}, "source": [ "# Homework 3\n", "\n", "Due 11:59PM Thursday, October 10 submitted via Blackboard\n", "\n" ] }, { "cell_type": "markdown", "id": "a59cd3e2-83ab-4eb7-9d1a-ae686fc09960", "metadata": {}, "source": [ "In this homework you will explore a couple of different clustering algorithms and understand the impact of various hyperparameters." ] }, { "cell_type": "code", "execution_count": 1, "id": "4584b47c-6700-438e-898b-aa2d239e615c", "metadata": {}, "outputs": [], "source": [ "# Imports\n", "import numpy as np\n", "from sklearn.cluster import KMeans\n", "from collections import defaultdict\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import random\n", "from sklearn.cluster import AgglomerativeClustering" ] }, { "cell_type": "markdown", "id": "d248872a-7b5c-459c-9f60-0c1b486af768", "metadata": {}, "source": [ "We'll be using the MNIST digits data because it is easy to understand and visualize. The code below loads the raw data where each instance is a 28x28 grayscale image represented as a vector of 784 integers between 0 and 255.\n", "\n", "It also loads the digits (0-9) to which each image corresponds. " ] }, { "cell_type": "markdown", "id": "6590e7e3-ebee-473e-80bf-154136bc84af", "metadata": {}, "source": [ "# Task 0: Get the data\n", "\n", "https://courses.cs.umbc.edu/graduate/678/fall24/mnist_labels.txt\n", "https://courses.cs.umbc.edu/graduate/678/fall24/mnist_data.txt\n", "\n", "Put the two files above in the same directory as this notebook." ] }, { "cell_type": "code", "execution_count": 2, "id": "24a2670f-5f55-45ce-a2e8-506958795ec6", "metadata": {}, "outputs": [], "source": [ "X = [np.array(list(map(int, x.split()))) for x in open('mnist_data.txt').readlines()]\n", "y = [int(y.strip()) for y in open('mnist_labels.txt').readlines()]" ] }, { "cell_type": "code", "execution_count": 3, "id": "ee11a874-6c3c-4b43-bf0c-b31c5a4e621c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10000\n", "10000\n" ] } ], "source": [ "# Check to ensure that X and y are the same length\n", "print(len(X))\n", "print(len(y))" ] }, { "cell_type": "code", "execution_count": 4, "id": "5d892616-4a0f-4e75-b3e6-9e750171fb22", "metadata": {}, "outputs": [], "source": [ "def plot_digit(digit):\n", " \"Visualize a digit or a cluster centroid\"\n", " \n", " plt.imshow(digit.reshape((28,28)), cmap='gray')\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 5, "id": "d691ffc1-ef2d-4e74-9b8c-56febe5b577f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The digit is 0\n" ] }, { "data": { "image/png": "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6McCpgCAtEYIAQDMEEIAADOEEADADCEEADBDCAEAzBBCAAAzhBAAwAwhBAAwQwgBAMwQQgAAM4QQAMAMIQQAMMMq2kjYVVdd5bnm5Zdf9lwTDoc916S7YcO8//x35syZFHRi67PPPvNcM378eM81fX19nmtw+VhFGwCQ1gghAIAZQggAYIYQAgCYIYQAAGYIIQCAGUIIAGCGEAIAmCGEAABmCCEAgBlCCABghhACAJgZYd0AMteJEyc81zz++OOea0KhkOeaN954w3ONJC1dujShOq/SbN3gpHjllVc81zz11FOea1iMNLswEwIAmCGEAABmCCEAgBlCCABghhACAJghhAAAZgghAIAZQggAYIYQAgCYIYQAAGYIIQCAGUIIAGCGBUwxqN577z3PNddff73nmu9+97ueayTpq6++8lxTV1fnucbn83mu+e1vf+u5pqOjw3NNotatW+e5JpFFcJFdmAkBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADOEEADADCEEADBDCAEAzBBCAAAzhBAAwAwhBAAw43POOesm/lc0GlUgELBuAwBwmSKRiPLy8i54DDMhAIAZQggAYMZTCDU0NOiGG25Qbm6uCgoKNHv2bB06dCjumHnz5snn88WNadOmJbVpAEB28BRCLS0tqqmp0a5du9TU1KTTp08rHA6rt7c37riZM2eqo6MjNrZu3ZrUpgEA2cHTJ6u++eabcY8bGxtVUFCgvXv36pZbbolt9/v9CgaDyekQAJC1Lus5oUgkIknKz8+P297c3KyCggKNHz9e8+fPV1dX13n/jr6+PkWj0bgBABgaEn6JtnNOd911l44fP6533303tn3jxo266qqrVFJSora2Nv3qV7/S6dOntXfvXvn9/gF/T319vX79618n/i8AAKSlS3mJtlyCFi5c6EpKSlx7e/sFjzt69KjLyclxf//738+5/8svv3SRSCQ22tvbnSQGg8FgZPiIRCIXzRJPzwmdtXjxYr322mvasWOHxo4de8FjQ6GQSkpK1Nraes79fr//nDMkAED28xRCzjktXrxYmzdvVnNzs0pLSy9a093drfb2doVCoYSbBABkJ08vTKipqdG6deu0YcMG5ebmqrOzU52dnTp58qQk6cSJE3r00Uf1r3/9S5988omam5s1a9YsjRkzRnPmzEnJPwAAkMG8PA+k8/zer7Gx0Tnn3BdffOHC4bC7+uqrXU5Ojrv22mtddXW1O3LkyCWfIxKJmP8ek8FgMBiXPy7lOSEWMAUApAQLmAIA0hohBAAwQwgBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADOEEADADCEEADBDCAEAzBBCAAAzhBAAwAwhBAAwQwgBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADOEEADADCEEADBDCAEAzBBCAAAzhBAAwEzahZBzzroFAEASXMr387QLoZ6eHusWAABJcCnfz30uzaYeZ86c0dGjR5Wbmyufzxe3LxqNqri4WO3t7crLyzPq0B7XoR/XoR/XoR/XoV86XAfnnHp6elRUVKRhwy481xkxSD1dsmHDhmns2LEXPCYvL29I32RncR36cR36cR36cR36WV+HQCBwScel3a/jAABDByEEADCTUSHk9/u1fPly+f1+61ZMcR36cR36cR36cR36Zdp1SLsXJgAAho6MmgkBALILIQQAMEMIAQDMEEIAADMZFULPPfecSktLNXLkSE2ZMkXvvvuudUuDqr6+Xj6fL24Eg0HrtlJux44dmjVrloqKiuTz+bRly5a4/c451dfXq6ioSKNGjdKMGTN08OBBm2ZT6GLXYd68eQPuj2nTptk0myINDQ264YYblJubq4KCAs2ePVuHDh2KO2Yo3A+Xch0y5X7ImBDauHGjlixZorq6Ou3bt08333yzKisrdeTIEevWBtWECRPU0dERGwcOHLBuKeV6e3s1adIkrVq16pz7n3zySa1cuVKrVq3S7t27FQwGdccdd2TdOoQXuw6SNHPmzLj7Y+vWrYPYYeq1tLSopqZGu3btUlNTk06fPq1wOKze3t7YMUPhfriU6yBlyP3gMsQPfvADt2DBgrht3/ve99xjjz1m1NHgW758uZs0aZJ1G6Ykuc2bN8cenzlzxgWDQffEE0/Etn355ZcuEAi4F154waDDwfHN6+Ccc9XV1e6uu+4y6cdKV1eXk+RaWlqcc0P3fvjmdXAuc+6HjJgJnTp1Snv37lU4HI7bHg6HtXPnTqOubLS2tqqoqEilpaW69957dfjwYeuWTLW1tamzszPu3vD7/Zo+ffqQuzckqbm5WQUFBRo/frzmz5+vrq4u65ZSKhKJSJLy8/MlDd374ZvX4axMuB8yIoQ+//xzff311yosLIzbXlhYqM7OTqOuBl95ebnWrl2rbdu2afXq1ers7FRFRYW6u7utWzNz9v9/qN8bklRZWan169dr+/bteuaZZ7R7927ddttt6uvrs24tJZxzqq2t1U033aSysjJJQ/N+ONd1kDLnfki7VbQv5Jsf7eCcG7Atm1VWVsb+PHHiRN144436zne+ozVr1qi2ttawM3tD/d6QpLlz58b+XFZWpqlTp6qkpESvv/66qqqqDDtLjUWLFumDDz7Qe++9N2DfULofzncdMuV+yIiZ0JgxYzR8+PABP8l0dXUN+IlnKBk9erQmTpyo1tZW61bMnH11IPfGQKFQSCUlJVl5fyxevFivvfaa3nnnnbiPfhlq98P5rsO5pOv9kBEhdMUVV2jKlClqamqK297U1KSKigqjruz19fXpo48+UigUsm7FTGlpqYLBYNy9cerUKbW0tAzpe0OSuru71d7enlX3h3NOixYt0qZNm7R9+3aVlpbG7R8q98PFrsO5pO39YPiiCE/+9re/uZycHPfSSy+5Dz/80C1ZssSNHj3affLJJ9atDZpHHnnENTc3u8OHD7tdu3a5H/3oRy43Nzfrr0FPT4/bt2+f27dvn5PkVq5c6fbt2+c+/fRT55xzTzzxhAsEAm7Tpk3uwIED7r777nOhUMhFo1HjzpPrQtehp6fHPfLII27nzp2ura3NvfPOO+7GG29011xzTVZdh5/97GcuEAi45uZm19HRERtffPFF7JihcD9c7Dpk0v2QMSHknHO///3vXUlJibviiivc5MmT416OOBTMnTvXhUIhl5OT44qKilxVVZU7ePCgdVsp98477zhJA0Z1dbVzrv9lucuXL3fBYND5/X53yy23uAMHDtg2nQIXug5ffPGFC4fD7uqrr3Y5OTnu2muvddXV1e7IkSPWbSfVuf79klxjY2PsmKFwP1zsOmTS/cBHOQAAzGTEc0IAgOxECAEAzBBCAAAzhBAAwAwhBAAwQwgBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADOEEADAzP8BFLBDa7gObCQAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# You can run this cell multiple times to see different digit examples\n", "idx = random.randrange(len(X))\n", "print(\"The digit is %d\" % y[idx])\n", "plot_digit(X[idx])" ] }, { "cell_type": "markdown", "id": "d4fbd5e1-c220-4db6-b0c0-f7909a0330d0", "metadata": {}, "source": [ "# Task 1: Get familiar with running k-means\n", "\n", "Read through the code below because you'll be using the ideas here for the next task" ] }, { "cell_type": "code", "execution_count": 6, "id": "741cfd03-18a5-40bf-b5bc-dbf607b62b23", "metadata": {}, "outputs": [], "source": [ "# Create a KMeans object with 5 clusters and random point selection\n", "# for cluster initialization\n", "\n", "clst = KMeans(n_clusters = 5, init = 'random')" ] }, { "cell_type": "code", "execution_count": 7, "id": "97bcf7ec-90dc-486b-9d64-9876fea9ab74", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
KMeans(init='random', n_clusters=5)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "KMeans(init='random', n_clusters=5)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Cluster the data\n", "clst.fit(X)" ] }, { "cell_type": "code", "execution_count": 8, "id": "26ec6d19-e08f-4459-a82e-b8d9d2d92dbe", "metadata": {}, "outputs": [], "source": [ "def get_cm(clst, y):\n", " \"\"\"\n", " Given a cluster object that has been fit and the true labels for the data\n", " return a confusion matrix where cell (i, j) is the number of times true \n", " class label j occurs in cluster i.\n", " \"\"\"\n", " \n", " cm = np.zeros((np.unique(clst.labels_).shape[0], np.unique(y).shape[0]))\n", "\n", " for ypred, ytrue in zip(clst.labels_, y):\n", " cm[ypred][ytrue] += 1\n", " \n", " return cm" ] }, { "cell_type": "code", "execution_count": 9, "id": "2172419a-9050-4e1e-b217-8d9fdfb3dcec", "metadata": {}, "outputs": [], "source": [ "def plot_cm(cm):\n", " \"Plot a confusion matrix\"\n", " \n", " s = sns.heatmap(cm, cmap=\"GnBu\", annot=True, fmt='g')\n", " s.set(xlabel='Digit', ylabel='Cluster')\n", " return s" ] }, { "cell_type": "code", "execution_count": 10, "id": "5b93b190-078a-48ef-b4ef-e247e1e38c51", "metadata": {}, "outputs": [], "source": [ "# Get the confusion matrix for the 10 cluster case\n", "cm = get_cm(clst, y)" ] }, { "cell_type": "markdown", "id": "6413133b-14fc-4d0e-a655-4185b7e6e12a", "metadata": {}, "source": [ "It's hard to tell what you'll see below due to randomness, but typically there is one cluster with almost all of the 0's. Find the row for which the 0 column has a very high count. There is also typically a column that has most of the 1's. The 4's, 7's, and 8's tend to clump into one cluster. Look for the row that has high counts for those columns." ] }, { "cell_type": "code", "execution_count": 11, "id": "19e9e646-eff7-49c0-8051-ceae37437de3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_cm(cm)" ] }, { "cell_type": "code", "execution_count": 12, "id": "a45c43f5-0497-4a9f-8930-dccc0aee0dd5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cluster ID 0 centroid\n" ] }, { "data": { "image/png": "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6ayhoSH95yVLluj222/XDTfcoN27d2vLli2GK7M3088NSVq3bl36z4sXL9att96q2tpavfPOO1q7dq3hyrJj48aN+uSTT/SPf/zjovtm0vlwueOQL+dDXlwJzZs3TwUFBRf9T6a7u/ui//HMJHPmzNGSJUt04sQJ66WY+fbVgZwbF6uurlZtbe20PD82bdqkt99+Wx988MGEX/0y086Hyx2HS5mq50NelFBRUZGWLVumlpaWCbe3tLRo5cqVRquyl0ql9Omnn6q6utp6KWbq6uqUSCQmnBujo6Nqa2ub0eeGJPX09Kijo2NanR/OOW3cuFFvvPGG9u/fr7q6ugn3z5Tz4fuOw6VM2fPB8EURXl5//XVXWFjo/vjHP7p///vfbvPmzW7OnDnu5MmT1kvLmaeeesq1tra6L774wh06dMj99Kc/dbFYbNofg/7+fnf06FF39OhRJ8nt2LHDHT161P33v/91zjn33HPPuXg87t544w137Ngx98gjj7jq6mqXTCaNV55Zkx2H/v5+99RTT7mDBw+69vZ298EHH7jbb7/dXX/99dPqOPziF79w8Xjctba2us7OzvQ2NDSU3mcmnA/fdxzy6XzImxJyzrnf/e53rra21hUVFblbbrllwssRZ4J169a56upqV1hY6GpqatzatWvd8ePHrZeVdR988IGTdNHW2NjonLvwstxnn33WJRIJF41G3V133eWOHTtmu+gsmOw4DA0Nufr6eldRUeEKCwvdwoULXWNjozt16pT1sjPqUp+/JLdr1670PjPhfPi+45BP5wO/ygEAYCYvnhMCAExPlBAAwAwlBAAwQwkBAMxQQgAAM5QQAMAMJQQAMEMJAQDMUEIAADOUEADADCUEADBDCQEAzPwfXqiuu0HUTY4AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster ID 1 centroid\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaEAAAGdCAYAAAC7EMwUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAdHklEQVR4nO3db2yV9f3/8dfpv0Orh+M6bM/pqF1jMFvEkYgOJP4BExubjIhsCWqywB2jE0hINWaMLHZbQo2JxBtMl5mFaSaTO+pMJGIXbMEwFmQYCTMGQxk19KwDyzltKae0XN8bDef3O5R/n4/nnPc5p89HciWc61zvXp9+uNrXuXqd631CQRAEAgDAQIX1AAAAMxchBAAwQwgBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADNV1gO41IULF3Ty5ElFIhGFQiHr4QAAHAVBoOHhYTU1Nami4urnOkUXQidPnlRzc7P1MAAA31J/f7/mzp171W2K7s9xkUjEeggAgBy4nt/neQuhV199Va2trZo1a5YWLlyovXv3Xlcdf4IDgPJwPb/P8xJCO3bs0IYNG7Rp0yYdOnRI9913n9rb23XixIl87A4AUKJC+eiivWjRIt1555167bXXMut++MMfasWKFerq6rpqbSqVUjQazfWQAAAFlkwmNXv27Ktuk/MzofHxcR08eFBtbW1Z69va2rRv375p26fTaaVSqawFADAz5DyETp06pcnJSTU2Nmatb2xsVCKRmLZ9V1eXotFoZuGdcQAwc+TtjQmXXpAKguCyF6k2btyoZDKZWfr7+/M1JABAkcn5fUJz5sxRZWXltLOewcHBaWdHkhQOhxUOh3M9DABACcj5mVBNTY0WLlyo7u7urPXd3d1asmRJrncHAChheemY0NHRoZ///Oe66667dM899+iPf/yjTpw4oaeffjofuwMAlKi8hNCqVat0+vRp/fa3v9XAwIDmz5+vnTt3qqWlJR+7AwCUqLzcJ/RtcJ8QAJQHk/uEAAC4XoQQAMAMIQQAMEMIAQDMEEIAADOEEADADCEEADBDCAEAzBBCAAAzhBAAwAwhBAAwQwgBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADOEEADADCEEADBDCAEAzBBCAAAzhBAAwAwhBAAwQwgBAMwQQgAAM4QQAMBMlfUAULpCoVDR7sd3bBUV7q/LfPYVBIFzjY9C7Ucq3DxcuHChIPvxVch9lQPOhAAAZgghAIAZQggAYIYQAgCYIYQAAGYIIQCAGUIIAGCGEAIAmCGEAABmCCEAgBlCCABghhACAJihgWmZKWSzT5+6ysrKgtTU1NQ410jSrFmznGtqa2uda2688UbnGp95mJiYcK6RpMnJSeea8fFx55pz584516TT6YLsR5LOnz/vXOMzd8XelDWfOBMCAJghhAAAZgghAIAZQggAYIYQAgCYIYQAAGYIIQCAGUIIAGCGEAIAmCGEAABmCCEAgBlCCABghgam8G5gWlXlfvj41FRXVzvX+DQVlaRoNOpc09jY6FwTj8edayKRiHONbwNTn4afQ0NDBak5c+aMc00ymXSukaTR0VHnGp8Gqz58mp5Kxdf4lDMhAIAZQggAYCbnIdTZ2alQKJS1xGKxXO8GAFAG8nJN6Pbbb9ff//73zGOfD+MCAJS/vIRQVVUVZz8AgGvKyzWho0ePqqmpSa2trXrsscd07NixK26bTqeVSqWyFgDAzJDzEFq0aJHefPNN7dq1S6+//roSiYSWLFmi06dPX3b7rq4uRaPRzNLc3JzrIQEAilQoyPObxkdHR3Xrrbfq+eefV0dHx7Tn0+l01vvqU6kUQfQt+NzzU1Hh91qE+4SmcJ/QFO4TmuJzn9Dk5KRzTSncJ5RMJjV79uyrbpP3m1VvuOEG3XHHHTp69Ohlnw+HwwqHw/keBgCgCOX9PqF0Oq0vvvjC65UfAKC85TyEnnvuOfX29qqvr0///Oc/9bOf/UypVEqrV6/O9a4AACUu53+O+/rrr/X444/r1KlTuvnmm7V48WLt379fLS0tud4VAKDE5TyE3n777Vx/yRmrUG8y8L2Z2KeuUG9M8L3OeK2LqJfjc09ca2urc82cOXOca3wvXvtcyB8YGHCu8TmGfC7inz9/3rnGd18+c+7zs+77phOf7ymf6B0HADBDCAEAzBBCAAAzhBAAwAwhBAAwQwgBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADOEEADATN4/1A7+fJoaFvKTVX3qfMZXqEapklRXV+dc853vfMe5xufTWG+++WbnGp9P+ZT8Pn1zeHjYuWbWrFlFWyMV7lNSffg2p/Wpy+ensXImBAAwQwgBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADOEEADADCEEADBDCAEAzBBCAAAzhBAAwAwhBAAwQxftAvHpHl0oxd6N12fufLtoh8Nh55ra2lrnmkgk4lzj0+Hbl0+HdJ//22Lr6HypQnWl9zlefbt1+9TRRRsAUJYIIQCAGUIIAGCGEAIAmCGEAABmCCEAgBlCCABghhACAJghhAAAZgghAIAZQggAYIYQAgCYoYFpgRSq6WKhmkhKfo0QKysrvfblyqcRqSTV1NQUZF8+TU999jM2NuZcI0nnz58vyL7Onj3rXDM6Oupcc+7cOecayW8efH4ufGp8f24L2QD2enAmBAAwQwgBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADOEEADADCEEADBDCAEAzBBCAAAzhBAAwAwNTMtMIZsT+jZQdOXTVNSnQagkVVW5/0hUV1cXpMZnbD6NMSW/hp/Dw8PONclk0rlmZGTEucan6ankNw8+TU8L1ShVooEpAAAZhBAAwIxzCO3Zs0fLly9XU1OTQqGQ3nvvvazngyBQZ2enmpqaVFtbq6VLl+rIkSO5Gi8AoIw4h9Do6KgWLFigrVu3Xvb5l156SVu2bNHWrVt14MABxWIxPfTQQ15/LwYAlDfnK53t7e1qb2+/7HNBEOiVV17Rpk2btHLlSknSG2+8ocbGRm3fvl1PPfXUtxstAKCs5PSaUF9fnxKJhNra2jLrwuGwHnjgAe3bt++yNel0WqlUKmsBAMwMOQ2hRCIhSWpsbMxa39jYmHnuUl1dXYpGo5mlubk5l0MCABSxvLw7LhQKZT0OgmDauos2btyoZDKZWfr7+/MxJABAEcrpzaqxWEzS1BlRPB7PrB8cHJx2dnRROBxWOBzO5TAAACUip2dCra2tisVi6u7uzqwbHx9Xb2+vlixZkstdAQDKgPOZ0MjIiL766qvM476+Pn322Weqr6/XLbfcog0bNmjz5s2aN2+e5s2bp82bN6uurk5PPPFETgcOACh9ziH06aefatmyZZnHHR0dkqTVq1frz3/+s55//nmNjY3pmWee0dDQkBYtWqSPPvpIkUgkd6MGAJSFUFBk3exSqZSi0aj1MErWld4AkusaSaqsrHSuqaurc6650vXEq7l4fdJVQ0ODc82PfvQj55qFCxc619x0003ONceOHXOukaR//etfzjWHDx92rjl+/LhzjU/TU98GphMTE841Po19fWp8f3UX8ld+MpnU7Nmzr7oNveMAAGYIIQCAGUIIAGCGEAIAmCGEAABmCCEAgBlCCABghhACAJghhAAAZgghAIAZQggAYIYQAgCYIYQAAGZy+smqmFl8um9XV1c719TU1DjX+HT49q3z6fru0+W7trbWucbX0NCQc82pU6eca4aHh51rfDpinz9/3rlGKlx360LVFCPOhAAAZgghAIAZQggAYIYQAgCYIYQAAGYIIQCAGUIIAGCGEAIAmCGEAABmCCEAgBlCCABghhACAJihgWmZ8Wlq6NOIVPJr9unTwLSqyv0w9W1gWldX51xzyy23ONfMnTvXuWZiYsK5xqdBqCQlEgnnmm+++ca55uzZs841PvPg2+yTZqT5x5kQAMAMIQQAMEMIAQDMEEIAADOEEADADCEEADBDCAEAzBBCAAAzhBAAwAwhBAAwQwgBAMwQQgAAMzQwLTM+zUh9G5hWVLi/hvHdlyufRqmS9N3vfte55vvf/75zTX19vXPNwMCAc41PI1JJOnXqlHPNuXPnnGsmJyeda3wUsoEp3HAmBAAwQwgBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADOEEADADCEEADBDCAEAzBBCAAAzhBAAwAwNTItYoZqRFqqpqCRduHDBuWZiYsK5prKy0rlGkhoaGpxrbrrpJueaqir3H72hoSHnmsHBQecaya8ZqY9CHXuFbNJbqKan5dJclTMhAIAZQggAYMY5hPbs2aPly5erqalJoVBI7733Xtbza9asUSgUyloWL16cq/ECAMqIcwiNjo5qwYIF2rp16xW3efjhhzUwMJBZdu7c+a0GCQAoT85XR9vb29Xe3n7VbcLhsGKxmPegAAAzQ16uCfX09KihoUG33Xabnnzyyau+QyedTiuVSmUtAICZIech1N7errfeeku7d+/Wyy+/rAMHDujBBx9UOp2+7PZdXV2KRqOZpbm5OddDAgAUqZzfJ7Rq1arMv+fPn6+77rpLLS0t+uCDD7Ry5cpp22/cuFEdHR2Zx6lUiiACgBki7zerxuNxtbS06OjRo5d9PhwOKxwO53sYAIAilPf7hE6fPq3+/n7F4/F87woAUGKcz4RGRkb01VdfZR739fXps88+U319verr69XZ2amf/vSnisfjOn78uH71q19pzpw5evTRR3M6cABA6XMOoU8//VTLli3LPL54PWf16tV67bXXdPjwYb355ps6c+aM4vG4li1bph07digSieRu1ACAsuAcQkuXLr1q47xdu3Z9qwHh/yn2BqaFaj7p00Ry1qxZXvvyebHk0yx1ZGTEuebEiRPONclk0rlG8ms06/P/VOzHeDkqtsan9I4DAJghhAAAZgghAIAZQggAYIYQAgCYIYQAAGYIIQCAGUIIAGCGEAIAmCGEAABmCCEAgBlCCABghhACAJjJ+yerwp9P59+qKvf/Up8u0JJUU1PjXOPT3bqurs65JhqNOtdIfuM7d+6cc00ikXCuOXnypHPN2bNnnWt8TU5OOtf4dOsuti7Q+HY4EwIAmCGEAABmCCEAgBlCCABghhACAJghhAAAZgghAIAZQggAYIYQAgCYIYQAAGYIIQCAGUIIAGCGBqZFrKLC/TVCoZqK+tb51EQiEeeam266yblG8msAm0qlnGtGR0eda86cOeNc49Mg1LfOp4GpD5/GvjQ9LV6cCQEAzBBCAAAzhBAAwAwhBAAwQwgBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADOEEADADCEEADBDA9MC8Wm66FPj04CztrbWuUaS6urqnGvq6+udaxobGwuyH0kKh8PONSMjI841yWTSuWZsbMy5xrdx58TEhFedK59jvLKysiD7kYq7kWu5NGXlTAgAYIYQAgCYIYQAAGYIIQCAGUIIAGCGEAIAmCGEAABmCCEAgBlCCABghhACAJghhAAAZgghAIAZGpgWiG8DRVcVFe6vK6qrq732deONNzrX+DQWnTNnjnNNJBJxrpH8mmP6NBYdHR11rkmn084158+fd66RCtcc0+d49WkqWuzKpRmpD86EAABmCCEAgBmnEOrq6tLdd9+tSCSihoYGrVixQl9++WXWNkEQqLOzU01NTaqtrdXSpUt15MiRnA4aAFAenEKot7dXa9eu1f79+9Xd3a2JiQm1tbVl/X37pZde0pYtW7R161YdOHBAsVhMDz30kIaHh3M+eABAaXN6Y8KHH36Y9Xjbtm1qaGjQwYMHdf/99ysIAr3yyivatGmTVq5cKUl644031NjYqO3bt+upp57K3cgBACXvW10TuvgRxRff8dTX16dEIqG2trbMNuFwWA888ID27dt32a+RTqeVSqWyFgDAzOAdQkEQqKOjQ/fee6/mz58vSUokEpKkxsbGrG0bGxszz12qq6tL0Wg0szQ3N/sOCQBQYrxDaN26dfr888/117/+ddpzl94TEwTBFe+T2bhxo5LJZGbp7+/3HRIAoMR43ay6fv16vf/++9qzZ4/mzp2bWR+LxSRNnRHF4/HM+sHBwWlnRxeFw2GFw2GfYQAASpzTmVAQBFq3bp3eeecd7d69W62trVnPt7a2KhaLqbu7O7NufHxcvb29WrJkSW5GDAAoG05nQmvXrtX27dv1t7/9TZFIJHOdJxqNqra2VqFQSBs2bNDmzZs1b948zZs3T5s3b1ZdXZ2eeOKJvHwDAIDS5RRCr732miRp6dKlWeu3bdumNWvWSJKef/55jY2N6ZlnntHQ0JAWLVqkjz76yLuXFwCgfDmF0PU02QuFQurs7FRnZ6fvmMpSoRoU+uzHt7nqrFmznGt8XozU1tY611RV+fXmPXfunHONT5PQM2fOONf43PDt01xVkiYmJpxrfI49n2akk5OTBdmPNLMbixYKveMAAGYIIQCAGUIIAGCGEAIAmCGEAABmCCEAgBlCCABghhACAJghhAAAZgghAIAZQggAYIYQAgCYIYQAAGb8Wg3DWaG68fp0C/btMFwoPnM3Ojrqta/x8XHnGp+uzt98841zzf/+9z/nmlQq5Vwj+XUT9+m87VPjM9++P38+dYWqKRecCQEAzBBCAAAzhBAAwAwhBAAwQwgBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADOEEADADCEEADBDA9MCCYVCzjU+jUV9GkKm02nnGkkaGRlxrhkaGnKuCYfDzjXJZNK5xtfY2Jhzjc/4/vvf/zrXnDlzxrlG8mtgWqjmrz4/F4VsEDqTm5H64EwIAGCGEAIAmCGEAABmCCEAgBlCCABghhACAJghhAAAZgghAIAZQggAYIYQAgCYIYQAAGYIIQCAGRqYFohPU0OfRo0+zUh9m336NEsdHh52rvn666+da3z5zLlP406f/6ezZ8861/g0V5Wk8+fPO9f4NCMtVLNPmooWL86EAABmCCEAgBlCCABghhACAJghhAAAZgghAIAZQggAYIYQAgCYIYQAAGYIIQCAGUIIAGCGEAIAmKGBaRHzaabp06jRt7mjTwPTkZER55qKCvfXSr7fk08TzkI17vQ5HnxqJBp+onA4EwIAmCGEAABmnEKoq6tLd999tyKRiBoaGrRixQp9+eWXWdusWbNGoVAoa1m8eHFOBw0AKA9OIdTb26u1a9dq//796u7u1sTEhNra2jQ6Opq13cMPP6yBgYHMsnPnzpwOGgBQHpzemPDhhx9mPd62bZsaGhp08OBB3X///Zn14XBYsVgsNyMEAJStb3VN6OLHQtfX12et7+npUUNDg2677TY9+eSTGhwcvOLXSKfTSqVSWQsAYGYIBZ7vxQyCQI888oiGhoa0d+/ezPodO3boxhtvVEtLi/r6+vTrX/9aExMTOnjwoMLh8LSv09nZqd/85jf+3wGyhEIh55rKykqvfVVVub/D32dfvEV7Cm/RRqlJJpOaPXv2VbfxDqG1a9fqgw8+0CeffKK5c+decbuBgQG1tLTo7bff1sqVK6c9n06nlU6nM49TqZSam5t9hgQRQhcRQv41EiGE3LieEPK6WXX9+vV6//33tWfPnqsGkCTF43G1tLTo6NGjl30+HA5f9gwJAFD+nEIoCAKtX79e7777rnp6etTa2nrNmtOnT6u/v1/xeNx7kACA8uT0d461a9fqL3/5i7Zv365IJKJEIqFEIqGxsTFJUy1ZnnvuOf3jH//Q8ePH1dPTo+XLl2vOnDl69NFH8/INAABKl9M1oStdb9i2bZvWrFmjsbExrVixQocOHdKZM2cUj8e1bNky/e53v7vu6zypVErRaPR6h4RLcE1oCteE/GskrgkhN3J+TehaB2Ztba127drl8iUBADMYXbTLjM8rWJ9X8r51PmdqhVTILuQAaGAKADBECAEAzBBCAAAzhBAAwAwhBAAwQwgBAMwQQgAAM4QQAMAMIQQAMEMIAQDMEEIAADOEEADADA1MUdAGnDT7BPD/40wIAGCGEAIAmCGEAABmCCEAgBlCCABghhACAJghhAAAZgghAIAZQggAYIYQAgCYIYQAAGaKLoToLQYA5eF6fp8XXQgNDw9bDwEAkAPX8/s8FBTZqceFCxd08uRJRSIRhUKhrOdSqZSam5vV39+v2bNnG43QHvMwhXmYwjxMYR6mFMM8BEGg4eFhNTU1qaLi6uc6RfdRDhUVFZo7d+5Vt5k9e/aMPsguYh6mMA9TmIcpzMMU63mIRqPXtV3R/TkOADBzEEIAADMlFULhcFgvvPCCwuGw9VBMMQ9TmIcpzMMU5mFKqc1D0b0xAQAwc5TUmRAAoLwQQgAAM4QQAMAMIQQAMFNSIfTqq6+qtbVVs2bN0sKFC7V3717rIRVUZ2enQqFQ1hKLxayHlXd79uzR8uXL1dTUpFAopPfeey/r+SAI1NnZqaamJtXW1mrp0qU6cuSIzWDz6FrzsGbNmmnHx+LFi20GmyddXV26++67FYlE1NDQoBUrVujLL7/M2mYmHA/XMw+lcjyUTAjt2LFDGzZs0KZNm3To0CHdd999am9v14kTJ6yHVlC33367BgYGMsvhw4eth5R3o6OjWrBggbZu3XrZ51966SVt2bJFW7du1YEDBxSLxfTQQw+VXR/Ca82DJD388MNZx8fOnTsLOML86+3t1dq1a7V//351d3drYmJCbW1tGh0dzWwzE46H65kHqUSOh6BE/PjHPw6efvrprHU/+MEPgl/+8pdGIyq8F154IViwYIH1MExJCt59993M4wsXLgSxWCx48cUXM+vOnTsXRKPR4A9/+IPBCAvj0nkIgiBYvXp18Mgjj5iMx8rg4GAgKejt7Q2CYOYeD5fOQxCUzvFQEmdC4+PjOnjwoNra2rLWt7W1ad++fUajsnH06FE1NTWptbVVjz32mI4dO2Y9JFN9fX1KJBJZx0Y4HNYDDzww444NSerp6VFDQ4Nuu+02PfnkkxocHLQeUl4lk0lJUn19vaSZezxcOg8XlcLxUBIhdOrUKU1OTqqxsTFrfWNjoxKJhNGoCm/RokV68803tWvXLr3++utKJBJasmSJTp8+bT00Mxf//2f6sSFJ7e3teuutt7R79269/PLLOnDggB588EGl02nroeVFEATq6OjQvffeq/nz50uamcfD5eZBKp3joei6aF/NpR/tEATBtHXlrL29PfPvO+64Q/fcc49uvfVWvfHGG+ro6DAcmb2ZfmxI0qpVqzL/nj9/vu666y61tLTogw8+0MqVKw1Hlh/r1q3T559/rk8++WTaczPpeLjSPJTK8VASZ0Jz5sxRZWXltFcyg4OD017xzCQ33HCD7rjjDh09etR6KGYuvjuQY2O6eDyulpaWsjw+1q9fr/fff18ff/xx1ke/zLTj4UrzcDnFejyURAjV1NRo4cKF6u7uzlrf3d2tJUuWGI3KXjqd1hdffKF4PG49FDOtra2KxWJZx8b4+Lh6e3tn9LEhSadPn1Z/f39ZHR9BEGjdunV65513tHv3brW2tmY9P1OOh2vNw+UU7fFg+KYIJ2+//XZQXV0d/OlPfwr+/e9/Bxs2bAhuuOGG4Pjx49ZDK5hnn3026OnpCY4dOxbs378/+MlPfhJEIpGyn4Ph4eHg0KFDwaFDhwJJwZYtW4JDhw4F//nPf4IgCIIXX3wxiEajwTvvvBMcPnw4ePzxx4N4PB6kUinjkefW1eZheHg4ePbZZ4N9+/YFfX19wccffxzcc889wfe+972ymodf/OIXQTQaDXp6eoKBgYHMcvbs2cw2M+F4uNY8lNLxUDIhFARB8Pvf/z5oaWkJampqgjvvvDPr7YgzwapVq4J4PB5UV1cHTU1NwcqVK4MjR45YDyvvPv7440DStGX16tVBEEy9LfeFF14IYrFYEA6Hg/vvvz84fPiw7aDz4GrzcPbs2aCtrS24+eabg+rq6uCWW24JVq9eHZw4ccJ62Dl1ue9fUrBt27bMNjPheLjWPJTS8cBHOQAAzJTENSEAQHkihAAAZgghAIAZQggAYIYQAgCYIYQAAGYIIQCAGUIIAGCGEAIAmCGEAABmCCEAgBlCCABg5v8AADomPPxuDNMAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster ID 2 centroid\n" ] }, { "data": { "image/png": "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mKGEAABmKCEAgBlKCABghhICAJihhAAAZighAIAZSggAYIYSAgCYYYr2ADZsmP+/EfLy8rwzhYWF3hlJmjRpkndm+vTp3pmZM2d6Z6ZMmeKdkaRbb73VOxMyobm5udk788MPP3hnzpw5452Rwqaxh+y7kEzIcdfZ2emdkaQTJ054Z/73v/95Zzo6OrwzPT093pmBiDMhAIAZSggAYIYSAgCYoYQAAGYoIQCAGUoIAGCGEgIAmKGEAABmKCEAgBlKCABghhICAJihhAAAZhhgmiWRSMQ7EzLAdMyYMd6ZeDzunZHChoTefffd3pnKykrvzC233OKdkaTu7m7vzLFjx7wzTU1NWXmd06dPe2ckKT8/3zsTcjzcdddd3pni4mLvTMjQU0lqa2vzzjQ2NnpnWlpavDPnzp3zzgxEnAkBAMxQQgAAM5QQAMAMJQQAMEMJAQDMUEIAADOUEADADCUEADBDCQEAzFBCAAAzlBAAwAwlBAAwwwDTASwvL887U1hY6J2ZMGGCd0aSpk2b5p2ZPn26d2bcuHHembNnz3pnJOnbb7/1zhw6dMg7k60hl8lk0jsjhQ3CDXmtkEGpIcNpQwfaTpw40TsTcrxma39LknMuKJcpnAkBAMxQQgAAM94ltGPHDi1cuFDl5eWKRCL6+OOP+z3unFNtba3Ky8uVn5+vBQsW6ODBg+laLwAgh3iXUFdXl2bNmqX169df9fE33nhD69at0/r167V7927F43E9/vjj6uzsvOnFAgByi/eFCdXV1aqurr7qY845vfXWW1qzZo0WL14sSdq4caNKS0u1adMmvfDCCze3WgBATknr74SamprU1tamqqqqvvui0ajmz5+vnTt3XjWTSqWUTCb7bQCAoSGtJXT589hLS0v73V9aWnrNz2qvq6tTLBbr20IuiQQADE4ZuTouEon0u+2cu+K+y1avXq1EItG3hbwXAgAwOKX1zarxeFzSpTOisrKyvvvb29uvODu6LBqNKhqNpnMZAIBBIq1nQpWVlYrH46qvr++77/z582poaNC8efPS+VIAgBzgfSZ05swZfffdd323m5qatG/fPhUVFWnSpElauXKl1q5dq6lTp2rq1Klau3atRo8ereeeey6tCwcADH7eJfT111/r0Ucf7bu9atUqSVJNTY3+9re/6dVXX1V3d7deeukldXR0aM6cOfr8889V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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster ID 3 centroid\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster ID 4 centroid\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Look at the centroids for all of the clusters\n", "for i in range(len(clst.cluster_centers_)):\n", " print(\"Cluster ID %d centroid\" % i)\n", " plot_digit(clst.cluster_centers_[i])" ] }, { "cell_type": "markdown", "id": "85e51e69-791a-42f1-a1c9-1124b9b3b078", "metadata": {}, "source": [ "# Task 2: Varying k in k-Means\n", "\n", "For values of k in {2, 10, 15} \n", "* cluster the digits\n", "* print the confusion matrices\n", "* plot the cluster centroids\n", "\n", "Note that for k = 2, 2-means must combine distinct digits. For k = 10 you would hope that it has a cluster for each digit in which that digit is by far the most common. For k = 15 the expectation is that there may be clusters, for example, for the same digit but different ways of writing it (e.g., 9 with a straight bottom vs. 9 with a curled tail at the bottom).\n", "\n", "For each of the three cases, write a couple of paragraphs on what you observe about the way k-means has clustered the data, why it has done it that way (e.g., certain digits are visually similar, be sure to say which ones and why), and why the cluster centroids look the way they do. You don't have to talk about all of the clusters, especially in the k = 15 case, but you do need to mention several of them in each case." ] }, { "cell_type": "markdown", "id": "06b67c07-4405-4221-8932-d2462cbf5879", "metadata": {}, "source": [ "# Task 3: Agglomerative Clustering\n", "\n", "Read the scikit documentation on Agglomerative Clustering. There are two important hyperparameters:\n", "* linkage, which can take on values ‘ward’, ‘complete’, ‘average’, ‘single’\n", "* metric, which can take on values “euclidean”, “l1”, “l2”, “manhattan”, “cosine”\n", "\n", "Explore combinations of those hyperparameters with n_clusters = 10 and see how close you can get to the ideal of one majority digit per cluster. \n", "* Write a couple of paragraphs explaining what you tried, what worked and what didn't with example confusion matrices. Include an explanation of **why** you think the best results were a result of the hyperparameters chosen in that case. Note that you may need to dig through the scikit documentation or use the internet to get more information on their effects." ] }, { "cell_type": "code", "execution_count": null, "id": "9f83b067-193a-48bb-82dd-af315f63eaff", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.4" } }, "nbformat": 4, "nbformat_minor": 5 }