{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Hierarchical Clustering\n",
"> A Summary of lecture \"Cluster Analysis in Python\", via datacamp\n",
"\n",
"- toc: true \n",
"- badges: true\n",
"- comments: true\n",
"- author: Chanseok Kang\n",
"- categories: [Python, Datacamp, Machine_Learning]\n",
"- image: images/fifa_cluster.png"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Basics of hierarchical clustering\n",
"- Creating a distance matrix using linkage\n",
" - ```method```: how to calculate the proximity of clusters\n",
" - ```metric```: distance metric\n",
" - ```optimal_ordering```: order data points\n",
"- Type of Methods\n",
" - single: based on two closest objects\n",
" - complete: based on two farthest objects\n",
" - average: based on the arithmetic mean of all objects\n",
" - centroids: based on the geometric mean of all objects\n",
" - median: based on the median of all objects\n",
" - ward: based on the sum of squares\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Hierarchical clustering: ward method\n",
"It is time for Comic-Con! Comic-Con is an annual comic-based convention held in major cities in the world. You have the data of last year's footfall, the number of people at the convention ground at a given time. You would like to decide the location of your stall to maximize sales. Using the ward method, apply hierarchical clustering to find the two points of attraction in the area."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- Preprocess"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from scipy.cluster.hierarchy import linkage, fcluster\n",
"\n",
"# Use the linkage()\n",
"distance_matrix = linkage(comic_con[['x_scaled', 'y_scaled']], method='ward', metric='euclidean')\n",
"\n",
"# Assign cluster labels\n",
"comic_con['cluster_labels'] = fcluster(distance_matrix, 2, criterion='maxclust')\n",
"\n",
"# Plot clusters\n",
"sns.scatterplot(x='x_scaled', y='y_scaled', hue='cluster_labels', data=comic_con);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Hierarchical clustering: single method\n",
"Let us use the same footfall dataset and check if any changes are seen if we use a different method for clustering."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Use the linkage()\n",
"distance_matrix = linkage(comic_con[['x_scaled', 'y_scaled']], method='single', metric='euclidean')\n",
"\n",
"# Assign cluster labels\n",
"comic_con['cluster_labels'] = fcluster(distance_matrix, 2, criterion='maxclust')\n",
"\n",
"# Plot clusters\n",
"sns.scatterplot(x='x_scaled', y='y_scaled', hue='cluster_labels', data=comic_con);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Hierarchical clustering: complete method\n",
"For the third and final time, let us use the same footfall dataset and check if any changes are seen if we use a different method for clustering.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Use the linkage()\n",
"distance_matrix = linkage(comic_con[['x_scaled', 'y_scaled']], method='complete', metric='euclidean')\n",
"\n",
"# Assign cluster labels\n",
"comic_con['cluster_labels'] = fcluster(distance_matrix, 2, criterion='maxclust')\n",
"\n",
"# Plot clusters\n",
"sns.scatterplot(x='x_scaled', y='y_scaled', hue='cluster_labels', data=comic_con);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualize clusters\n",
"- Why visualize clusters?\n",
" - Try to make sense of the clusters formed\n",
" - An additional step in validation of clusters\n",
" - Spot trends in data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Visualize clusters with matplotlib\n",
"We have discussed that visualizations are necessary to assess the clusters that are formed and spot trends in your data. Let us now focus on visualizing the footfall dataset from Comic-Con using the matplotlib module."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Define a colors dictionary for clusters\n",
"colors = {1:'red', 2:'blue'}\n",
"\n",
"# Plot the scatter plot\n",
"comic_con.plot.scatter(x='x_scaled', y='y_scaled', c=comic_con['cluster_labels'].apply(lambda x: colors[x]));"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Visualize clusters with seaborn\n",
"Let us now visualize the footfall dataset from Comic Con using the seaborn module. Visualizing clusters using seaborn is easier with the inbuild ```hue``` function for cluster labels."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEHCAYAAABBW1qbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3deXxcVf3/8ddnluxJ0yTdaLpChVIopS2bCIKIlKoFy1ZWQaQICiguiPgTZVG+LCr9slSWAmUpIApW2RH5VkELRaBSWmwpLU3XNGn2bSZzfn/MdMgyTSbJTCbL+/l45MHce0/OfG4unc/cc849x5xziIiIAHhSHYCIiPQdSgoiIhKlpCAiIlFKCiIiEqWkICIiUb5UB9AdRUVFbvz48akOQ0SkX3n77bd3OueGdVSmXyaF8ePHs2LFilSHISLSr5jZxs7KqPlIRESilBRERCRKSUFERKL6ZZ9CLIFAgJKSEhoaGlIdisSQkZFBcXExfr8/1aGISAcGTFIoKSkhNzeX8ePHY2apDkdacM5RVlZGSUkJEyZMSHU4ItKBAdN81NDQQGFhoRJCH2RmFBYW6i5OpB8YMHcKgBJCH6ZrI8nkQiFcczMA5vNiNmC+7/a6AZUURGTwCQWDNFWUU79jKxhkDt+LtCFD8fj08dYd+quJSL/W3FBP3ZZPott1mzfizcjE48vpUb2h5mYIhQAHXh80N4dfezx4vN376AwFgxBZw8Z8Xlxwd51ePF5vj+JNFN1jJdnPf/5zbr311i7/XkVFBXfddVfC4hg/fjw7d+7ssExOTtf+EXX33EQSqamiLK59XREKBqjbuomKNSup3baZ5toaqj5aQ8XqldRu2kAoEOh6nYEmajd9TMXq96ha/yHB2lpqt3xCxZr/UL99M6Fg1+tMBiWFPqo7ScE5RygUSlJEIn2TNzO73T5fZjahYKBbH97OhWgs30lT+U5wjsyCYVRvWEuoqRGAQFUFddtKwncSMYSCQUKBJkKBJnavbOmam6nd/AmB6spwmcYGajasI6NoODhH484dNFVW0BdWwlRSSLDFixczdepUDjroIM4999xWx4455pjonE07d+5k96R+q1at4tBDD2XatGlMnTqVtWvX8uMf/5iPPvqIadOm8cMf/hCAW265hUMOOYSpU6dy7bXXArBhwwYmT57MpZdeyvTp09m0aVOnMZ588snMmDGDKVOmcM8997Q69v3vf5/p06dz3HHHUVpaCsBHH33ErFmzmDFjBkcddRRr1qxpV+eCBQvYf//9mTp1KvPmzevaH02kB9KG5OPL+vQu15edgyc9nYoP3qP64//S3Ni1UW+uuZlAVQUA5vUSav60yWe3QHUVLtQ+KYQCTdR8sp6K1SupXLuaQE0VoVAzLtRMoKaq9fuEmlvV21S5K9pZnkrqU0igVatWceONN/L6669TVFREeXk5CxYs6PT3Fi5cyBVXXMHZZ59NU1MTzc3N3HTTTbz//vu8++67ALz00kusXbuWN998E+ccc+bMYdmyZYwdO5YPP/yQBx54IO47i0WLFlFQUEB9fT2HHHIIp5xyCoWFhdTW1jJ9+nRuu+02rrvuOn7xi19wxx13MH/+fBYuXMikSZNYvnw5l156Ka+++mqrOm+66SY+/vhj0tPTqaio6PofT6SbPD4/2eMmRtr/IVhfR82Gj4Bwf0PNxo/InfAZPHE+OGkeL97MLIJ1tbjm5pj9B76MTMzT+jt1qLmZuq0lBCMf/i4YoGbDOvL3OxDMgy8ji2BdTct3alWHLyurXZ0QbgFwwSDOhTDzYD5fUkfzKSkk0Kuvvsqpp55KUVERAAUFBXH93hFHHMGNN95ISUkJc+fOZdKkSe3KvPTSS7z00kscfPDBANTU1LB27VrGjh3LuHHjOPzww+OOc8GCBTz99NMAbNq0ibVr11JYWIjH4+GMM84A4JxzzmHu3LnU1NTwxhtvcNppp0V/v7GxsV2dU6dO5eyzz+bkk0/m5JNPjjsWkZ4KBQPUb99KU/lOcid+htpP1rc63txQ3+6bfkfM4yFz+CiCtTU0N9TTVFVB5qhi6rdtBufw+NPIGj22fbIINROorW69zzmam5rwZ+eQXTyeqvUf4oIBMCNr1Bgad4X7PryZWWQUjoiZFEKNDVRvWEeoqRGPP42ccXvjzcxKWmJQUkgg51yHF8rn80Xb/Fs+yHXWWWdx2GGH8eyzz3LCCSdw3333MXHixHZ1X3311Vx88cWt9m/YsIHs7PZtqnvy2muv8corr/DPf/6TrKwsjjnmmD0+VGZmhEIh8vPzo3cse/Lss8+ybNkyli5dyvXXX8+qVavwaUig9IJgbQ1N5eGmTlwI8/pwzcHocU9aOnTxA9TjTyN3wmdwoWbMPDiPh7T8AgiFMI8H87W/6zCPF19mNoFARZu6wmU96ekMmTQZFwqBxwNm+EP5ZAwbiXk8eGLUGQoEqNn4UbQ/IxRoonrDWoZM2h/zp3XpnOKlPoUEOu6443jyyScpKwtn//Ly8lbHx48fz9tvvw3AU089Fd2/fv16Jk6cyOWXX86cOXNYuXIlubm5VFd/+q3jhBNOYNGiRdTUhG8/N2/ezI4dO7ocY2VlJUOHDiUrK4s1a9bwr3/9K3osFApF43rsscf43Oc+R15eHhMmTOD3v/89EE5O7733Xqs6Q6EQmzZt4thjj+Xmm2+moqIiGqdIsjVVffoh3FC6nezicVjkW7z5/OSM2xvrxhcUj9+PNz0DT1oaXp8Prz8tvO1Pi/nlz7xesvYagzc9I7LD0zoWMzyROrz+NLw+P960NLxp6TETAhC+02jTJ+KCQVwoeR3S+iqXQFOmTOGaa67h85//PF6vl4MPPpiWK8T94Ac/4PTTT+fhhx/mC1/4QnT/E088wSOPPILf72fkyJH87Gc/o6CggCOPPJIDDjiAE088kVtuuYXVq1dzxBFHAOHho4888gjeLo5tnjVrFgsXLmTq1Knsu+++rZqdsrOzWbVqFTNmzGDIkCE88cQTADz66KNccskl3HDDDQQCAebNm8dBBx0U/b3m5mbOOeccKisrcc7xve99j/z8/O78CUW6LC0vn6ZIM0ygpgoM8vbeD8wwj+HMCAWa2N2Gn+iH2sLPMzTjQiHM4yV34r6R9n8DrxePpwfPH5jhSc8g1CIxmM+HeZLXp2B9YQhUV82cOdO1XXlt9erVTJ48OUURSTx0jSQZQsEAdds2h4eQYqQXFpE5Yi88Pn+4+eWT9QQjbf1p+QVk7TVmz9/Mu/rezUEay0qp37YFcHjSM8idMAlvWnpC6odwn8juPgXz+8kdtzfezOxu9SmY2dvOuZkdldGdgoj0ax6fn6xRxWSN2CuyI/zEsXOOpsryaEIAaKooJy2/EG96erhvwOuL2bnbmVAgEB4+6rFWndihxgbqt20ma/S4hD2h7EnPIG/v/aJ3H+bza/SRxO+www5rNzro4Ycf5sADD0xRRCLJ5/H6oO1nsHMEatv3bQVrq2ks20GwtobciZ/BlxX/QA2A5qZGqj/6MNIkBemFw8kaVUzd1vAzQsH6unBncoKSgplhvbgOiZLCALN8+fJUhyDSJ5jHQ9qQoQQqd7Xa78vOobGiDBdqpmbTx+RN3DfuZxh2P4uwOyEANJbtIHfivuERRaEQablDoncJoWAQ1xzEhUJ4fL6kf8tPBCUFERmw/Dm5ZAwbScPOHZjHyBg2klBjAy4y/UW4A7cL/aqhEKGG+va7A014vD58uTnRIaahYIC6LZtoqgiPQjS/n7y990tof0MyKCmIyIDl8fnJGDGKjKLhOOeoL91GU1lp9Lg/Jw+6sPaCeb34hwylecfWFjsNX3YOefvs12oG1VCgKZoQAFwgQP32LWTtNbbPzIgai5KCiAxoHo8XPF6cc2QWjiBUX0ewvh5/Ti7ZxeO6NETVPJ5wggkGaawow+NPI3v0ODw+f7sO6+YYT/43NzaAC9G+A6Tv0MNrCfbCCy+w7777ss8++3DTTTelOhwRiTAzvBkZ5Izfh/z9DiB77AQ83Xgq2OPzkzmqmPx9DyBv4r74c3JjjmDyZWW3e5I6Pb8w+jBbX6WkkEDNzc18+9vf5vnnn+eDDz5gyZIlfPDBB6kOS0Ra8Pj8ePxp3V4oB8Dj9Ybr6KCD2uPzkzvxM3gzs/D4/WSM2Iu0/KHqaO6rGneVUb9tc7iDyJ9G5sjRpA8t7FGdb775Jvvss0903qJ58+bxpz/9if333z8RIYtIP2IeD970TLLHTADnIs9E9N1mo90GZVJo3FVGbcnGSNteZEWkko0APUoMmzdvZsyYMdHt4uJiDREVGaRCgQDVG9bRXF8b3mEehkyajDcjM7WBdSKpzUdmNsbM/mZmq81slZldEaOMmdkCM1tnZivNbHoyYwIiU+C2WaHMhcL7eyDWlCF9/VZRRJKjuanh04QA4ELUbdu8xxXb+opk3ykEge875/5tZrnA22b2snOuZUP7icCkyM9hwN2R/yZNywdP4tkfr+Li4lYrn5WUlLDXXnv1qE4R6Z9cMBh7Xx+fby6pdwrOua3OuX9HXlcDq4HRbYqdBCx2Yf8C8s1sVDLj2tOIg+6MRGjpkEMOYe3atXz88cc0NTXx+OOPM2fOnB7VKSL9ky8ru10fQsawEQmfpTXRem30kZmNBw4G2jayjwZaLixcQvvEgZnNN7MVZrZi99rB3ZU5cnT7B1bME97fAz6fjzvuuIMTTjiByZMnc/rppzNlypQe1Ski/ZP5/ORNmkxafgG+nFxyxu2NLzs31WF1qldSlpnlAH8Avuucq2p7OMavtLu/cs7dA9wD4amzexLP7s7kRI8+Apg9ezazZ8/ucT0i0r+ZGd70DLJGjwNcj4bA9qakR2lmfsIJ4VHn3B9jFCkBxrTYLga2JDuu9KGFCUkCIiId6ctTWsSS7NFHBtwPrHbO/XoPxZYC50VGIR0OVDrntu6hrIiIJFGy7xSOBM4F/mNmu1d+/wkwFsA5txB4DpgNrAPqgAuSHJOIiOxBUpOCc+4fxO4zaFnGAd9OZhwiIhIfzX0kIiJRSgoiIhKlpJBA3/jGNxg+fDgHHHBAqkMREekWJYUEOv/883nhhRdSHYaISLf1j6cpkiAZU2cfffTRbNiwITEBioikwKBMCsmaOltEpL8blM1HyZo6W0SkvxuUSSFZU2eLiPR3gzIpJGvqbBGR/m5QJoVkTZ195plncsQRR/Dhhx9SXFzM/fff36P6RER626DsaE7W1NlLlixJRHgiIikzKJMCaOpsEZFYBmXzkYiIxKakICIiUUoKIiISpaQgIiJRSgoiIhKlpJBAmzZt4thjj2Xy5MlMmTKF22+/PdUhiYh0yaAdkpoMPp+P2267jenTp1NdXc2MGTM4/vjj2X///VMdmohIXAbtncKzz7zMCZ89nYPGH8MJnz2dZ595ucd1jho1iunTpwOQm5vL5MmT2bxZk+yJSP8xKO8Unn3mZX7x41toqG8EYOvm7fzix7cA8OWTj0/Ie2zYsIF33nmHww47LCH1iYj0hkF5p7Dg5nujCWG3hvpGFtx8b0Lqr6mp4ZRTTuG3v/0teXl5CalTRKQ3DMqksG3Lji7t74pAIMApp5zC2Wefzdy5c3tcn4hIbxqUSWHkXsO7tD9ezjkuvPBCJk+ezJVXXtmjukREUmFQJoXLf3QRGZnprfZlZKZz+Y8u6lG9r7/+Og8//DCvvvoq06ZNY9q0aTz33HM9qlNEpDcNyo7m3Z3JC26+l21bdjByr+Fc/qOLetzJ/LnPfQ7nXCJCFBFJiUGZFCCcGBI10khEZKAYlM1HIiIS24BKCmq66bt0bUT6hwGTFDIyMigrK9OHTx/knKOsrIyMjIxUhyIinRgwfQrFxcWUlJRQWlqa6lAkhoyMDIqLi1Mdhoh0YsAkBb/fz4QJE1IdhohIvzZgmo9ERKTnlBRERCQqqUnBzBaZ2Q4ze38Px48xs0ozezfy87NkxiMiIh1Ldp/Cg8AdwOIOyvzdOfeVJMchIiJxSOqdgnNuGVCezPcQEZHE6Qt9CkeY2Xtm9ryZTUl1MCIig1mqh6T+GxjnnKsxs9nAM8CkWAXNbD4wH2Ds2LG9F6GIyCCS0jsF51yVc64m8vo5wG9mRXsoe49zbqZzbuawYcN6NU4RkcEipUnBzEaamUVeHxqJpyyVMYmIDGZJbT4ysyXAMUCRmZUA1wJ+AOfcQuBU4BIzCwL1wDynyYtERFImqUnBOXdmJ8fvIDxkVURE+oC+MPpIRET6CCUFERGJUlIQEZEoJQUREYlSUhARkSglBRERiVJSEBGRKCUFERGJ6vDhNTOb3tFx59y/ExuOiIikUmdPNN8W+W8GMBN4DzBgKrAc+FzyQhMRkd7WYfORc+5Y59yxwEZgemSW0hnAwcC63ghQRER6T7x9Cvs55/6ze8M59z4wLTkhiYhIqsQ7Id5qM7sPeARwwDnA6qRFJSIiKRFvUrgAuAS4IrK9DLg7KRGJiEjKxJUUnHMNZrYQeM4592GSYxIRkRSJq0/BzOYA7wIvRLanmdnSZAYmIiK9L96O5muBQ4EKAOfcu8D4JMUkIiIpEm9SCDrnKpMaiYiIpFy8Hc3vm9lZgNfMJgGXA28kLywREUmFeO8ULgOmAI3AEqAK+G6yghIRkdSId/RRHXBN5EdERAaozibE+zPhh9Vics7NSXhEIiKSMp3dKdzaK1GIiEif0GFScM79X28FIiIiqRdXn0JkxNGvgP0JT6MNgHNuYpLiEhGRFIh39NEDhOc6CgLHAouBh5MVlIiIpEa8SSHTOfdXwJxzG51zPwe+kLywREQkFeJ9eK3BzDzAWjP7DrAZGJ68sEREJBXivVP4LpBF+EnmGYTXU/h6soISEZHUiPfhtbciL2sIr60gIiIDULxTZ79sZvkttoea2YvJC0tERFIh3uajIudcxe4N59wu1KcgIjLgxJsUQmY2dveGmY2jg+kvRESkf4p39NE1wD/MbPcTzkcD85MTkoiIpEq8Hc0vmNl04HDAgO8553YmNTIREel18XY0HwnUO+f+AgwBfhJpQurs9xaZ2Q4ze38Px83MFpjZOjNbGUk8IiKSIvH2KdwN1JnZQcAPgY2Ep7rozIPArA6OnwhMivzMj7yPiIikSFfWaHbAScAC59ztQG5nv+ScWwaUd1DkJGCxC/sXkG9mo+KMSUREEizepFBtZlcTfpL5WTPzAv4EvP9oYFOL7ZLIvnbMbL6ZrTCzFaWlpQl4axERaSvepHAG4fWZL3TObSP8wX1LAt7fYuyLOdTVOXePc26mc27msGHDEvDWIiLSVryjj7YBv26x/Qkt+hTM7J/OuSO68f4lwJgW28XAlm7UIyIiCRDvnUJnMjovEtNS4LzIKKTDgUrn3NYExSQiIl0U78NrnYnZ5GNmS4BjgCIzKwGuJdIX4ZxbCDwHzAbWAXVosj0RkZRKVFKIyTl3ZifHHfDtZMYgIiLxi/fhte+Y2dCOiiQoHhERSaF4+xRGAm+Z2ZNmNsvM2iaBcxMcl4iIpEBcScE591PCTx3fD5xPeFnOX5rZ3pHjMaexEBGR/iXu0UeR9v9tkZ8gMBR4ysxuTlJsIiLSy+LqaDazywmvybwTuA/4oXMuYGYeYC3wo+SFKCIivSXe0UdFwFzn3MaWO51zITP7SuLDEhGRVIj3ieafdXBsdeLCERGRVErUE80iIjIAKCmIiEiUkoKIiEQpKYiISJSSgoiIRCkpiIhIlJKCiIhEKSmIiEiUkoKIiEQpKYiISJSSgoiIRCkpiIhIlJKCiIhEKSmIiEiUkoKIiEQpKYiISJSSgoiIRCkpiIhIlJKCiIhEKSmIiEiUkoKIiEQpKYiISJSSgoiIRCkpiIhIlJKCiIhEKSmIiEiUkoKIiEQlPSmY2Swz+9DM1pnZj2McP9/MSs3s3cjPN5Mdk4iIxOZLZuVm5gXuBI4HSoC3zGypc+6DNkWfcM59J5mxiIhI55J9p3AosM45t9451wQ8DpyU5PcUEZFuSnZSGA1sarFdEtnX1ilmttLMnjKzMbEqMrP5ZrbCzFaUlpYmI1YRkUEv2UnBYuxzbbb/DIx3zk0FXgEeilWRc+4e59xM59zMYcOGJThMERGB5CeFEqDlN/9iYEvLAs65MudcY2TzXmBGkmMSEZE9SHZSeAuYZGYTzCwNmAcsbVnAzEa12JwDrE5yTCIisgdJHX3knAua2XeAFwEvsMg5t8rMrgNWOOeWApeb2RwgCJQD5yczJhER2TNzrm0Tf983c+ZMt2LFilSHISLSr5jZ2865mR2V0RPNIiISldTmo8GosqKahoYGPB4P+UPz8Pv9qQ5JRCRuulNIoLLScq7+7vUcf9ipzD3+fP764t+pralLdVgiInFTUkiQxoYm7r3zEf7xt+UAVFZUcdV3rqOyoirFkYmIxE9JIUFqamr51z9ad34751i/bmOKIhIR6Tr1KSRIdnYmxx5/JPMvO4+Ro4aDwUt/eY1xE4q7XFdNTS211XU0NzeTmZXJ0IIhSYhYRKQ9JYUEycjM4PRzTuaKi65hzaq1+NP8XHrlBWRlZ3WpnopdVTyw8DEW3/skzc3NzDjsIG658+cUDStIUuQiIp9S81GC1Nc3cPdvH2TNqrUABJoC3H7TPdTVdq2jeUvJVh5YuITm5mYA3l7+Hk89upRgMJjwmEVE2lJSSJC62npWvrOq3f6NH5d0qZ5VKz9st+/tN9+jvq6h27GJiMRLSSFBcnKzOPLzh7ba5/F4mDhpXJfqmX7o1Hb7Pv/FI8nKzuxRfCIi8VBSSJD09HS+cclZHDfraDweDwVFQ7nt7uvIz8/rUj3Dhhdy7U0/IDcvB5/Py9fOmM2XT/oiXq83SZGLiHxKcx8lWHVVDQ31DZgZ+QX5+Hxd/zBvagpQVVGFA7KyMsnO6VpntYhILPHMfaTRRwmWm5dDbl5Oj+pIS/NTNLwwQRGJiMRPzUciIhKlpCAiIlGDqvmoqrKa8rIK1q75iP2mTGJoQT45udmpDov6unoqdlWxauUaxowfzYiRw8gfGn6Kuba2jorySla//1/GTxzLsBGFDIl0XtdU17KrvII1q9ayz2cmUDisgLwhuak8FRHp5wZNUqivq+fpJ57lthvvju677parmH3yF0lLS0thZPCf99Zw8dnfjz6wdupZc7jiqvnk5Gbx5hvv8N2LrmH3gIALvnUm3/zOOWSkp/PaK6/zk+/eGK3niqvmc+bX52r4qoh026AZfbRjWymzjz6Lpsam6L7cvByeeWUxw0akrlO3bOcuLpx3BevXtp4478U3nsSf5ufMr8xn+7bS6H6Px8OLbzyJx+vha1/8OlWV1dFj/jQ/z/19CSNGDuu1+EWk/9DKay00N4daJQQIN7+kOimGQiHKd1a0299Q3wDOUV5e0a58U1MA5xw11bWtjgWaAjQHm5Mar4gMbIMmKWRkZnDwzANb7Tvm+CPJzEpvVzbQFGDblu08vvhpnvvTK+zcUZa0uPLycvnaGbNb7Rs9ZiS5Q3LJys5iztwTWh3b5zMTyMrOJDMzg+NmHd3q2NTpU8jMykharCIy8A2a5iOAnTvKeOB3S3h7+Uo+e/QhnP2NUyksGtqu3MaPN3HarAtpaGgEYPSYUTz89F1Jm6l0V3kFf/7Di7zw51fZZ9+JXPK98xm11wgAyssq+MOSv/Dqi39nytR9ueiyc6PNQ2U7d7HkoT/yj78tZ/ohB3LBJWcxTM83iMgexNN8NKiSAkBjYyN1tfVk52STltZ+/eTGhkauv+bXLH3qhVb7b1t4Hcef+PluvWc8mpubqaqsJjMzg4zM1t/2g8Eg1VU1ZGZmkpHZ+s4m0BSgpqaWrOxM0tM/PbarvJL/rl7HP/++gs8efQifmbx3dESTiAxOeqI5hvT09FYfnm2FQqF2bfUAdUlea9nr9TK0ID/mMZ/Pt8dj/jR/u2O1NXXce8fDPHL/7wFYdPdjnH/xPC6+4utkd3F9BxEZXAZNn0JbjY1NfLJhM7feeBd3/eYBtm3ZTjAYJDMrk29cclarsjm52Rx+VIfJtctKt5fx4O8e51fX3s7aNeupTWDSqamp5fGH/thq3yOLnqK2uv17NDQ0svHjTdx6/Z0svP0htm/dQSgUSlgsItK/DLo7hd22bdnO3C9dQKApAMCji57ijy8/yIiRw9h7n3E8tnQhD93zBEPy87jgW2dSWJS4/oSdpeWc87VL2Lp5OwCPP/Q0D/x+AdMPaT9tdrc4CIVaNwu6kMPRvqlw86atnDbrGwQjo5YeXfQUf3jpAYaPKOry24ZCIZqbm/H72zfLiUj/MCjvFILBIIvvfTKaECA8u+mrL/wdgOzcbA44aDI33HY1V/38MkaPGdWt2U735L+rP4omBADnHHf/5sFWzxz0RFZ2Jl+Z+6VW++acekK7pqOmpiYW3fVYNCEAVFZU8Y+/Le/ye5ZuL+O+Ox/hp1f+ijf/+U7CzkVEetegvVMwsxg7W2+mZ+y576EjVZXVpKWnkbGH34/13mYWO6ZuyM3L4cqfXMLhn5vBP/62nKOPO4IjjpoZc0oPjydGLDH2dWRnaTkXnH4Zn2zYDMDzS//Kr377U0486Tg8nvD3jkAgQDAQbp4Tkb5rUN4p+Hw+zvvm6aSlfzq9Rd6QXL5wwlE9qndnaTmvvfw6P73yl9x2w11s3rQtZvv8pP0mMnrMyOi2mXHplRf0eMrtlgoK8/nK177EDb++mtknfTFmR3VaWhoXXHIWPv+n3w2GFgxpt4JcZ3ZsK40mhN3uu/MRdpVX4pxj25bt3HrDXVx12XW8sewt3UWI9GGD9k5hxF7DeeaVh3j6iWfJyMxgzikn9Og5hFAoxBvL3uKnV/4yuu+vLy5jydLfMWLU8FZli4YVsPiPd/HSs39j6+btfO30LzNy9PC2VSaEz9fxJR5dPJI/vbKYPz7xF3LycvjK177U4d+hqbGJ+oYGcnNzoncBsd4jLd2PmVFWWs68r15M+c5dALz2yhvcdvd1HD87ecN7RaT7Bm1SSE9Po3jsXlz2w4sSUl/p9p089sAfWu3buaOc9es2tksKEF528+wLTk3Ie/dEekY6Y8aP5oqrLu607Ih+V/cAAArWSURBVPatpdx35yOs++/HfPnk4zlu1tEMLRhC0bACDpw2mf+8uxoI3/lc8aP5FBTm869/rIgmhN0e/N0SZh4+jaEFem5CpK8ZtEkh0bw+b8zZSbOyBsZzATtLyzn/tMvYvGkrAG8vf4/SHWVceOnZFBQNZcH9v+Lt5e+xft1GvjT789FEmBXjuYis7CytOS3SRw3KPoVkKBpWyOU/uqjVKKUDDtqPUUlqFuptlbuqoglhtycf+RNVFVUAFBYN5UtfPoZvXfF1Jk4aH11XevSYUex/4L7R3/H5fXzv6ovJG5K4/hMRSRzdKcSpurqGxoYmcvNySE+Pvf7C3pPG88xfF/PaK29QPGYUBxy0H8MHyDTW6Rntzzk/Pw/zdPy9orBoKHc++D+sem8NWzZv46hjD6cwSXNIiUjPKSl0wjnH5k1bufm6O/jovxs4btZRnD9/HgUxJtLLzcshNy+H8755egoiTa6c3Gy+fPIXefaZV4DwtBw//sXlMScUbKuwaChHH3dEskMUkQRI+oR4ZjYLuB3wAvc5525qczwdWAzMAMqAM5xzGzqqsycT4nXVztLydgvdnHrmV/nhz77dJ8bc19bUUVdXT0ZGekKHtMayq7yCzZu28vFHnzD9kKkUFOa3+htU7KokEAiSl5cb885CRFIr5YvsmJkXuBM4EdgfONPM9m9T7EJgl3NuH+A3wP8kM6auqqmuaZUQAJ7/81+pSfIEefHYsX0nv7j6Fk478UKuvuIGtpRsS+r7DS3I54CDJvPVuScwesyoaEIIBAKs+WAtl114NfO+fBH/e+u9lJe1XzhIRPq+ZDcfHQqsc86tBzCzx4GTgA9alDkJ+Hnk9VPAHWZmro/M6Z2WloaZtVqhbdReIyDF4VXsquIn372BN994B4Blr/6Tkk1buP/x2+Nq0kmkXeWVnH/qZdTV1gOw+N4n8fv9XPK9C2JOTy4ifVeyRx+NBja12C6J7ItZxjkXBCqBPrNSTMg5zv3madHttPQ0Lr/qopRP+tbU2BhNCLutX7sxvIxnL9u8aWs0Iez2wp9f1ZPLIv1Qsu8UYk2i0/YrdjxlMLP5wHyAsWPH9jyyOPl9PgqLhvLg7/+X7dtKGV08kpef/z+mHjyl12KIxePxMGx4IaUtlgrNzMrEn4Jv5rFmkB03oZi0NPUriPQ3yb5TKAHGtNguBrbsqYyZ+YAhQHnbipxz9zjnZjrnZg4b1nvDPLNzssCMb537A269/k6+dd4PmfXV4ygojL3oTW8ZWpjPjb/5SXT+Jq/Xy//75ZUMGZLb67EMyc/jvIvOiG7nDx3CVT+/XM8iiPRDSR19FPmQ/y9wHLAZeAs4yzm3qkWZbwMHOue+ZWbzgLnOuQ7HdPbm6CMIP6NQU1VLeVkFw0cUkl8wJOXNRxBeIKeqsprS7TspHFZAXl5OzCeIe0NVZTXV1bVUVVRRNLyQgsJ8PbUs0sekfDlO51zQzL4DvEh4SOoi59wqM7sOWOGcWwrcDzxsZusI3yHMS2ZM3ZGbm0Nubg6jRo9IdSitZGSkk5GR3q0FcRItb0gueUNyGV08svPCItJnJf3hNefcc8Bzbfb9rMXrBuC0tr8nIiK9T3MfiYhIlJKCiIhEKSmIiEiUkoKIiEQpKYiISJSSgoiIRCV96uxkMLNSYGOq4+hAEbAz1UH0Ap3nwDIYznMwnCPs+TzHOec6nBKiXyaFvs7MVnT21OBAoPMcWAbDeQ6Gc4Senaeaj0REJEpJQUREopQUkuOeVAfQS3SeA8tgOM/BcI7Qg/NUn4KIiETpTkFERKKUFEREJEpJoZvMbJaZfWhm68zsxzGOn29mpWb2buTnm6mIs6fMbJGZ7TCz9/dw3MxsQeTvsNLMpvd2jIkQx3keY2aVLa7nz2KV68vMbIyZ/c3MVpvZKjO7IkaZfn894zzPgXA9M8zsTTN7L3Kev4hRJt3Mnohcz+VmNr7Tip1z+uniD+EFgz4CJgJpwHvA/m3KnA/ckepYE3CuRwPTgff3cHw28DzhtbYPB5anOuYknecxwF9SHWcPz3EUMD3yOpfwqoht/7/t99czzvMcCNfTgJzIaz+wHDi8TZlLgYWR1/OAJzqrV3cK3XMosM45t9451wQ8DpyU4piSwjm3jBhrZrdwErDYhf0LyDezUb0TXeLEcZ79nnNuq3Pu35HX1cBqYHSbYv3+esZ5nv1e5BrVRDb9kZ+2I4dOAh6KvH4KOM7MrKN6lRS6ZzSwqcV2CbH/pzslcgv+lJmN6Z3Qel28f4uB4IjIrfrzZjYl1cH0RKQZ4WDC3y5bGlDXs4PzhAFwPc3Ma2bvAjuAl51ze7yezrkgUAkUdlSnkkL3xMq0bTP0n4HxzrmpwCt8mq0Hmnj+FgPBvwnPG3MQ8L/AMymOp9vMLAf4A/Bd51xV28MxfqVfXs9OznNAXE/nXLNzbhpQDBxqZge0KdLl66mk0D0lQMtv/sXAlpYFnHNlzrnGyOa9wIxeiq23dfq3GAicc1W7b9VdeN1xv5kVpTisLjMzP+EPykedc3+MUWRAXM/OznOgXM/dnHMVwGvArDaHotfTzHzAEDppJlVS6J63gElmNsHM0gh34CxtWaBNO+wcwu2aA9FS4LzIqJXDgUrn3NZUB5VoZjZyd1usmR1K+N9OWWqj6ppI/PcDq51zv95DsX5/PeM5zwFyPYeZWX7kdSbwRWBNm2JLga9HXp8KvOoivc574kt0oIOBcy5oZt8BXiQ8EmmRc26VmV0HrHDOLQUuN7M5QJBwZj4/ZQH3gJktITxSo8jMSoBrCXdo4ZxbCDxHeMTKOqAOuCA1kfZMHOd5KnCJmQWBemBeZ/+4+qAjgXOB/0TaoQF+AoyFAXU94znPgXA9RwEPmZmXcFJ70jn3lzafQ/cDD5vZOsKfQ/M6q1TTXIiISJSaj0REJEpJQUREopQUREQkSklBRESilBRERCRKSUFERKKUFER6QWSq5r908XdeM7OZyYpJJBYlBRERiVJSkEHLzA6JzGKbYWbZkYVK2k4ohpmNMrNlkcVY3jezoyL7Z5nZvyMzbf41su9QM3vDzN6J/HffGPVlW3hRn7ci5U6K7M80s8cjMT0BZCb5TyDSjqa5kEHLOfeWmS0FbiD8AfyIcy7WymtnAS86526MTCmQZWbDCE90eLRz7mMzK4iUXRPZFzSzLwK/BE5pU981hOeg+UZk7po3zewV4GKgzjk31cymEp7JU6RXKSnIYHcd4QkOG4DL91DmLWBRZObNZ5xz75rZMcAy59zHAM653TNPDiE8H80kwlMU+2PU9yVgjpn9ILKdQXhenqOBBZH6VprZyp6enEhXqflIBrsCIIfwso0ZsQpEVmU7GthMeHKx8wjPUx9r4rDrgb855w4AvrqHOg04xTk3LfIz1jm3exZdTUYmKaWkIIPdPcD/Ax4F/idWATMbB+xwzt1LeNbJ6cA/gc+b2YRImd3NR0MIJw/Y88y4LwKXtZi6+eDI/mXA2ZF9BwBTu31WIt2kpCCDVuQbf9A59xhwE3CImX0hRtFjgHfN7B3C/QO3O+dKgfnAH83sPeCJSNmbgV+Z2euEp1WP5XrCzUorzez9yDbA3UBOpNnoR8CbPT1Hka7S1NkiIhKlOwUREYnS6CORCDM7EHi4ze5G59xhqYhHJBXUfCQiIlFqPhIRkSglBRERiVJSEBGRKCUFERGJ+v83Nklqyj2PRAAAAABJRU5ErkJggg==\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Plot a scatter plot using seaborn\n",
"sns.scatterplot(x='x_scaled', y='y_scaled', hue='cluster_labels', data=comic_con)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## How many clusters?\n",
"- Introduction to dendrograms\n",
" - Strategy till now - decide clusters on visual inspection\n",
" - Dendrograms help in showing progressions as clusters are merged\n",
" - A dendrogram is a branching diagram that demonstrates how each cluster is composed by branching out into its child nodes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create a dendrogram\n",
"Dendrograms are branching diagrams that show the merging of clusters as we move through the distance matrix. Let us use the Comic Con footfall data to create a dendrogram.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from scipy.cluster.hierarchy import dendrogram\n",
"\n",
"# Create a dendrogram\n",
"dn = dendrogram(distance_matrix)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Limitations of hierarchical clustering\n",
"- Comparison of runtime of linkage method\n",
" - Increasing runtime with data points\n",
" - Quadratic increase of runtime\n",
" - Not feasible for large datasets"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Timing run of hierarchical clustering\n",
"In earlier exercises of this chapter, you have used the data of Comic-Con footfall to create clusters. In this exercise you will time how long it takes to run the algorithm on DataCamp's system.\n",
"\n",
"Remember that you can time the execution of small code snippets with:\n",
"```python\n",
"%timeit sum([1, 3, 2])\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"459 µs ± 377 ns per loop (mean ± std. dev. of 7 runs, 1000 loops each)\n"
]
}
],
"source": [
"%timeit linkage(comic_con[['x_scaled', 'y_scaled']], method='ward', metric='euclidean')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### FIFA 18: exploring defenders\n",
"In the FIFA 18 dataset, various attributes of players are present. Two such attributes are:\n",
"\n",
"- sliding tackle: a number between 0-99 which signifies how accurate a player is able to perform sliding tackles\n",
"- aggression: a number between 0-99 which signifies the commitment and will of a player\n",
"These are typically high in defense-minded players. In this exercise, you will perform clustering based on these attributes in the data.\n",
"\n",
"This data consists of 5000 rows, and is considerably larger than earlier datasets. Running hierarchical clustering on this data can take up to 10 seconds."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- Preprocess"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"