{ "cells": [ { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:47:32.830267Z", "start_time": "2017-05-12T18:47:32.825599+02:00" } }, "source": [ "# Linkage Clustering" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Modified version of \n", "\n", "https://joernhees.de/blog/2015/08/26/scipy-hierarchical-clustering-and-dendrogram-tutorial/\n", "\n", "by Jörn Hees" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2017-05-15T06:39:27.481737Z", "start_time": "2017-05-15T08:39:27.476533+02:00" } }, "outputs": [], "source": [ "from matplotlib import pyplot as plt\n", "from scipy.cluster.hierarchy import dendrogram, linkage\n", "import numpy as np\n", "\n", "# some setting for this notebook to actually show the graphs inline, you probably won't need this\n", "%matplotlib inline\n", "np.set_printoptions(precision=5, suppress=True) # suppress scientific float notation" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2017-05-15T06:39:28.032301Z", "start_time": "2017-05-15T08:39:27.914444+02:00" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(150, 2)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# generate two clusters: a with 100 points, b with 50:\n", "np.random.seed(4711) # for repeatability of this tutorial\n", "a = np.random.multivariate_normal([10, 0], [[3, 1], [1, 4]], size=[100,])\n", "b = np.random.multivariate_normal([0, 20], [[3, 1], [1, 4]], size=[50,])\n", "X = np.concatenate((a, b),)\n", "print X.shape # 150 samples with 2 dimensions\n", "plt.scatter(X[:,0], X[:,1])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Perform the Hierarchical Clustering\n", "\n", "Now that we have some very simple sample data, let's do the actual clustering on it:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2017-05-15T06:39:29.302548Z", "start_time": "2017-05-15T08:39:29.297667+02:00" }, "collapsed": true }, "outputs": [], "source": [ "# generate the linkage matrix\n", "Z = linkage(X, 'single') # also 'max' ' ward'" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:16:20.880113Z", "start_time": "2017-05-12T18:16:20.873750+02:00" } }, "outputs": [ { "data": { "text/plain": [ "array([ 52. , 53. , 0.04151, 2. ])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Z[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that ach row of the resulting array has the format [idx1, idx2, dist, sample_count].\n", "\n", "In its first iteration the linkage algorithm decided to merge the two clusters (original samples here) with indices 52 and 53, as they only had a distance of 0.04151. This created a cluster with a total of 2 samples." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:16:39.950594Z", "start_time": "2017-05-12T18:16:39.943834+02:00" } }, "outputs": [ { "data": { "text/plain": [ "array([ 14. , 79. , 0.05914, 2. ])" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Z[1]" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:16:33.711697Z", "start_time": "2017-05-12T18:16:33.703018+02:00" } }, "source": [ "In the second iteration the algorithm decided to merge the clusters (original samples here as well) with indices 14 and 79, which had a distance of 0.04914. This again formed another cluster with a total of 2 samples.\n", "\n", "The indices of the clusters until now correspond to our samples. Remember that we had a total of 150 samples, so indices 0 to 149. Let's have a look at the first 20 iterations:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:19:06.050245Z", "start_time": "2017-05-12T18:19:06.039065+02:00" } }, "outputs": [ { "data": { "text/plain": [ "array([[ 52. , 53. , 0.04151, 2. ],\n", " [ 14. , 79. , 0.05914, 2. ],\n", " [ 33. , 68. , 0.07107, 2. ],\n", " [ 17. , 73. , 0.07137, 2. ],\n", " [ 1. , 8. , 0.07543, 2. ],\n", " [ 85. , 95. , 0.10928, 2. ],\n", " [ 108. , 131. , 0.11007, 2. ],\n", " [ 9. , 66. , 0.11302, 2. ],\n", " [ 15. , 69. , 0.11429, 2. ],\n", " [ 63. , 98. , 0.1212 , 2. ],\n", " [ 107. , 115. , 0.12167, 2. ],\n", " [ 65. , 74. , 0.1249 , 2. ],\n", " [ 41. , 158. , 0.13314, 3. ],\n", " [ 58. , 61. , 0.14028, 2. ],\n", " [ 62. , 152. , 0.14862, 3. ]])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Z[:15]" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:17:34.471964Z", "start_time": "2017-05-12T18:17:34.463364+02:00" } }, "source": [ "We can observe that until iteration 13 the algorithm only directly merged original samples. We can also observe the monotonic increase of the distance.\n", "\n", "In iteration 13 the algorithm decided to merge cluster indices 62 with 158. If you paid attention the 152 should astonish you as we only have original sample indices 0 to 149 for our 150 samples. All indices idx >= len(X) actually refer to the cluster formed in Z[idx - len(X)].\n", "\n", "This means that while idx 149 corresponds to X[149] that idx 150 corresponds to the cluster formed in Z[0], idx 151 to Z[1], 152 to Z[2], ...\n", "\n", "Hence, the merge iteration 13 merged sample 41 to our samples 15 and 69 that were previously merged in iteration 8.\n", "\n", "Let's check out the points coordinates to see if this makes sense:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:22:15.678823Z", "start_time": "2017-05-12T18:22:15.673902+02:00" } }, "outputs": [ { "data": { "text/plain": [ "array([[ 8.81583, -0.56394],\n", " [ 8.72437, -0.73102],\n", " [ 8.6953 , -0.62049]])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X[[41, 15, 69]]" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:23:27.008498Z", "start_time": "2017-05-12T18:23:27.001613+02:00" } }, "source": [ "Seems pretty close..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting a Dendrogram" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:23:44.976982Z", "start_time": "2017-05-12T18:23:44.969408+02:00" } }, "source": [ "A dendrogram is a visualization in form of a tree showing the order and distances of merges during the hierarchical clustering." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:24:09.981641Z", "start_time": "2017-05-12T18:24:09.249043+02:00" } }, "outputs": [ { "data": { "image/png": "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\nxcy2tri689zfNXYleXWSW3b3jZK8aN189uet09zm2fYjmW0ZcvTqg5rdpG9l9XF3f6C7H5rZFie/\nleTlVXX9XPn9WPWxJI9Z975fr7vfsuacfb1uHp9Mcos186y1j+cx7ef8gMy2GFmd77PXzffo7l6/\n/cj+5nPLNY9P2Mc56z8zl2UWw9e+ZvUzeaWfb921v+Z603Yjf5vZljI3nX5Z8/eZ7zMCAMCCCNMA\nAEe2FyV59uoWElW1UlUPPMD5x2S2hcNnMou0zznQxaetGU5J8vyqutm04vou6/YmnsdLk9yzqn6y\nqrZU1TdU1epWEcckubC7v1hV35tZPD+o7v5cZvsJ/+F0s7ujq+o60+ra5+3jJf+a5Kia3WzxOkme\nluT//xxV9bCqWpl+5oumw1/J7CaCX81sv+RVL0ry5JpuHDnd7O8n5nwvDuY1Sb5j+pm2JHlsZnso\nH9T0839rZtuhHJ9k9QaOf5rk56fV6VVV15/eh2PmuOxpSR5RVd9WVUcnecaBTp5WLp+W2efymOmz\n+WtJVm+EeVqSx1XVzavq2CS/cZDxr5vZ39PeJJdX1X2S3HuOeQMAsEDCNADAke2Fma02fl1VXZLk\nbZndcG9//iKzbRU+nuR90/kH84Qk703yz5ltDfFbuYr/HdrdH81s+4XHT9fYkyv2ov7FJL85zf/p\nueKmg/Nc9/mZRc+nZRYuP5bkl5K8ch/nfm4a68WZ/fyX5spbZJyU5Jyq+o/M3teHdPcXu/vzmd3Y\n75+mbTDu3N2vyOx9+KtpS5SzM7uh39XW3Rck+Ykkz8vsFwjflmR3Zr9Q2J+fmuZ9UWafh88k+e7u\n/sR0zd2Z7TP9B5ndIPPfMt3ccI75vDbJC5K8cXrdG+d42S9n9v5+KLObIe7K7BccySySvy7Je5K8\nK7PVz5dn9kuAfY1/SWY3+TxtmvvJ088IAMAS1WzLOQAAYDOatuU4L8lPd/c/Lns+h9u0AvpF3X2r\ng54MAMCGYcU0AABsMlX1I1V17LRlylMy2095ntXtG15VXa+q7jtt6XLzzLYGecWy5wUAwFUjTAMA\nwOZzlyQfzOxGgg9I8qDu/sJyp3TYVJJnZbYtx7uSnJvZFi4AAFyD2MoDAAAAAIChrJgGAAAAAGAo\nYRoAAAAAgKG2LHsC8zjuuOP6xBNPXPY0AAAAAAA4gLPOOuuC7l452HnXiDB94oknZvfu3cueBgAA\n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\nFdPd/dB9HP6zRY0HAAAAAMA1w1JufggAAAAAwJFLmAYAAAAAYChhGgAAAACAoYRpAAAAAACGEqYB\nAAAAABhKmAYAAAAAYChhGgAAAACAoYRpAAAAAACGEqYBAAAAABhKmAYAAAAAYChhGgAAAACAoYRp\nAAAAAACGEqYBAAAAABhKmAYAAAAAYChhGgAAAACAoYRpAAAAAACGEqYBAAAAABhKmAYAAAAAYChh\nGgAAAACAoYRpAAAAAACGEqYBAAAAABhKmAYAAAAAYChhGgAAAACAoYRpAAAAAACGEqYBAAAAABhK\nmAYAAAAAYChhGgAAAACAoYRpAAAAAACGEqYBAAAAABhKmAYAAAAAYChhGgAAAACAoYRpAAAAAACG\nEqYBAAAAABhKmAYAAAAAYChhGgAAAACAoYRpAAAAAACGEqYBAAAAABhKmAYAAAAAYChhGgAAAACA\noYRpAAAAAACGEqYBAAAAABhKmAYAAAAAYChhGgAAAACAoYRpAAAAAACGEqYBAAAAABhKmAYAAAAA\nYChhGgAAAACAoYRpAAAAAACGEqYBAAAAABhKmAYAAAAAYChhGgAAAACAoYRpAAAAAACGEqYBAAAA\nABhKmAYAAAAAYChhGgAAAACAoYRpAAAAAACGEqYBAAAAABhKmAYAAAAAYKiFhemqOqWqzq+qs9cc\n+/qqen1VfWD6euNFjQ8AAAAAwMa0yBXTpyY5ad2xJyV5Q3d/c5I3TI8BAAAAADiCLCxMd/eZSS5c\nd/iBSV4yff+SJA9a1PgAAAAAAGxMo/eYvml3fzJJpq832d+JVbWjqnZX1e69e/cOmyAAAAAAAIu1\nYW9+2N07u3tbd29bWVlZ9nQAAAAAADhMRofpT1fVNybJ9PX8weMDAAAAALBko8P0q5M8fPr+4Ule\nNXh8AAAAAACWbGFhuqpeluStSW5fVedV1aOTPDfJvarqA0nuNT0GAAAAAOAIsmVRF+7uh+7nqXss\nakwAAAAAADa+DXvzQwAAAAAANidhGgAAAACAoYRpAAAAAACGEqYBAAAAABhKmAYAAAAAYChhGgAA\nAACAoYRpAAAAAACGEqYBAAAAABhKmAYAAAAAYChhGgAAAACAoYRpAAAAAACGEqYBAAAAABhKmAYA\nAAAAYChhGgAAAACAoYRpAAAAAACGEqYBAAAAABhKmAYAAAAAYChhGgAAAACAoYRpAAAAAACGEqYB\n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\n+hlcTni/mNmxOtjAXSfpi+VjO1jPQ/UuT1uc7I9SdkHypfLJ3szuUUp+tbv/1LLg2CPd/RPRcmrY\nvu5laMIAABCUSURBVL3KHp35apc0lTztdve1ap6i66opg6LMy2VwtKSfFO1f/t0Rkrb6wTn1Q3mq\nWfdjJJ3g7m8pfdd6XFXyfaQOzsdV7qhF63BkH4fPH8X3amhbGvJwO0m/WNnPbfslWk7HSbq2ppP5\nUHf/UmldDy2t607u/j/a8l2zHVuUPUZX7BdT9ujd/6y0PycrCzaP9VK/vJzvpwQvGiz3I6x5PuAn\nSPqRErzYKC8rU9aeHZN/fUhZBZZztLKRH+Uy+LSkLX7ofIaPUvZI4gZlj+4dcPfXV9KckH//jfz3\n2yl73LWoK2coG5XxYDX0bUrr2iZpTdno9wuVtQ3lduTuym6YVeew++tK/+aQY0HZqJmi/TlJ0j0q\ny7mjpOvc/X2l5TQdM69099fkvx8h6TmS7q5sf2zI/32rr5+j71HK6kjR/nzU3a+qlMF9lO3fy5UF\nfp+Vp7+mfO7L819s32pevj9Xqo+Pq9Yxa56nsOi/7pZ0V2Xnyssr5X7IuUHZyPyiPF+i7OJi1FyG\nD1fWl9yg7KLu3sqebrjW3T9WSrduXsS6Nj///ta5KIs0kr7sB995Ue6/HpP//y9I+hM/OM3Pscr6\ntj/V+nlL/87df1pZ3yOU3Ty6Li+DyyTdq7S+Q/qlygI2H3T33aXlPFXZiKMbS9+ta88b+m5HSHqP\nu1+fpymO458WbWJeFx/q7peUln2ipIfr4A2ru7r7ayvbZpIeqezx2UuV7WuTdL27fz5Pc5ykO0k6\nTNI/Kpt3s2iTL1CN8nktL9OivpyhrD08VtK3G66bas/Ftv7dPE/Ly/KG0v+v62tUyrPar77cD507\n+UplF9MvUdbnfFjp/28n6beVtSdfVbZ/r5P0AV8/x7Sr/b0mGyU9W1k7tEtZYOEOOrS+PELZ49Mf\ncfd/yr97uLt/If/5/squPctt1O8o60PXzltaOl/9UNk+Lsr/WGX19zsqna+UjXj7aSnfr8y38WZl\n9dIlvaVUBo9S9vTOLcrmsf0lZcf6db7+XQ5Fvdum7BjcqyzI8v5ie/LrgfsqO7cW5XlUXr7vL63v\nm8rOtcVxfJWUBUIq230brT8f35KnK4LCxyq7yf0vygJi98zTnOvrr8ebrhse5e4XN1zH/LakH7l7\n9Ub4SPmyjtD6/XKzshG9O0rpflfZnMs/rPx9ue92nLJ2/ppKX6qa5lp331vu2yh70qVIc2s/v5JG\nlWPqcGX7b9T7iZ6ubJTx/pZyKM5Dd1FWV4529z+pSVfEP05R3obW9G2KeMsjJX1bPV+UHWFmxygr\nq7XSdy9WNo9vUc+broleWupr3D3frnvm23U/Sd9VNur+yo55OkPZqPCT1RAnytOdpKwPWO63VOtX\n0/VO0xzaxXnh9e5+59L3dcfM4ZL+sCiD/LtfVXbe/pay42FkbCo/B54g6d7l65T8uuIWjZ4n/jhJ\nP6+srG9NI+nupWOh7prwxcrq1AWlZd16/TfimqGYS/0wZSPd763sfHV8tZ+fl9dpyoK7N0tyXz/1\n3ZnuviNvZ0fNy36CsuPgWh3s2/xC6fg8XNLvKZvO44q8zPYre+qkfK76WWXt/feU9WF/P1/m+7zD\ny0CtNFd1vpxXKDsf39sb4mAjl+dzEJiW1ndqS9/1euldn2XlaaovlEiynOiybP1LIJ4i6caai5le\neWrYvl5vHm7YvlO0/sIz9MbZPnmy4AvvepT5WGVQk6buRQKpXwLV6S2/TcdM1+0bcewV9eCOOhgo\nHjtPLesrLlyerPpjJlmZN+StqQ635anT+qL7riFPU21fRxwLrXWlTz3P/27cFwTVtsF5upRlMFZb\nZgfn/yqPMrq/pK97x/m/7OD8Zm/WwccB6+YNDM09F1hf3Vxptyjr2L931N/WLKs8r9zpyh7rrM4J\n+K48+ci5NoPrC5VVYDnR+eLemf+41pT3fL/cJf/7cd49kHIOu2QvLUq1rMTbF5mbNjpPYdPciFd5\nfpM7WAZd5jJsmyM01bsqItvWpf1pq+d17WJdmUe2r7z/ivJe18YGy+AcZY8pr2hEexfcvtb2IE+X\nqr4kWU6HZUXmH045R3E13ceV9QPKx3qXelferlHH+u8qO1/VzWGbZPs6HOut5+PE6+vyzoA3Kwu+\nXNSwrJF1qqEN7ttPis7ZPem2s1xXovPqpno/UajfGeyXtaZJKXI+DrZRoboZzFPKflnXOaaL/4+U\ngSR90te/8yHVu4Ai7U/dOTRFf6tc7+r6JG9S1ie5SNIDJJ1S05ZJo/vnrf2bDuf+SPsz1stAW5Zz\njaTndFnOrbznHCBDfpQNaT9P2RwmH5V0Zy/NE5P/fImki/PPJfnnJzp07svIsg6r+WzQ+rmKkiyn\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# calculate full dendrogram\n", "plt.figure(figsize=(25, 10))\n", "plt.title('Hierarchical Clustering Dendrogram')\n", "plt.xlabel('sample index')\n", "plt.ylabel('distance')\n", "dendrogram(\n", " Z,\n", " leaf_rotation=90., # rotates the x axis labels\n", " leaf_font_size=8., # font size for the x axis labels\n", ")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:24:52.050124Z", "start_time": "2017-05-12T18:24:52.040471+02:00" } }, "source": [ "If this is the first time you see a dendrogram, it's probably quite confusing, so let's take this apart...\n", "\n", "On the x axis you see labels. If you don't specify anything else they are the indices of your samples in X.\n", "On the y axis you see the distances (of the 'single linkage' method in our case).\n", "Starting from each label at the bottom, you can see a vertical line up to a horizontal line. The height of that horizontal line tells you about the distance at which this label was merged into another label or cluster. You can find that other cluster by following the other vertical line down again. If you don't encounter another horizontal line, it was just merged with the other label you reach, otherwise it was merged into another cluster that was formed earlier." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Summarizing:__\n", "\n", "- horizontal lines are cluster merges\n", "- vertical lines tell you which clusters/labels were part of merge forming that new cluster\n", "- heights of the horizontal lines tell you about the distance that needed to be \"bridged\" to form the new cluster\n", "- You can also see that from distances > 25 up there's a huge jump of the distance to the final merge at a distance of approx. 180. Let's have a look at the distances of the last 4 merges:\n", " " ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:28:20.913687Z", "start_time": "2017-05-12T18:28:20.908499+02:00" } }, "outputs": [ { "data": { "text/plain": [ "array([ 2.01561, 2.0993 , 3.78363, 15.44509])" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Z[-4:,2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Such distance jumps / gaps in the dendrogram are pretty interesting for us. They indicate that something is merged here, that maybe just shouldn't be merged. In other words: maybe the things that were merged here really don't belong to the same cluster, telling us that maybe there's just 2 clusters here.\n", "\n", "Looking at indices in the above dendrogram also shows us that the green cluster only has indices >= 100, while the red one only has such < 100. This is a good thing as it shows that the algorithm re-discovered the two classes in our toy example.\n", "\n", "In case you're wondering about where the colors come from, you might want to have a look at the color_threshold argument of dendrogram(), which as not specified automagically picked a distance cut-off value of 70 % of the final merge and then colored the first clusters below that in individual colors." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dendrogram Truncation\n", "\n", "As you might have noticed, the above is pretty big for 150 samples already and you probably have way more in real scenarios, so let me spend a few seconds on highlighting some other features of the dendrogram() function:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:31:03.723362Z", "start_time": "2017-05-12T18:31:03.455384+02:00" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.title('Hierarchical Clustering Dendrogram (truncated)')\n", "plt.xlabel('sample index')\n", "plt.ylabel('distance')\n", "dendrogram(\n", " Z,\n", " truncate_mode='lastp', # show only the last p merged clusters\n", " p=12, # show only the last p merged clusters \n", " leaf_rotation=90.,\n", " leaf_font_size=12.,\n", " show_contracted=True, # to get a distribution impression in truncated branches\n", ")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:31:59.746665Z", "start_time": "2017-05-12T18:31:59.739414+02:00" } }, "source": [ "## Selecting a Distance Cut-Off aka Determining the Number of Clusters\n", "\n", "As explained above already, a huge jump in distance is typically what we're interested in if we want to argue for a certain number of clusters. If you have the chance to do this manually, i'd always opt for that, as it allows you to gain some insights into your data and to perform some sanity checks on the edge cases. In our case i'd probably just say that our cut-off is 50, as the jump is pretty obvious:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:36:13.683268Z", "start_time": "2017-05-12T18:36:13.397934+02:00" } }, "outputs": [ { "data": { "image/png": "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\nvfad0wAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# set cut-off to 6\n", "max_d = 6 # max_d as in max_distance\n", "# Let's visualize this in the dendrogram as a cut-off line:\n", "dendrogram(\n", " Z,\n", " truncate_mode='lastp',\n", " p=12,\n", " leaf_rotation=90.,\n", " leaf_font_size=12.,\n", " show_contracted=True, \n", ")\n", "plt.axhline(y=max_d, c='k')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:36:21.010633Z", "start_time": "2017-05-12T18:36:21.004589+02:00" } }, "source": [ "As we can see, we (\"surprisingly\") have two clusters at this cut-off." ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:36:53.819164Z", "start_time": "2017-05-12T18:36:53.810408+02:00" } }, "source": [ "## Automated Cut-Off Selection is doomed to fail\n", "\n", "See more on the original blog post cited above.\n", "\n", "Now while this manual selection of a cut-off value offers a lot of benefits when it comes to checking for a meaningful clustering and cut-off, there are cases in which you want to automate this.\n", "\n", "The problem again is that there is no golden method to pick the number of clusters for all cases (which is why i think the investigative & backtesting manual method is preferable). Wikipedia lists a couple of common methods. Reading this, you should realize how different the approaches and how vague their descriptions are.\n", "\n", "I honestly think it's a really bad idea to just use any of those methods, unless you know the data you're working on really really well." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## more clusters" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:39:11.837416Z", "start_time": "2017-05-12T18:39:11.639833+02:00" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "c = np.random.multivariate_normal([40, 40], [[20, 1], [1, 30]], size=[200,])\n", "d = np.random.multivariate_normal([80, 80], [[30, 1], [1, 30]], size=[200,])\n", "e = np.random.multivariate_normal([0, 100], [[100, 1], [1, 100]], size=[200,])\n", "X2 = np.concatenate((X, c, d, e),)\n", "plt.scatter(X2[:,0], X2[:,1])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see we have 5 clusters now, but they have increasing variances... let's have a look at the dendrogram again and how you can use it to spot the problem:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:50:10.384750Z", "start_time": "2017-05-12T18:50:09.644076+02:00" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Z2 = linkage(X2, 'single')\n", "plt.figure(figsize=(10,10))\n", "dendrogram(\n", " Z2,\n", " truncate_mode='lastp',\n", " p=30,\n", " leaf_rotation=90.,\n", " leaf_font_size=12.,\n", " show_contracted=True, \n", ")\n", "plt.axhline(y=15, c='k')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:42:51.486567Z", "start_time": "2017-05-12T18:42:51.479637+02:00" } }, "source": [ "## Performing Clustering (with stopping) and Visualize clusters\n", "\n", "If you're lucky enough and your data is very low dimensional, you can actually visualize the resulting clusters very easily:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:43:25.983156Z", "start_time": "2017-05-12T18:43:25.979298+02:00" }, "collapsed": true }, "outputs": [], "source": [ "from scipy.cluster.hierarchy import fcluster" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:46:04.016183Z", "start_time": "2017-05-12T18:46:03.980337+02:00" } }, "outputs": [ { "data": { "text/plain": [ "array([4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n", " 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n", " 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n", " 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n", " 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n", " 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n", " 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", " 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", " 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", " 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", " 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", " 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", " 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", " 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", " 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n", " 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], dtype=int32)" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "max_d = 20\n", "clusters = fcluster(Z2, max_d, criterion='distance')\n", "clusters" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "ExecuteTime": { "end_time": "2017-05-12T16:46:05.542005Z", "start_time": "2017-05-12T18:46:05.285137+02:00" } }, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10, 8))\n", "plt.scatter(X2[:,0], X2[:,1], c=clusters) # plot points with cluster dependent colors\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 2 }