{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib as mpl \n", "import matplotlib.pyplot as plt \n", "\n", "from sklearn.cluster import KMeans\n", "from sklearn.datasets import make_blobs\n", "\n", "from yellowbrick.cluster import KElbowVisualizer, SilhouetteVisualizer\n", "\n", "mpl.rcParams[\"figure.figsize\"] = (9,6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Yellowbrick — Clustering Evaluation Examples\n", "\n", "The Yellowbrick library is a diagnostic visualization platform for machine learning that allows data scientists to steer the model selection process. It extends the scikit-learn API with a new core object: the `Visualizer`. Visualizers allow models to be fit and transformed as part of the scikit-learn pipeline process, providing visual diagnostics throughout the transformation of high-dimensional data.\n", "\n", "In machine learning, clustering models are unsupervised methods that attempt to detect patterns in unlabeled data. There are two primary classes of clustering algorithms: *agglomerative* clustering which links similar data points together, and *centroidal* clustering which attempts to find centers or partitions in the data.\n", "\n", "Currently, Yellowbrick provides two visualizers to evaluate *centroidal* mechanisms, particularly K-Means clustering, that help users discover an optimal $K$ parameter in the clustering metric:\n", "- `KElbowVisualizer` visualizes the clusters according to a scoring function, looking for an \"elbow\" in the curve. \n", "- `SilhouetteVisualizer` visualizes the silhouette scores of each cluster in a single model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load the Data\n", "\n", "For the following examples, we'll use scikit-learn's `make_blobs()` function to create a sample two-dimensional dataset with 8 random clusters of points." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Generate synthetic dataset with 8 blobs\n", "X, y = make_blobs(n_samples=1000, n_features=12, centers=8, shuffle=True, random_state=42)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Elbow Method \n", "\n", "K-Means is a simple unsupervised machine learning algorithm that groups data into the number $K$ of clusters specified by the user, even if it is not the optimal number of clusters for the dataset. \n", "\n", "Yellowbrick's `KElbowVisualizer` implements the “elbow” method of selecting the optimal number of clusters by fitting the K-Means model with a range of values for $K$. If the line chart looks like an arm, then the “elbow” (the point of inflection on the curve) is a good indication that the underlying model fits best at that point.\n", "\n", "In the following example, the `KElbowVisualizer` fits the model for a range of $K$ values from 4 to 11, which is set by the parameter `k=(4,12)`. When the model is fit with 8 clusters we can see an \"elbow\" in the graph, which in this case we know to be the optimal number since we created our synthetic dataset with 8 clusters of points. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Instantiate the clustering model and visualizer\n", "model = KMeans()\n", "visualizer = KElbowVisualizer(model, k=(4,12))\n", "\n", "visualizer.fit(X) # Fit the data to the visualizer\n", "visualizer.poof() # Draw/show/poof the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By default, the scoring parameter `metric` is set to `distortion`, which computes the sum of squared distances from each point to its assigned center. However, two other metrics can also be used with the `KElbowVisualizer`—`silhouette` and `calinski_harabaz`. The `silhouette` score is the mean silhouette coefficient for all samples, while the `calinski_harabaz` score computes the ratio of dispersion between and within clusters.\n", " \n", "The `KElbowVisualizer` also displays the amount of time to fit the model per $K$, which can be hidden by setting `timings=False`. In the following example, we'll use the `calinski_harabaz` score and hide the time to fit the model." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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6khOTqampoaQkBAAYmNj2b59O8XFxYwePRqAoUOHkpuba8+Ypqqrt5J78gw7vlurkllQzBclZU3OGdCzCyNDAy7MqoQGMKBnF5yd9K53ERHpHCyGYb83xh46dIjs7Gzuuusu8vPz+cMf/oCfnx/r168H4J133uH48eOUlJRw0003cd111wEwZswYPvroI1xcmu9a1dXVDltwSqvqyC2pZF9JBbkllewvraSy7uL/Eh9XJyICPIno7sngAC8iAjzxdXM2MbGIiIj9RERE4O7e9G6CXWdewsLCCA0NxWKxEBYWhq+vL2fOnGn8fHl5OX5+flRVVVFeXt543Gq1tlhcvq+5L7AtZGVlERUV1fqJraitt5JTeLpxrcrOgmK+OnW+8fMWCwzq6d+4oHZUn0CuCvRrF09nbqsxcHQaB40BaAxAYwAagwa2Gocfm5iwa3l55513OHz4MPPnz6eoqIjKykq8vLw4duwYwcHBZGRkMG3aNE6ePMnHH3/M+PHj2bt3L/3797dnzCaae6Ly5Tp5rrLJBnCfHT9FZW194+e7eblx84DejPyurPxLcHe6eLq1YXoREZGOx67lZeLEicyePZvJkydjsVhYvHgxTk5OPPLII9TX1xMbG8uQIUMYPHgw27ZtY9KkSRiGweLFi+0Zs1FzT1RuSU1dPXsLT7Mz/+KsSsHpi7NHThYLg69sOqvSL8AXi8X8WRURERFHYtfy4ubmxl/+8pcfHE9LS2vysZOTE0888YS9YjWruScqw8W3Dn99toId+RdnVbJOnKK6ztp4foC3O7d8twHcyD6BRAd1x9fD1b5fhIiISAekTeqa0dITlZ/YnMPa7ALKqmo5cbai8bizk4UhvboyIiSAkX0CGRkaQN/umlURERGxBZWXS7RUXBocKDqLl6sztw0KatxXJTqoG97umlURERGxB5WXn2HGmIHMHzfU7BgiIiKdksrLJS59ns+l9HwfERERc2lb1mbMix9Cyk2RPziu4iIiImI+lZcWXFpgVFxERETaB902+hF6orKIiEj7o/LSCj1RWUREpH3RbSMRERFxKCovIiIi4lBUXkRERMShqLyIiIiIQ1F5EREREYei8iIiIiIOReVFREREHIrKi4iIiDiUDrFJnWEYANTU1Njs36iurrbZtR2FxuACjYPGADQGoDEAjUEDW4xDw2t6w2v891mM5o46mLKyMg4fPmx2DBEREWlj/fv3x9fXt8mxDlFerFYr5eXluLq6YrFYzI4jIiIiv5BhGNTW1uLt7Y2TU9NVLh2ivIiIiEjnoQW7IiIi4lBUXkRERMShqLyIiIiIQ1F5EREREYei8tKKU6dOcd111/Hll1+aHcU0d9xxB0lJSSQlJTF79myz45hi+fLlJCQkMGHCBNauXWt2HFOsX7++8fvg7rvvZvDgwZw7d87sWHZVW1vLjBkzmDRpEomJiZ3y90JNTQ0zZszg7rvvZurUqeTn55sdya6ys7NJSkoCoKCggMmTJ5OYmMi8efOwWq0mp7OP749Bg8WLF7N69Wq7ZegQm9TZSm1tLSkpKXh4eJgdxTTV1dUYhsGqVavMjmKazMxM9uzZw+rVq6msrOSvf/2r2ZFMMWHCBCZMmADAggULuPPOO/Hz8zM5lX19+umn1NXV8fbbb7Nt2zaef/55li1bZnYsu0pLS8PLy4u0tDS++uorFi5cyGuvvWZ2LLtYsWIFGzZswNPTE4AlS5Ywffp0RowYQUpKClu2bGHs2LEmp7StS8egtLSUmTNnkp+fzwMPPGC3HJp5+RFPP/00kyZNokePHmZHMc3BgweprKxk6tSpTJkyhb1795odye4yMjLo378/Dz/8MA899BBjxowxO5Kp9u3bx5EjR0hISDA7it2FhYVRX1+P1Wrl/PnzuLh0vr//jhw5QlxcHADh4eGdavYpJCSkSVnNy8sjJiYGgLi4OLZv325WNLu5dAzKy8tJTk7m9ttvt2sOlZcWrF+/nm7dujF69Gizo5jKw8ODBx54gNdee40FCxbwyCOPUFdXZ3Ysuzp9+jS5ubm88MILjWPQmbdHWr58OQ8//LDZMUzh5eXF119/zc0338zcuXN/MHXeGQwYMICPP/4YwzDYu3cvRUVF1NfXmx3LLuLj45sUVsMwGjdG9fb2pqyszKxodnPpGAQHBzNkyBC751B5acG6devYvn07SUlJHDhwgFmzZlFcXGx2LLsLCwvjtttuw2KxEBYWhr+/f6cbB39/f2JjY3FzcyM8PBx3d3dKS0vNjmWKc+fOcfToUUaOHGl2FFO8/vrrxMbGsmnTJt59910ee+yxTvdsmzvvvBMfHx8SExP58MMPGTRoEM7OzmbHMsX3d30tLy/vdLdRzaTy0oI333yT1NRUVq1axYABA3j66acJDAw0O5bdvfPOOzz11FMAFBUVcf78+U43DlFRUWzduhXDMCgqKqKyshJ/f3+zY5li9+7djBo1yuwYpvHz82t8xkqXLl2oq6vrNLMODfbt28eoUaNYvXo148aNIzg42OxIphk4cCCZmZkApKenEx0dbXKizqPz3bCVn2TixInMnj2byZMnY7FYWLx4cae7z3/99deze/duJk6ciGEYpKSkdNq/NI8ePUpQUJDZMUxz3333MWfOHBITE6mtreVPf/oTXl5eZseyq9DQUF544QVeffVVfH19efLJJ82OZJpZs2Yxd+5cli5dSnh4OPHx8WZH6jT0bCMRERFxKLptJCIiIg5F5UVEREQcisqLiIiIOBSVFxEREXEoKi8iIiLiUFReRMQhZGZmdsodbUXkh1ReRERExKGovIiIw3njjTdISkqisrLS7CgiYoLOtVWqiDi8devWsXnzZlasWIGnp6fZcUTEBJp5ERGHcfjwYVJSUpgyZUqn25ZfRC5SeRERh+Ht7c2LL77IM888Q0VFhdlxRMQkKi8i4jB69+7NDTfcQExMDC+++KLZcUTEJCovIuJwZs6cycaNG8nLyzM7ioiYQE+VFhEREYeimRcRERFxKCovIiIi4lBUXkRERMShqLyIiIiIQ1F5EREREYei8iIiIiIOReVFREREHIrKi4iIiDiU/wdvcKAs4ZVWGAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Instantiate the clustering model and visualizer \n", "model = KMeans()\n", "visualizer = KElbowVisualizer(model, k=(4,12), metric='calinski_harabaz', timings=False)\n", "\n", "visualizer.fit(X) # Fit the data to the visualizer\n", "visualizer.poof() # Draw/show/poof the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is important to remember that the Elbow method does not work well if the data is not very clustered. In this case, you might see a smooth curve and the optimal value of $K$ will be unclear.\n", "\n", "You can learn more about the Elbow method at Robert Grove's [Blocks](https://bl.ocks.org/rpgove/0060ff3b656618e9136b)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Silhouette Visualizer \n", "\n", "Silhouette analysis can be used to evaluate the density and separation between clusters. The score is calculated by averaging the silhouette coefficient for each sample, which is computed as the difference between the average intra-cluster distance and the mean nearest-cluster distance for each sample, normalized by the maximum value. This produces a score between -1 and +1, where scores near +1 indicate high separation and scores near -1 indicate that the samples may have been assigned to the wrong cluster.\n", "\n", "The `SilhouetteVisualizer` displays the silhouette coefficient for each sample on a per-cluster basis, allowing users to visualize the density and separation of the clusters. This is particularly useful for determining cluster imbalance or for selecting a value for $K$ by comparing multiple visualizers.\n", "\n", "Since we created the sample dataset for these examples, we already know that the data points are grouped into 8 clusters. So for the first `SilhouetteVisualizer` example, we'll set $K$ to 8 in order to show how the plot looks when using the optimal value of $K$. \n", "\n", "Notice that graph contains homogeneous and long silhouettes. In addition, the vertical red-dotted line on the plot indicates the average silhouette score for all observations." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Instantiate the clustering model and visualizer \n", "model = KMeans(8)\n", "visualizer = SilhouetteVisualizer(model)\n", "\n", "visualizer.fit(X) # Fit the data to the visualizer\n", "visualizer.poof() # Draw/show/poof the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the next example, let's see what happens when using a non-optimal value for $K$, in this case, 6. \n", "\n", "Now we see that the width of clusters 1 and 2 have both increased and their silhouette coefficient scores have dropped. This occurs because the width of each silhouette is proportional to the number of samples assigned to the cluster. The model is trying to fit our data into a smaller than optimal number of clusters, making two of the clusters larger (wider) but much less cohesive (as we can see from their below-average scores)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhkAAAGACAYAAAAAm3CdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl8TFf/B/DPzGQmeyIJSZCEWCK2WKN2FbWERIittKG1tGjpqqjqYqmi2qKqj1YXqrSWankeRauoVom9nmr1p7UWUYQkIpmZe35/TM2TyDJZZubM8nl7zWvMdu/nzJbvnHPvuSohhAARERGRlallByAiIiLXxCKDiIiIbIJFBhEREdkEiwwiIiKyCRYZREREZBMsMoiIiMgmWGRIcOTIEaSlpSE5ORlJSUkYPXo0fv/9dwDAzz//jIkTJwIApkyZguXLlwMAGjRogGvXrtkl38iRI83rWrt2LVatWlWux+/btw9xcXFISUlBv379kJKSgtTUVOzYsQMAsHjxYsyYMaNcOcpqz5496Nq1KwYMGIDbt28Xuu3u53D//v2455578NVXX5lvT0hIwN17db/99tto0KABfv7553JlsbZTp05hwoQJSE5ORt++ffHggw/iwIEDAIDz58+jRYsWFV72zp07sXDhwnI/buHChdi4cWOF11uQ0WjEuHHj0LNnT3zyySeVXt66deswduzYItclJiaiR48eeOmll6DX6wEAubm5eOaZZ5CYmIiePXvim2++MT/m6NGjSE1NRWJiIkaMGIGMjIxi13fq1Ck88sgjSE5ORnJycqHXx9YSEhKs8v68fPky7r///nI/buvWrUhNTUVSUhIeeeQRXL9+vdj75eXl4a233jJ/LyQnJ2PZsmVFPnPlkZWVheHDh1f48WRjguwqLy9PtGnTRhw/ftx83caNG0WXLl2EwWAodN/JkyeL999/XwghRExMjLh69apdMhZcV8EMZfXTTz+JPn36FLruxIkTonnz5uLq1ati0aJF4pVXXilXjrKaMmWKWLJkicXlffvtt6Jt27bihx9+KHT7vffeK/bv32++TlEUkZiYKOLj48WxY8fKlcWaTp06JTp06CB2795tvu7HH38UrVq1EidPnhTnzp0TzZs3r/Dyy/qa2NKFCxdEkyZNinwOyuv69eti+vTpolmzZuKRRx4xX//bb7+Jzp07i6tXrwqj0SieeuopsWzZMiGEEHPnzhUvvPCCOUeHDh3ExYsXRV5enujcubM4cOCAEEKIVatWidGjRxe73t69e4tt27aZL+/fv1+0bNlSXL9+vVLtKYuuXbtKe38eO3ZMdOjQQZw7d04IIcTs2bPF9OnTi9xPURQxcuRIMXPmTHH79m0hhBDXrl0TgwYNEm+++WaF11/Z9z7ZlofsIsfd5ObmIisrC7du3TJf17dvX/j5+cFoNOLAgQOYOXMmNm/eXOSxixcvxtGjR5GZmYlRo0bhgQceAAAsWbIE//73v6HRaBAdHY3p06ejWrVqSEtLwwMPPIBevXoBQKHLp06dwuzZs5GZmQmj0Yi0tDQMHDgQU6dOBQCMGDECo0aNwo4dO/DDDz/Ay8sLDzzwAJYuXYpt27ZBURTUrFkTL730EsLCwiy2OzY2Fl5eXrhw4UKh63///XfMmDEDmZmZUKlUGDlyJPr161cox7Jly1C9enXzY/R6PV577TXs3bsXGo0GcXFxmDp1KtasWYNvv/0Wnp6eyMrKwuTJk4vN8uWXX+KNN97A8uXL0ahRo0K39e3bF1999RXi4+MBAAcPHkS9evUK9YocOnQIr7/+OnJzc6FSqTBhwgR07doVt27dwssvv4zTp0/jxo0b8PX1xeuvv446deogLS0NzZs3x6FDh3Dx4kW0atUKc+fOhaIomDlzJg4dOgStVouIiAjMmTMHvr6+hXK99957GDBgADp16mS+rl27dliwYAG8vLwK3Xfx4sW4fv06XnzxxSKXt23bhqVLl0KlUkGj0eC5556DTqfDmjVrYDQa4e/vj6eeegpr167F6tWroSgKqlSpgunTp6Nu3bqYMmUKMjMzce7cOdx77724evUq6tevj1GjRqFp06Z45JFH8MMPPyAjIwPDhw/HQw89BKPRiHnz5mHHjh3w9/dHXFwcTp06hZUrV5ozZ2dnY/To0TAYDEhNTcXixYuRkZGBefPmITc3F1qtFk8++SQ6d+6MDRs2YN26dcjNzYWfn1+h5QDAli1bEBoaiueeew67du0yX//tt98iISEBwcHBAIAhQ4Zg1qxZGDNmDL755hu8/vrrAIAaNWqgY8eO2LJlC+Li4uDn54dWrVoBAAYOHIhXX30V169fR1BQUKH1XrlypdDnOj4+Hm+99RY0Gg0A4N1338U333yDvLw85ObmYvLkyejevTsWL16Ms2fP4ty5c8jIyEBcXBw6dOiAjRs34vz585g0aRKSkpKwePFi/P777/j7779x9epVxMbGYvbs2fDz8yuUY8eOHVi6dCn0ej28vLwwefJktGjRAqdOncK0adOQn58PIQQGDhxo/g654/z580hOTsbhw4exePFiXLhwAVeuXMGFCxcQHByMN998s8jn/auvvsKAAQMQEREBAJgwYQIyMzNxt/T0dPzxxx9YtmyZ+TkJCgrCvHnzzN8LWVlZmD17Nk6ePAm9Xo927drhueeeg4eHR4nvr6lTp+L27dtISUnBhg0bcPr06WK/2/bt24fZs2fDx8cHt27dwqpVqzBt2jScOXMGarUajRs3xowZM6BWs4PfqmRXOe7ogw8+EHFxcSIhIUE8++yzYu3ateLWrVtCiMK9AHf3ZCxfvlwIIcR///tf0aRJE5Gfny/WrVsnhgwZInJycoQQpl+kI0eOFEII8eCDD4otW7aY13vnsl6vF7179zb3pty8eVMkJiaKw4cPm9dVXE/GF198IZ588kmh1+uFEEKsWbOm2F91xfVkbN26VbRv317cunXL/KtZr9eLbt26ia1btwohhLh06ZLo1KmTOHToUJEcBS1cuFA8/vjjIj8/XxiNRjFlyhTzL6fSel5iYmLEokWLRGxsrJg7d26xt588eVLcc889Ii8vTwghxPPPPy927Nhh/qWYmZkpevToYf7VdunSJdG5c2dx4cIFsWXLFjFz5kzz8qZPny5mzJhhfu4nTpwojEajyMrKEh07dhR79+4V6enpolevXkJRFCGEEPPmzRMHDx4ski0pKUns3Lmz2HYJUfjX3N29EgUvd+vWzfw6f//992Lx4sVF7rNv3z4xbNgw83vy+++/F4mJiebnd8SIEeZl3/0eXblypRBCiJ9//lk0adJE3L59W6xevVo88MAD4vbt2yIvL0+MHDlSPPjgg6W24dq1a6Jdu3biyJEjQgghTp48Kdq0aSPOnj0r1q9fL+Lj40VWVlaJz4cQQqxfv75QT8b06dPFv/71L/Pl06dPi/j4eCGEEE2aNBEZGRnm29544w3x6quvis2bN5s/T3d06tRJnDhxosj6Nm3aJFq3bi06dOggJk6cKFauXGnuxTh//rxIS0sTubm5QgghNm/eLJKSkoQQpue+a9eu4ubN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8eLFxU6fTETW4TgHRyBycu+9957d1/nXX3/h3LlzAEwzhso6ZsgXX3yBY8eOQafToVu3bnj//fcRHR2Nhx9+uNTHffnllxVan8y2ElHZsSeDqJwuXbqEBx98EKmpqRg4cCCOHDkCoOReiyVLlqBfv37o2bMnjh49CgD4888/kZaWhuTkZAwZMgTHjh0DAEyZMgUbNmwwP7ZBgwYATNP3Tp48GampqUhJScHmzZsBALNmzcLx48fxyiuvYNasWcjIyDDPGLpx40b0798fKSkpeP7555GXl1ck26ZNm9C7d2/06dMHU6ZMgV6vR25uLp555hkkJSUhOTkZGzduBGA6aNucOXPQv39/9O3bFx999BEAYOzYsRBCYNCgQZg6dSouX76Mxx57DCdOnDDnz8zMxGOPPYbExESkpKSYDxBnqX0bNmzAU089hZEjR6J79+7mgzDe3dY75syZg+XLl5svT5w4Edu2bcPJkyeRlpaGAQMGoGvXrlixYkWR5+JOljvrvdMbdezYMQwdOhT9+/fHyJEjzUXdhx9+iL59+6Jfv3548cUXiyyPiGC9Q70TuYvFixeL9957TwghxE8//STef/99IYQQXbt2FefOnRPr1683H/K5a9eu5ttXrlwpJkyYIIQQYsCAAWLr1q1CCNNhoe+9916Rl5cnJk+eLNavX29eV0xMjBBCiP9v735ComqjOI5/RRMK07QirAyKElICTdERITElMBphRKRMcVGGgZqgQpDYLErScZNS0CokKIpEIhwoM8JILAVrUWpWNEoopYaYpo7X8y6G7uvUO726cOX5rIb79znPLO7h3sv9ORwOaWpqEpF/I7CHhoakq6tL8vLyRERkeHhYUlNTRUTk/fv3cuLECZmdnRURkfr6erl27ZpXHaOjo5KUlCQjIyMiIlJRUSFtbW1SW1trRtGPj4/L4cOHpa+vT27fvi01NTUi4omjz8vLk+7ubq9xLp2HpcvtdrtcuXJFRET6+/slJydnWfU1NzdLSkqKTE1NyczMjBw6dEj6+/u9al3q7du3YrPZzOMkJyfL3NycXLp0STo7O0XEE+keExMjIiINDQ3S0NDwRw2//sO5uTmxWq3y5csXERHp6OiQgoICcbvdkpiYKPPz82IYhlRXV8vo6Ogf41FqrdPHJUqtUFJSEiUlJfT19ZGSkkJeXt5ft09PTwdg7969PHr0iOnpaYaGhjhy5AjgiYUOCQnh06dPPo/R2dnJ7Owszc3NAMzMzDA4OOgzqfXly5e4XC5ycnIAcLvdREVFeW3T29vLwYMHzYA/h8MBwPXr183Y+bCwMNLS0nj16hU9PT309fXR1dVljmFgYID4+Pi/1g/Q3d1NfX094LljcPfu3WXVBxAbG2umW0ZERDA5Oemz7qioKObn53G5XPT29pKamkpgYCDnz5/n+fPn3Lhxg4GBgWVnDn3+/Jnh4WHOnj1rLvvx4wcBAQHExsaSnZ1NWloaJ0+e/N/PKyu1FmmTodQKxcXF0drayrNnz3A6nbS0tHDz5k2f2/8K2vLz8wM8QVzy29f8RQTDMPDz8zPXud1uc/3i4iIOh4Po6GgAxsbGCAkJ8RlvbxgGGRkZVFVVAZ7HEYZheG2zNH0UYGJiwhzLf43NMAwqKyvN5mhiYoINGzb4rPtv5/r48aNXmqav+h4+fOiVg7J0fnzJzMzE6XTS29tLYWEhAGVlZQQHB5OamsrRo0dpbW39z31FBD8/PxYWFsxx7dy503x3xDAMxsbGAE8z9vr1azo6Ojh9+jT19fUkJCQsaz6UWiv0nQylVqiuro4HDx5gs9morq7m3bt3K9o/KCiIiIgIHj9+DHgSG8fGxti3bx+bNm3iw4cPADx58sTcx2KxcOfOHQC+fv1KZmYmIyMj+Pv7mxfEgIAA83diYiJtbW2Mj48jItjtdpqamrzGceDAAd68ecO3b98ATyBbe3s7FouF+/fvA55Gor29nYSEBCwWC/fu3cPtdjM9PU1ubq75jsn/iY+Px+l0Ap4Go7Cw0Gy6/lafL0tr/Z3VasXpdOJyucy7LC9evKC0tJT09HS6u7sB/mi6QkNDGRwcRER4+vQpAHv27GFycpKenh4AmpubqaioYGJigoyMDCIjIzl37hzJyckMDAwsay6UWkv0ToZSK5Sfn095eTktLS34+/tz8eLFFR/D4XBgt9tpbGxk3bp1NDY2EhgYSG5uLmVlZVitViwWC1u3bgWguLgYu93OsWPHzDsKu3btYuPGjUxNTVFZWUlNTQ3bt28nPz+fW7duUVxcTEFBAYuLi+zfv58zZ854jWHbtm1cuHCBU6dOsbi4SExMDFlZWfz8+RO73Y7VasUwDIqKioiOjiYyMhKXy4XNZmNhYYGsrCwSExOXVW9paSlVVVVkZmYSEBBAXV2dV5Phq75fF/ffbd682avWpcLDwwkNDSUmJsY8R0lJCbm5uQQHB7N792527Njxx0u65eXlFBUVsWXLFuLi4vj+/TuBgYFcvXqVy5cvMzc3R1BQELW1tYSFhXH8+HGys7NZv3494eHh2Gy2Zc2FUmuJprAqpZRSalXo4xKllFJKrQptMpRSSim1KrTJUEoppdSq0CZDKaWUUqtCmwyllFJKrQptMpRSSim1KrTJUEoppdSq0CZDKaWUUqviHyfIKv3cF98wAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Instantiate the clustering model and visualizer \n", "model = KMeans(6)\n", "visualizer = SilhouetteVisualizer(model)\n", "\n", "visualizer.fit(X) # Fit the data to the visualizer\n", "visualizer.poof() # Draw/show/poof the data" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "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.6.5" } }, "nbformat": 4, "nbformat_minor": 1 }