Skip to content

Instantly share code, notes, and snippets.

@georgehc
Created February 7, 2019 12:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save georgehc/20e649da7a92f0d517d6dada27ff7cf6 to your computer and use it in GitHub Desktop.
Save georgehc/20e649da7a92f0d517d6dada27ff7cf6 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 94-775/95-865 Hierarchical clustering\n",
"Author: George H. Chen (georgechen [at symbol] cmu.edu)\n",
"\n",
"Part of this demo uses the [random color map code created by Felipe Delestro Matos](https://github.com/delestro/rand_cmap)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"plt.style.use('seaborn')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x1180e2198>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# manually create 4 clusters\n",
"# (note that this is actually a 4-cluster Gaussian mixture model!)\n",
"\n",
"np.random.seed(0)\n",
"\n",
"points_cluster1 = .5*np.random.randn(10, 2) + np.array([-1.5, 0])[np.newaxis, :]\n",
"points_cluster2 = .5*np.random.randn(10, 2) + np.array([1, 0.5])[np.newaxis, :]\n",
"points_cluster3 = .5*np.random.randn(10, 2) + np.array([-2, -2])[np.newaxis, :]\n",
"points_cluster4 = .5*np.random.randn(10, 2) + np.array([-0.5, -2.5])[np.newaxis, :]\n",
"\n",
"points = np.vstack([points_cluster1,\n",
" points_cluster2,\n",
" points_cluster3,\n",
" points_cluster4])\n",
"\n",
"plt.scatter(points[:, 0], points[:, 1])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Divisive clustering\n",
"\n",
"The code below uses highest cluster RSS to decide which cluster to split next, and uses k-means (with k=2) to do the actual split. We stop the algorithm after 3 splits."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from sklearn.cluster import KMeans\n",
"\n",
"cluster_assignment = np.zeros(len(points)).astype(np.int) # everything starts off being in cluster 0\n",
"\n",
"num_splits = 3 # really simple stopping rule: stop after doing 3 splits (so we end up with 4 clusters)\n",
"\n",
"for split_idx in range(num_splits):\n",
" # select which cluster to split by looking at which one has the highest residual sum of squares (RSS)\n",
" num_clusters = cluster_assignment.max() + 1\n",
" max_cluster_RSS = -np.inf\n",
" arg_max = None\n",
" for cluster_idx in range(num_clusters):\n",
" # compute cluster's Residual Sum of Squares (RSS)\n",
" cluster_mask = (cluster_assignment == cluster_idx)\n",
" cluster_size = cluster_mask.sum()\n",
" if cluster_size == 1:\n",
" cluster_RSS = 0.\n",
" else:\n",
" points_in_cluster = points[cluster_mask]\n",
" cluster_mean = points_in_cluster.mean(axis=0)\n",
" cluster_RSS = 0.\n",
" for point in points_in_cluster:\n",
" cluster_RSS += np.linalg.norm(point - cluster_mean)**2\n",
" \n",
" if cluster_RSS > max_cluster_RSS:\n",
" max_cluster_RSS = cluster_RSS\n",
" arg_max = cluster_idx\n",
" \n",
" # split cluster with largest cluster RSS (arg_max)\n",
" kmeans = KMeans(n_clusters=2, n_init=1000, random_state=0)\n",
" split_assignments = kmeans.fit_predict(points[cluster_assignment == arg_max])\n",
" # every point assigned to k-mean's output cluster 0 will be set to still have cluster index `arg_max`\n",
" # whereas every point assigned to k-mean's output cluster 1 will be set to have cluster index `num_clusters`\n",
" cluster_assignment[cluster_assignment == arg_max] \\\n",
" = arg_max * (split_assignments == 0) + num_clusters * (split_assignments == 1) # create new cluster\n",
" \n",
" plt.figure()\n",
" plt.scatter(points[:, 0], points[:, 1], c=cluster_assignment, cmap='Accent')\n",
" plt.axis('equal')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Agglomerative clustering"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### The simple way using sklearn (but the functionality is limited)\n",
"\n",
"To see what scikit-learn is capable of, look up the documentation for `AgglomerativeClustering`."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(-3.1140351183062567,\n",
" 2.395777334987554,\n",
" -3.610738369320056,\n",
" 1.4822764531043595)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from sklearn.cluster import AgglomerativeClustering\n",
"\n",
"clustering = AgglomerativeClustering(n_clusters=4, affinity='euclidean', linkage='complete')\n",
"cluster_assignments = clustering.fit_predict(points)\n",
"plt.scatter(points[:, 0], points[:, 1], c=cluster_assignments, cmap='Accent')\n",
"plt.axis('equal')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Agglomerative clustering without scikit-learn\n",
"\n",
"For simplicity, the following code keeps merging until there's exactly 1 cluster, and at each merge step, the code plots what the clusters are. Because the number of clusters can be quite large, we use a random coloring for each plot; we specifically use the [random color map created by Felipe Delestro Matos](https://github.com/delestro/rand_cmap).\n",
"\n",
"We demonstrate this code using a simple line of points evenly spaced apart; feel free to comment out the next cell if you want to run the algorithm on the random points from earlier in this demo."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x11b33b1d0>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"points = np.vstack([np.arange(10), np.zeros(10)]).T\n",
"\n",
"plt.scatter(points[:, 0], points[:, 1])"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAW8AAAEFCAYAAAAsU2YoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAFY9JREFUeJzt3XuU3GWd5/F3dVU61w65UMotIcLAAwEhII4BFRBFBs7R0eOsOzOL58CAjs646+V4XPQMs3t2Z9a54X1ZZ11wcGY47nqBYVQQRS4KMgmo3CLfSABBgdBALp0Lnb7U/lG/pC/pTneqq6vydN6vc3KSeur3/H7fevqXTz31/KqrSrVaDUlSXjraXYAkaf8Z3pKUIcNbkjJkeEtShgxvScqQ4S1JGaq0uwAd2FJKK4AngMsj4pph7R8DTo6IS5p0nCeB34uI+5qxvwmOtRC4GVgEXBkR35pEnzuAL0bENxo43iHADRFx3v72beBYncAXgDcWTTcDH4+Igek+tlrLmbcmYxC4KqWU2l1Ik6wCXhkRJ00muJtgMfDbLTgOwAeBKnAycApwFvDuFh1bLeTMW5OxE7gKuD6ldGZE7Bp+Z0rpH4CHI+LvRt8uZtTXA+dRD7G/AV4PvAboA94eEc8Uu/rTlNKpwGzgqoi4ttjf24A/AzqBHcDHIuInKaX/CpwJHAE8EBEXj6rrHcB/oT5J6QE+CmwBrgWOTCn9HDgzInYO63MY8CXgBOpPWl+KiM8Pu39F8dgWjL5d9P0qcGix+Xci4krgK8Dc4nivAY4HPgcsBcrA5yPi2pTSuUX7dmAB9dnz/wGOK2q5H/jjiBhMKX23qO2m4Y85Ij6dUvpCsU2V+quLl9CM48xbk/WXwDbgfzTQd05ErAb+HPjfwOci4lTgaeCSYdvtjIjTgfOBT6WUTkopHVcc86KIOA14H/CtlNL8os/RwGljBPcJ1EP4XcWx/hz4F+BZ4HJgQ0SsGh7chauB9RFxAvUnhvellH5rko/zvcDjxWN4I3BcsWRyafHYVgEl4BvAFRHxGuAc4GMppdXFPk4G/iAiTgHeDnQV/V5b3H8MQERcNDq4d4uIvpTSXwEbgI3AjyZZvzJieGtSImIQuBi4NKV0/n52/2bx9wbguYh4YNjtJcO2+/viWM8AtwJvph7khwO3FTPXf6Y+C90dqPdGRP8YxzwPuC0iHi/2+UPgeeoz3315C/UnGCJiS0ScHBGPTfJx3gK8q5gV/zH1gN4yapvjgWOBa4vHcycwFzituP/piPhV8e8fAycV6+1XAJ+dbC0RcQX1VzpPAv9rkvUrI4a3Ji0inqYeStcxtDQAUKM+o9ytc1TX3mH/7tvHIYZfVOsoti1TD+FVu/8Aq4GHi+22jbOvclHXcB3ArH0cH6B/eL+U0jHFBc7dxn2sEbEWeBX18F8BrEkpjX6yKANbxng8Xxn9eCLiCepPUp8CFgI/KJaQxpVSen1K6fiifx/wD8DpEzxmZcjw1n4p3m1xM/DhYc3dwBkAKaUjqC8FNOKSYh/Lqc+Abyv+vLVYBiGldBHwIPXZ6r7cBlyQUjqm6HcesAz4twn6/YD6Msfud4ncRn3NebfNQGdKaWVx+w9231EsVVwZETcCHwIeob4M0g+UU0olIICdKaWLiz7LqD8R7fWKIKX0AeqhfmtE/Gfge0wcxOcBn0kpVVJKHcB/AH44QR9lyPBWI/4T8Ktht78AHJ5SCuph02hYzEkp/RT4LvAfI2J9RKyjvs79tZTSA8B/p36Rc7wZNwBFvz+hvj7+MPBXwNvGWMYY7YPAiSmlB4G7gU9FxP3D9rsF+Dhwc0ppLfWLubt9FlhVHO8+6m+x/Br1dfY11MO8C/hd4PLiGLdSD/y7x6jlq9Rn6utSSvcDhwCfB0gpfTel9PYx+vw19Z/NA8WffuATEzxmZajkR8JKUn6ceUtShgxvScqQ4S1JGTK8JSlDLfv1+O7unoavjC5ePI9Nm3Y0s5ysOR5DHIuRHI8hM2UsqtWu0ljtWcy8K5Vyu0s4oDgeQxyLkRyPITN9LLIIb0nSSIa3JGXI8JakDDV8wTKlVAa+DCTqHyh0aURsaFZhkqTxTWXm/TaAiHg99c9K/nRTKpIkTajh8C4+Oe19xc2jqX/ouySpBab8wVQppeuAd1L/8thbx9uuv3+gNtPfuiNJ02DM93k35VMFi+/u+zdgZURsH2ubqfySTrXaRXd3T6PdZxzHY4hjMZLjMWSmjEXTf0knpfSelNLuzwneQf2rqQb20UWS1CRT+fX4bwFfSSndRf2rpT4cES83pyxJ0r40HN7F8si7m1iLJGmS/CUdScqQ4S1JGTK8JSlDhrckZcjwlqQMGd6SlCHDW5IyZHhLUoYMb0nKkOEtSRkyvCUpQ4a3JGXI8JakDBnekpQhw1uSMmR4S1KGDG9JypDhLUkZMrwlKUOGtyRlyPCWpAwZ3pKUIcNbkjJkeEtShgxvScqQ4S1JGao00imlNAu4FlgBzAb+IiJuamJdkqR9aHTmfTHwYkS8EbgQ+GLzSpIkTaShmTfwdeAbw273N6EWSdIklWq1WsOdU0pdwE3AlyPi+n1t298/UKtUyg0fS5IOUqWxGhudeZNSWgbcAFw9UXADbNq0o9FDUa120d3d03D/mcbxGOJYjOR4DJkpY1Gtdo3Z3ugFy1cCtwIfjIjbplCXJKkBjc68PwksBq5MKV1ZtF0YETubU5YkaV8aCu+I+BDwoSbXIkmaJH9JR5IyZHhLUoYMb0nKkOEtSRkyvCUpQ4a3JGXI8JakDBnekpQhw1uSMmR4S1KGDG9JypDhLUkZMrwlKUOGtyRlyPCWpAwZ3pKUIcNbkjJkeEtShgxvScqQ4S1JGTK8JSlDhrckZcjwlqQMGd6SlCHDW5IyZHhLUoamFN4ppdellO5oUi2SpEmqNNoxpfRx4D3A9uaVI0majFKtVmuoY0rpXcCDwD9GxOqJtu/vH6hVKuWGjiVJB7HSWI0Nz7wj4psppRWT3X7Tph2NHopqtYvu7p6G+880jscQx2Ikx2PITBmLarVrzHYvWEpShgxvScqQ4S1JGWp4zRsgIp4EJrxYKUlqLmfekpQhw1uSMmR4S1KGDG9JypDhLUkZMrwlKUOGtyRlyPCWpAwZ3pKUIcNbkjJkeEtShgxvScqQ4S1JGTK8JSlDhrckZcjwlqQMGd6SlCHDW5IyZHhLUoYMb0nKkOEtSRkyvCUpQ4a3JGXI8JakDFXaXcC+vMBW7mIdpR54BYtYzfGU2/B8E/yGn/MkAKeyghM4suU1DDLIvfySJ3mexdvmcwbHUuWQltexk13czsNsYjtLWcC5nMwcZrW8jo1s5sc8SkcPHMZiXsdxdLT43KhRYx2/5iGeogSczjEcx+EtrQFggAHuYT1P8wJLti3gtRzLUha2vI7tvMwdPMIWdrCULt7ESXS24dxg4Fk6+tawoxtKu46iNus0KLU4N2o1Kms3UFmzAcod7DrnRAZXHtXUQ5RqtVpDHVNKHcDVwKlAL3B5RDw23vbd3T37daCfsJ5vci897Bw6JkfwAd7KXGY3VPP+qlHj/3I3P+JR+hkAoEIHZ3ECf8gbKFFqSR299HE13+NRfrOnbQFzeCe/zRs4sSU1ADzJ81zL7Wxk8562w1jEZbyZ5RzasjruYh03sobt9O5pO5Gj+BMuoLNF85EaNf6Ju/gJ6xlgEIBZlDmblbybs1pSA8AOermaW/glz+1pW8hcfo8zeR3HtayOx3iW67iD59m6p+1IlvBe3szhLGlZHR29d9LRewulIjdqQK28koF5fwSlFs1VB2vM/dubmHX7I5QG6rFXmz2L3ne+lt7L3rTfu6tWu8YMmqk8Hb0DmBMRZwJXAFdNYV8j9NLHt7lvRHADBM9wE/c16zATeohfcRfr9gQ3QD+D/Ihf8HOeaFkdN3HfiOAG2MbLfIef8jK7WlbHjawdEdwAz7GZG1nTshq2F497eHAD/IJf868tPDfuYwN38+ie4AboY4A7eIR1PN2yOv6FNSOCG2ArO/k297GL/pbUUKPGjawdEdwAv+ElbmjhucHAFjp6v78nuAFKQMfAOjp6f9CyMmbd8gCzfvDwnuAGKPX2MfuGtXQ88uumHWcq4f0G4BaAiLgXOKMpFQH38kteoGfM+zaMOlGn0wP8igH2fsFQo8aDPNWyOh7j2THbX2Ib97C+JTVsZjsbxqljAxvZOuqJdrrcw3o2s32cOlp3bjzEU2OcGTDAID8rltha4TE2jtn+PFtZy7gvhJtqI5t5fJw6HmdjyyYYHX1rKLFtzPtKAxtaUgNA5aePj/mavNTbR+ed65p3nCn0XQhsGXZ7IKVUiYgxn+4XL55HpVKe1I5n7ygzzv9PKJeoLunav0obNGtrmVETvD0qs8tUF7amjo5NJcabRM2ZX6E6b/rrGBwYYPClsVe+Bhlg0ZK5LC1Pfx1zdlTGPTdKlRLVxS06N7aUGS+TOlt4bpRegmEvDEfWMb/cknNjW98OBjcPjnnfIDUWL53Pgo45017HzpfK9I7zM5k1C5ZUW/Mz6St3jPnEDjC3s0xXk+qYSnhvBYZX0TFecANs2rRj0jteyXIWMnfM2dxRA0vo7h57Vt5sy6mOf1/voS2r40iW8DjP79W+gLms3H4U3dunv44SHSzn0DHrWE6VgZdqdI/zaqmZVnIU85m917IJwJH9rTs3jmLpuPcd3fuKFp4bS3maF/dqX8R8Vm5f1pJzYx5zWcahPMULe923jEPZ+WIfO+mb9joYOJEKt1Li5b3u2jV4RMt+Jp3HvpK5P3xkr/ZauUTPymX072cd1XHCfirLJncDFwGklFYDD01hXyMsZC7nchKzGDlTP4IlXMjpzTrMhFZzHKtYsVf7KSznLFLL6riQ0zly1EWfCmXO4UQWsaAlNZQo8VZW0cXcEe2HMJcLWNWyi7dLWcjZrNzrXUfLWMpFnNaSGgDO5kROZtle7adzDGdwbMvquIjTOJzFI9o6KXMuJzGf6Z/tAnRQ4nxOZcGoNxIsZj6/w6qW1ABA+XAGO1dTG3VuDHYsZ7DzLS0rY9c7XkvfaStGtNWAvnNW0n9m8y4iN+PdJqdQvy5waUQ8Ot72+/tuE4AHeJL72cBgZ40lu7p4C69mIfMaqrdRAwxyJ4+wnmeAEr/FYbyJkygzuSWgZulhJ9/nQZ5lE4tmz+Ok3mWs4lUtrQHgKV7gLtaxhR0sYj7nsHKfs9Dp8lMe52c8Qa2zxqG7FvIWTmFBi8Jqt34GuJ1H9qy1J44Y84llum1lB9/nQZ5jM4tmz+OU3qN5NUe3tAaAJ3ieH/MLtrKTxcznXE7miFFPLNOuVqPU/zNKfQ8zu3OQ3v5XMNj5JuiYO3HfZtrVT+eNa6ms+zW1jg76T38VfRedBh37P8kZ790mDYf3/mokvHerVrta9pInB47HEMdiJMdjyEwZi+l4q6AkqU0Mb0nKkOEtSRkyvCUpQ4a3JGXI8JakDBnekpQhw1uSMmR4S1KGDG9JypDhLUkZMrwlKUOGtyRlyPCWpAwZ3pKUIcNbkjJkeEtShgxvScqQ4S1JGTK8JSlDhrckZcjwlqQMGd6SlCHDW5IyZHhLUoYMb0nK0JTCO6X0zpTS9c0qRpI0OZVGO6aUPgdcAPy8eeVIkiZjKjPve4APNKsQSdLklWq12j43SCldBnxkVPOlEbE2pXQu8P6I+P2JDtTfP1CrVMoNFypJB6nSWI0TLptExDXANVM9+qZNOxruW6120d3dM9USZgzHY4hjMZLjMWSmjEW12jVmu+82kaQMGd6SlKGG320CEBF3AHc0pRJJ0qQ585akDBnekpQhw1uSMmR4S1KGDG9JypDhLUkZMrwlKUOGtyRlyPCWpAwZ3pKUIcNbkjJkeEtShgxvScqQ4S1JGTK8JSlDhrckZcjwlqQMGd6SlCHDW5IyZHhLUoYMb0nKkOEtSRkyvCUpQ4a3JGXI8JakDBnekpShSiOdUkqHAP8ELAQ6gY9GxE+aWZgkaXyNzrw/CtwWEecAlwD/s2kVSZIm1NDMG/gM0DtsHy83pxxJ0mSUarXaPjdIKV0GfGRU86URsTaldBhwM/DhiLhzX/vp7x+oVSrlKRUrSQeh0piNE4X3eFJKrwa+BnwsIm6eaPvu7p7GDgRUq110d/c02n3GcTyGOBYjOR5DZspYVKtdY4Z3oxcsVwJfB/59RDwwlcIkSfuv0TXvTwFzgM+llAC2RMTvNq0qSdI+NRTeBrUktZe/pCNJGTK8JSlDhrckZcjwlqQMGd6SlCHDW5IyZHhLUoYMb0nKkOEtSRkyvCUpQ4a3JGXI8JakDBnekpQhw1uSMmR4S1KGDG9JypDhLUkZMrwlKUOGtyRlyPCWpAwZ3pKUIcNbkjJkeEtShgxvScqQ4S1JGTK8JSlDlUY6pZTmA9cDS4DtwHsioruZhUmSxtfozPu9wP0R8Ubga8CfNa8kSdJEGpp5R8RnU0rl4uZyYONEfRYvnkelUp5os3FVq10N952JHI8hjsVIjseQmTwWE4Z3Suky4COjmi+NiLUppR8CrwbOn2g/mzbtaKxC6j+A7u6ehvvPNI7HEMdiJMdjyEwZi/GegCYM74i4BrhmnPvOSymdAHwHOHYqBUqSJq+hNe+U0idSSu8pbm4HBppXkiRpIg2teQPXAtcVSypl4NLmlSRJmkijFyw3Ar/T5FokSZPkL+lIUoYMb0nKUKlWq7W7BknSfnLmLUkZMrwlKUOGtyRlyPCWpAwZ3pKUIcNbkjJkeEtShhr9bJOWSCl1AFcDpwK9wOUR8Vh7q2qPlNIs6p8pswKYDfxFRNzU1qIOACmlVwD3A+dHxKPtrqddUkqfAN4OdAJXF58GelAq/q9cR/3/ygDw3pl4bhzoM+93AHMi4kzgCuCqNtfTThcDLxbfXnQh8MU219N2xX/Svwd2truWdkopnQucBbweOAdY1taC2u8ioBIRZwH/DfjLNtczLQ708H4DcAtARNwLnNHectrq68CVw273t6uQA8jfAV8Cnml3IW12AfAQcAPwr8C321tO260HKsUr94VAX5vrmRYHengvBLYMuz2QUjqgl3qmS0Rsi4ielFIX8A0O8u8NTSldAnRHxPfaXcsB4FDqE5t/B7wf+OeUUqm9JbXVNupLJo8CXwY+39ZqpsmBHt5bgeHfAdQREQftjDOltAy4HfjHiLi+3fW02R8B56eU7gBWAV9NKR3W3pLa5kXgexGxKyICeBmotrmmdvoI9fE4nvr1sutSSnPaXFPTHeiz2LuBtwH/L6W0mvpLw4NSSumVwK3AByPitnbX024RcfbufxcB/v6IeK59FbXVj4EPpZQ+DRwOzKce6AerTQwtlbwEzKL+pTEzyoEe3jdQn13dA5Q4uL+x55PAYuDKlNLute8LI+KgvlgniIhvp5TOBtZQfzX9pxFxMH814WeAa1NKP6L+7ptPRsT2NtfUdH4krCRl6EBf85YkjcHwlqQMGd6SlCHDW5IyZHhLUoYMb0nKkOEtSRn6/yIL92EB4rb5AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"num_clusters = len(points)\n",
"\n",
"cluster_assignment = np.arange(num_clusters).astype(np.int)\n",
"\n",
"from scipy.spatial.distance import cdist\n",
"from rand_cmap import rand_cmap\n",
"\n",
"plt.figure()\n",
"plt.title('Number of clusters: ' + str(num_clusters))\n",
"plt.scatter(points[:, 0], points[:, 1], c=cluster_assignment,\n",
" cmap=rand_cmap(num_clusters, type='bright',\n",
" first_color_black=False,\n",
" last_color_black=False,\n",
" verbose=False))\n",
"plt.axis('equal')\n",
"\n",
"linkage = 'single'\n",
"\n",
"while num_clusters > 1:\n",
" # find the two clusters that are ``closest'' according to some rule\n",
" min_dist = np.inf\n",
" arg_min = None\n",
" for cluster_idx1 in range(num_clusters):\n",
" cluster1_points = points[cluster_assignment == cluster_idx1]\n",
" for cluster_idx2 in range(cluster_idx1 + 1, num_clusters):\n",
" cluster2_points = points[cluster_assignment == cluster_idx2]\n",
" \n",
" if linkage == 'centroid':\n",
" dist = np.linalg.norm(cluster1_points.mean(axis=0)\n",
" - cluster2_points.mean(axis=0))\n",
" elif linkage == 'single':\n",
" dist = cdist(cluster1_points, cluster2_points).min()\n",
" elif linkage == 'complete':\n",
" dist = cdist(cluster1_points, cluster2_points).max()\n",
" else:\n",
" raise NotImplementedError('Unsupported linkage type')\n",
" \n",
" if dist < min_dist:\n",
" min_dist = dist\n",
" arg_min = (cluster_idx1, cluster_idx2)\n",
" \n",
" cluster_idx1, cluster_idx2 = arg_min\n",
" \n",
" # merge arg_min clusters\n",
" cluster_assignment[cluster_assignment == cluster_idx2] = cluster_idx1\n",
" mask = (cluster_assignment > cluster_idx2)\n",
" if mask.sum() > 0:\n",
" cluster_assignment[mask] -= 1\n",
" num_clusters -= 1\n",
" \n",
" plt.figure()\n",
" plt.title('Number of clusters: ' + str(num_clusters))\n",
" if num_clusters > 1:\n",
" plt.scatter(points[:, 0], points[:, 1], c=cluster_assignment,\n",
" cmap=rand_cmap(num_clusters, type='bright',\n",
" first_color_black=False,\n",
" last_color_black=False,\n",
" verbose=False))\n",
" else:\n",
" plt.scatter(points[:, 0], points[:, 1], c=cluster_assignment)\n",
" plt.axis('equal')"
]
}
],
"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.5.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
# Generate random colormap
def rand_cmap(nlabels, type='bright', first_color_black=True, last_color_black=False, verbose=True):
"""
Creates a random colormap to be used together with matplotlib. Useful for segmentation tasks
:param nlabels: Number of labels (size of colormap)
:param type: 'bright' for strong colors, 'soft' for pastel colors
:param first_color_black: Option to use first color as black, True or False
:param last_color_black: Option to use last color as black, True or False
:param verbose: Prints the number of labels and shows the colormap. True or False
:return: colormap for matplotlib
"""
from matplotlib.colors import LinearSegmentedColormap
import colorsys
import numpy as np
if type not in ('bright', 'soft'):
print ('Please choose "bright" or "soft" for type')
return
if verbose:
print('Number of labels: ' + str(nlabels))
# Generate color map for bright colors, based on hsv
if type == 'bright':
randHSVcolors = [(np.random.uniform(low=0.0, high=1),
np.random.uniform(low=0.2, high=1),
np.random.uniform(low=0.9, high=1)) for i in range(nlabels)]
# Convert HSV list to RGB
randRGBcolors = []
for HSVcolor in randHSVcolors:
randRGBcolors.append(colorsys.hsv_to_rgb(HSVcolor[0], HSVcolor[1], HSVcolor[2]))
if first_color_black:
randRGBcolors[0] = [0, 0, 0]
if last_color_black:
randRGBcolors[-1] = [0, 0, 0]
random_colormap = LinearSegmentedColormap.from_list('new_map', randRGBcolors, N=nlabels)
# Generate soft pastel colors, by limiting the RGB spectrum
if type == 'soft':
low = 0.6
high = 0.95
randRGBcolors = [(np.random.uniform(low=low, high=high),
np.random.uniform(low=low, high=high),
np.random.uniform(low=low, high=high)) for i in range(nlabels)]
if first_color_black:
randRGBcolors[0] = [0, 0, 0]
if last_color_black:
randRGBcolors[-1] = [0, 0, 0]
random_colormap = LinearSegmentedColormap.from_list('new_map', randRGBcolors, N=nlabels)
# Display colorbar
if verbose:
from matplotlib import colors, colorbar
from matplotlib import pyplot as plt
fig, ax = plt.subplots(1, 1, figsize=(15, 0.5))
bounds = np.linspace(0, nlabels, nlabels + 1)
norm = colors.BoundaryNorm(bounds, nlabels)
cb = colorbar.ColorbarBase(ax, cmap=random_colormap, norm=norm, spacing='proportional', ticks=None,
boundaries=bounds, format='%1i', orientation=u'horizontal')
return random_colormap
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment