{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.cluster import KMeans\n",
    "from sklearn import datasets\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "from sklearn.metrics import silhouette_score\n",
    "data = datasets.load_iris()\n",
    "X = data.data\n",
    "y = data.target\n",
    "\n",
    "sse_ = []\n",
    "for k in range(2, 8):\n",
    "    kmeans = KMeans(n_clusters=k).fit(X)\n",
    "    sse_.append([k, silhouette_score(X, kmeans.labels_)])\n",
    "\n",
    "plt.plot(pd.DataFrame(sse_)[0], pd.DataFrame(sse_)[1]);\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\envs\\Neural\\lib\\site-packages\\sklearn\\utils\\deprecation.py:144: FutureWarning: The sklearn.metrics.classification module is  deprecated in version 0.22 and will be removed in version 0.24. The corresponding classes / functions should instead be imported from sklearn.metrics. Anything that cannot be imported from sklearn.metrics is now part of the private API.\n",
      "  warnings.warn(message, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1645f3cf5b0>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.cluster import KMeans\n",
    "from sklearn import datasets\n",
    "from yellowbrick.cluster import KElbowVisualizer\n",
    "data = datasets.load_iris()\n",
    "X = data.data\n",
    "y = data.target\n",
    "\n",
    "# Instantiate the clustering model and visualizer\n",
    "model = KMeans()\n",
    "visualizer = KElbowVisualizer(model, k=(1,10), timings=False ,locate_elbow=False)\n",
    "visualizer.fit(X)        # Fit the data to the visualizer\n",
    "visualizer.show()        # Finalize and render the figure\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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7969e6vO88orr6CwsLBVnyVqCxjkRDLx8/NDWlqaUyHoifbt24eEhAR8+umn0Ol0kp0nOzsb/JYs0e0xyIlk0qFDBzz44INYsWJFo/eys7Mdj0QEgDlz5mDz5s0oKCjAmDFj8Ic//AGjR4/G7Nmz8dFHHyE5ORkjRoxo8HjK1atXY+zYsUhOTsaJEycA1K4M+Pvf/x7jxo3Dk08+6XiYw6pVqzB58mSMHDkSGzZsaFDLmTNnMGnSJIwePRrJyck4cuQIjh8/jjfffBPffvst0tPTG+x/9epVTJs2DY899hjGjBmD7777rsH7q1atavCAibrRgxMnTuCpp57CuHHjMGHCBJw9exbvvfceLl26hClTpqCsrAxHjhzBhAkT8MQTT+DZZ59Ffn4+AGDSpEl44YUXkJSUhCNHjmDWrFkYO3Ysxo4di40bN7bmHw+R12CQE8lozpw5yMrKajTE3pyTJ0/iueeew6effoqDBw+isLAQH3/8MR5//HF8/PHHjv06d+6MLVu24Pe//z3mzJkDAFiyZAmefPJJbN68Ge+88w7S09MdIwI1NTX4z3/+g4kTJzY436xZszBp0iR89tlneOWVV/Diiy+iS5cumD59OoYPH47XXnutwf5vvfUWYmNjsX37drz++utOPzLzH//4B5555hls3rwZTz31FHJycjBlyhR06NAB7733HrRaLebNm4c33ngD//73v/HMM88gLS3N8fnu3btjx44duH79Oq5du4YtW7Zg7dq1OHDggNNtS+SNuEQrkYx0Oh0WLVqEtLQ0bN261anPtGvXDj179gQAdOzYEQ888AAAIDIyssF98V//+tcAgKFDh2LWrFkoLy/H3r178dNPP+Htt98GAFitVkevtnfv3o3OZTKZcP78eTz66KMAgL59+yIkJAQ//fTTbevbv38//vSnPwGoDdf6FxfNGTp0KF577TV8++23GD58OB5++OEG7589exb5+fmYOnWqY1v92xJ19Xft2hVnzpzB5MmTMWTIELz88stOnZ/IWzHIiWSWmJjYaIhdEIQG94UtFovjd7Va3eDzt1ubvP52u90OlUoFURTxj3/8w/FgkkuXLiEiIgI7d+5scr3+pu5N2+32Zh+4oVKpGjyG9Mcff0RcXFyDv5soio3+biNGjEC/fv2wa9cu/P3vf8c333yDxYsXO/YTRRHR0dH49NNPAQA2mw1XrlxxvF9Xf1hYGLZt24Y9e/bgv//9L5544gls27ZN8idQEcmFQ+tEHqBuiP3SpUsAasMoPz8fZrMZV69ehdFobPExP/vsMwDAV199hS5duiAwMBCDBw923AM/ffo0Ro8ejerq6tseQ6fTITo6Gl9++SUAICcnB1euXEHXrl1v+xmDwYBt27YBqA3x5557rkGwh4WF4fTp0wCAI0eOOB4PO2PGDBw9ehQpKSl48cUXcezYMQC1FyQ2mw3x8fG4du2aY6j8k08+wcyZMxudPzMzE7NmzcKwYcMwb948BAYGori42LlGI/JC7JETeYC6IfbJkycDqB0eHjp0KEaNGoWoqCjo9foWH/Ps2bMYM2YMtFotli9fDgCYN28e0tPTHc+xf/311+8443zlypVYsGABVq1aBT8/P6xatarRqEB906dPx7x58/CrX/0KKpUKr7/+eoMgHzlyJHbs2IGRI0eiV69ejtsEzz//PF599VX85S9/gZ+fHxYsWAAAGDZsGKZMmYK//vWveOutt7BkyRKYzWbodLomJwoOGTIEX375JUaNGgWNRoNf/epXrf7qG5E34NPPiIiIvBiH1omIiLwYg5yIiMiLMciJiIi8GIOciIjIizHIiYiIvBiDnIiIyIsxyImIiLwYg5yIiMiL/T/ISNJ61DRCbwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.cluster import KMeans\n",
    "from sklearn import datasets\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "data = datasets.load_iris()\n",
    "X = data.data\n",
    "y = data.target\n",
    "\n",
    "# calculate distortion for a range of number of cluster\n",
    "distortions = []\n",
    "for i in range(1, 11):\n",
    "    km = KMeans(\n",
    "        n_clusters=i, init='random',\n",
    "        n_init=10, max_iter=300,\n",
    "        tol=1e-04, random_state=0\n",
    "    )\n",
    "    km.fit(X)\n",
    "    distortions.append(km.inertia_)\n",
    "\n",
    "plt.plot(range(1, 11), distortions, marker='o')\n",
    "plt.xlabel('Number of clusters')\n",
    "plt.ylabel('Distortion')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.8.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
