{ "cells": [ { "cell_type": "markdown", "id": "503e1f1a-363e-49b3-bee9-efc04490b935", "metadata": {}, "source": [ "# Grouping and Clustering" ] }, { "cell_type": "markdown", "id": "8b2b0539-7b95-47ff-bfc5-ca8564c6aec5", "metadata": {}, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": null, "id": "98871f2f-54d0-4fd2-8498-18d4f67c3813", "metadata": {}, "outputs": [], "source": [ "import pandas as pd \n", "import numpy as np \n", "import scipy as sp\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from sklearn.cluster import AgglomerativeClustering, KMeans\n", "from sklearn.pipeline import make_pipeline\n", "from sklearn.preprocessing import StandardScaler" ] }, { "cell_type": "markdown", "id": "2e5127c2-895c-4658-9b0d-0ab43022be9a", "metadata": {}, "source": [ "## SKU Example" ] }, { "cell_type": "code", "execution_count": null, "id": "40342323-72f1-472f-95de-1433389f17d9", "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>ADS</th>\n", " <th>CV</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>1</td>\n", " <td>0.68</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>3</td>\n", " <td>0.40</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>1</td>\n", " <td>0.59</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>2</td>\n", " <td>0.39</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>9</td>\n", " <td>0.11</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " ADS CV\n", "0 1 0.68\n", "1 3 0.40\n", "2 1 0.59\n", "3 2 0.39\n", "4 9 0.11" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv(\"DATA_2.01_SKU.csv\"); df.head()" ] }, { "cell_type": "code", "execution_count": null, "id": "f47a692d-1f33-493b-8051-c1b6eff06f12", "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>ADS</th>\n", " <th>CV</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>count</th>\n", " <td>100.000000</td>\n", " <td>100.000000</td>\n", " </tr>\n", " <tr>\n", " <th>mean</th>\n", " <td>5.610000</td>\n", " <td>0.396000</td>\n", " </tr>\n", " <tr>\n", " <th>std</th>\n", " <td>4.211324</td>\n", " <td>0.237317</td>\n", " </tr>\n", " <tr>\n", " <th>min</th>\n", " <td>1.000000</td>\n", " <td>0.050000</td>\n", " </tr>\n", " <tr>\n", " <th>25%</th>\n", " <td>2.000000</td>\n", " <td>0.130000</td>\n", " </tr>\n", " <tr>\n", " <th>50%</th>\n", " <td>3.000000</td>\n", " <td>0.400000</td>\n", " </tr>\n", " <tr>\n", " <th>75%</th>\n", " <td>10.000000</td>\n", " <td>0.590000</td>\n", " </tr>\n", " <tr>\n", " <th>max</th>\n", " <td>14.000000</td>\n", " <td>0.960000</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " ADS CV\n", "count 100.000000 100.000000\n", "mean 5.610000 0.396000\n", "std 4.211324 0.237317\n", "min 1.000000 0.050000\n", "25% 2.000000 0.130000\n", "50% 3.000000 0.400000\n", "75% 10.000000 0.590000\n", "max 14.000000 0.960000" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "code", "execution_count": null, "id": "a451bcfa-d3a6-4f32-ab46-857624bab1ce", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/tmp/ipykernel_369678/530051474.py:1: FutureWarning: Dropping of nuisance columns in DataFrame reductions (with 'numeric_only=None') is deprecated; in a future version this will raise TypeError. Select only valid columns before calling the reduction.\n", " df.median()\n" ] }, { "data": { "text/plain": [ "ADS 3.0\n", "CV 0.4\n", "dtype: float64" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.median()" ] }, { "cell_type": "markdown", "id": "706989dc-9c20-449d-bfc0-b6821aed5c37", "metadata": {}, "source": [ "### Manual Segregation" ] }, { "cell_type": "code", "execution_count": null, "id": "8e54065a-e53d-4a87-b8cb-c2306073e1a2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.8, 2, 'Crickets')" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtIAAAFzCAYAAAATwu58AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAzYElEQVR4nO3de5xdZX3o/893k3EyMhGGCWLNJIIEbRHGgKMSEBpvaFsNtemxWhXxRv219V4JHq1aT4+20V/1qK1HalGxYvUQBX9aLVYJl8OlTjAMF1GCXDKoIQwTnYHJMHE/vz/WDmRCZs+elX1Ze+bzfr3mtfd+1lrP891rP3vNd5551lqRUkKSJEnS3JRaHYAkSZLUjkykJUmSpBxMpCVJkqQcTKQlSZKkHEykJUmSpBxMpCVJkqQcFrU6gFosXbo0HXnkka0OQ632k59kj099amvjkCRJ89bmzZvvSykdXsu6bZFIH3nkkQwODrY6DLXamjXZ46ZNrYxCkiTNYxFxV63rOrVDkiRJysFEWpIkScrBRFqSJEnKwURakiRJysFEWpIkScrBRFqSJEnKwURakiRJysFEWpIkScrBRFqSJEnKoWGJdEScHxH3RsRN+1n2rohIEbG0Ue3PFyPjk9ywbScj45MN3UaSJElz08hbhH8B+DRwwd6FEbEcOB24u4FtzwuXbLmH9RuH6CiVmCqX2bCun7WrltV9G0mSJM1dw0akU0pXAPfvZ9HHgXOA1Ki254OR8UnWbxxi11SZscnd7Joqc87GoaqjzHm2kSRJUj5NnSMdEWcA96SUbqhh3bMjYjAiBnfs2NGE6IpleHSCjtL0j6ejVGJ4dKKu20iSJCmfpiXSEfFY4L8D769l/ZTSeSmlgZTSwOGHH97Y4Aqor6eLqXJ5WtlUuUxfT1ddt5EkSVI+zRyRPho4CrghIu4E+oDrI+IJTYyhbfR2d7JhXT+LO0os6VzE4o4SG9b109vdWddtJEmSlE8jTzacJqV0I/D4Pa8ryfRASum+ZsXQbtauWsYpK5cyPDpBX09XTQlxnm0kSZI0dw1LpCPiK8AaYGlEDAMfSCn9S6Pam696uzvnnAzn2UaSJElz07BEOqX0ylmWH9motiVJkqRG886GkiRJUg4m0pIkSVIOJtKSJElSDibSkiRJUg4m0pIkSVIOJtKSJElSDibSkiRJUg4m0pIkSVIOJtKSJElSDibSkiRJUg4m0pIkSVIOJtKSJElSDibSkiRJUg4m0pIkSVIOJtIFt3X7GBcNbmPr9rFWhyJJmoOR8Ulu2LaTkfHJVociqUEWtToAzez9F9/IBdfe/fDrM1ev4ENnHN/CiCRJtbhkyz2s3zhER6nEVLnMhnX9rF21rNVhSaozR6QLauv2sWlJNMAF19ztyLQkFdzI+CTrNw6xa6rM2ORudk2VOWfjkCPT0jxkIl1QW7btnFO5JKkYhkcn6ChN//XaUSoxPDrRoogkNYqJdEGtWn7onMolScXQ19PFVLk8rWyqXKavp6tFEUlqFBPpglp5xBLOXL1iWtmZq1ew8oglLYpIklSL3u5ONqzrZ3FHiSWdi1jcUWLDun56uztbHZqkOvNkwwL70BnHc+ZJR7Jl205WLT/UJFqS2sTaVcs4ZeVShkcn6OvpMomW5ikT6YJbecQSE2hJakO93Z0m0NI859QOSZIkKQcTaUmSJCkHE2lJkiQpBxNpSZIkKQcTaUmSJCkHE2lJkiQpBxNpSZIkKQcTaUmSJCkHE2lJkiQpBxNpSZIkKQcTaUmSJCkHE2lJkiQpBxNpSZIkKQcTaUmSJCkHE2lJkiQph4Yl0hFxfkTcGxE37VX20Yi4NSKGIuIbEXFoo9pvlZHxSW7YtpOR8cmW1VfvGCRJkvRoixpY9xeATwMX7FX2PeA9KaXdEfH3wHuA9Q2Moaku2XIP6zcO0VEqMVUus2FdP2tXLWtqffWOQZIkSfvXsBHplNIVwP37lF2aUtpdeXkt0Neo9pttZHyS9RuH2DVVZmxyN7umypyzcSj3qHCe+uodgyRJkmbWyjnSrwe+M9PCiDg7IgYjYnDHjh1NDCuf4dEJOkrTd2dHqcTw6ETT6qt3DJIkSZpZSxLpiHgvsBv48kzrpJTOSykNpJQGDj/88OYFl1NfTxdT5fK0sqlymb6erqbVV+8YJEmSNLOmJ9IRcRbwEuBVKaXU7PYbpbe7kw3r+lncUWJJ5yIWd5TYsK6f3u7OptVX7xgkSZI0s0aebPgoEfFi4Bzgd1NKDzaz7WZYu2oZp6xcyvDoBH09XQecwOapr94xSJIkaf8alkhHxFeANcDSiBgGPkB2lY5O4HsRAXBtSunNjYqhFXq7O+uavOapr94xSJIk6dEalkinlF65n+J/aVR7kiRJUjN5Z0NJkiQpBxNpSZIkKQcTaUmSJCkHE2lJkiQpBxNpSZIkKQcTaUmSJCkHE2lJkiQpBxNpSZIkKQcTaUmSJCkHE2lJkiQpBxNpSZIkKQcTaUmSJCkHE2lJkiQpBxNpSZIkKQcT6YIbvGOEf7j0JwzeMVLzNiPjk9ywbScj45Nzqq/adlK7qXd/9vtRPEX4TIoQw3zlvm2NIuz3IsRQq0WtDkAze/XnruWqrVnC+8kfbOXUlb186Y0nVd3mki33sH7jEB2lElPlMhvW9bN21bJZ66u2ndRu6t2f/X4UTxE+kyLEMF+5b1ujCPu9CDHMhSPSBTV4x8jDSe8eV24dqToyPTI+yfqNQ+yaKjM2uZtdU2XO2TjEyPhk1fqqbSe1m3r3Z78fxVOEz6QIMcxX7tvWKMJ+L0IMc2UiXVBX3HbfnMoBhkcn6ChN/0g7SiWGRyeq1ldtO6nd1Ls/+/0oniJ8JkWIYb5y37ZGEfZ7EWKYKxPpgjrtmKVzKgfo6+liqlyeVjZVLtPX01W1vmrbSe2m3v3Z70fxFOEzKUIM85X7tjWKsN+LEMNcmUgX1MBRvZy6snda2akrexk4qneGLaC3u5MN6/pZ3FFiSeciFneU2LCun97uzqr1VdtOajf17s9+P4qnCJ9JEWKYr9y3rVGE/V6EGOYqUkqtjmFWAwMDaXBwsNVhtMTgHSNccdt9nHbM0qpJ9N5GxicZHp2gr6frUZ2vWn3VtiuENWuyx02bWhmF2kS9+3Phvx8LUBE+kyLEMF+5b1ujCPu91TFExOaU0kBN65pIq22YSEuSpAabSyLt1A5JkiQpBxNpSZIkKQcTaUmSJCkHE2lJkiQpBxNpSZIkKQcTaUmSJCkHE2lJkiQpBxNpSZIkKQcTaUmSJCkHE2lJkiQpBxNpSZIkKQcTaUmSJCkHE2lJkiQpBxNpSZIkKYeGJdIRcX5E3BsRN+1VdlhEfC8ibqs89jSqfUmSJKmRGjki/QXgxfuUnQt8P6V0DPD9yusFb2R8khu27WRkfLLVoUjSAfF4pqLaun2Miwa3sXX7WKtD0TyyqFEVp5SuiIgj9yk+A1hTef5FYBOwvlExtINLttzD+o1DdJRKTJXLbFjXz9pVy1odliTNmcczFdX7L76RC669++HXZ65ewYfOOL6FEWm+aPYc6SNSSr+oPP8lcEST2y+UkfFJ1m8cYtdUmbHJ3eyaKnPOxiFHciS1HY9nKqqt28emJdEAF1xztyPTqouWnWyYUkpAmml5RJwdEYMRMbhjx44mRtY8w6MTdJSmfwQdpRLDoxMtikiS8vF4pqLasm3nnMqluWh2Ir09In4LoPJ470wrppTOSykNpJQGDj/88KYF2Ex9PV1MlcvTyqbKZfp6uloUkSTl4/FMRbVq+aFzKpfmotmJ9DeB11aevxa4pMntF0pvdycb1vWzuKPEks5FLO4osWFdP73dna0OTZLmxOOZimrlEUs4c/WKaWVnrl7ByiOWtCgizSeRzbBoQMURXyE7sXApsB34AHAx8DVgBXAX8PKU0v2z1TUwMJAGBwcbEmcRjIxPMjw6QV9Pl790qlmzJnvctKmVUUiqwuOZimrr9jG2bNvJquWHmkSrqojYnFIaqGXdRl6145UzLHp+o9psV73dnc3/hdPdDePjj7z+whdgcBA+/enmxiFpXmnJ8azI3vEOeNKT4O1vz16/6EWwfDl87nPZ63e9C5Ytg5Ur4ZZb4Nxz4YMfzI7Rf/VX0+u68054yUvgppseXf47vwNPfSqkBAcfDJ//fPa6miOPzI77S5c++nfCPLTyiCUm0Ko772yofHbvbnUEklR8p5wCV1+dPS+X4b774OabH1l+9dVw8smwdm2WROd19NGwZQvccAO89rXw4Q8fUNiSamMirUe780543vOgvx+e/3y4u3LZoLPOgje/GZ79bDjnHLj8cli1Kvs54QQYq1xK6KMfhWc+M9v+Ax/Iyh54AP7gD+DpT4fjjoOvfrX570uSmu3kk+Gaa7LnN9+cHf+WLIHRUZichB//GE48Mfuv4F/+5aO337w5O24+/enwj/9YW5u//jX0VG4cvG+9L3lJ9elxv/gFnHZadlw/7ji48sra2pQWqIZN7VDBTUxkB8o97r8/GxEBeMtbshGN174Wzj8f3vpWuPjibNnwcDaCctBB8NKXZgf2U07J/iW4eDFceincdhv8139l/2JcuxauuAJ27IAnPhG+/e2snl/9qpnvVpJa44lPhEWLsgGJq6+G1avhnnuy5PqQQ+D44+Exj5l5+9e9Lptyd9pp8O53z7ze7bdnx/SxMXjwQbjuunzxXnhhNv3kve+F3/wmq0vSjByRXqi6urJ/A+75+dCHHll2zTXwp3+aPX/Na+Cqqx5Z9t/+W5ZEQ5ZAv/Od8MlPws6d2S+LSy/Nfk44IRtlufXWLLE+/nj43vdg/fpshOOQQ5rzPiWp1U4+OUui9yTSq1c/8vqUU2bebufO7Oe007LXr3nNzOvumdpx++3wiU/A2Wfni/WZz8zmV3/wg3DjjdnouaQZzZpIR8TbIuJxkfmXiLg+Ik5vRnAqoIMPfuT5uedmJ8xMTGS/DG69NRuFfs97HknQt26FN7wBnvIUuP76LKF+3/umJ+6SNJ/tmSd9443ZdImTTsoGLPbMj663Pf8JhGyAY+/re+/aVX3b007Ltl22LJvOd8EF9Y9PmkdqGZF+fUrp18DpQA/wGuDvGhqVWuvkk+Hf/i17/uUvw6mn7n+922/PEuP167NRjFtvzf4leP75j5z9fc89cO+98POfw2MfC69+dfbvyeuvb857kaRWO/lk+Na34LDDsv/oHXZYNtJ8zTXVE+lDD81+9vxX8Mtfrq29q67KRqghuzLHli1ZMr1tWzbtrpq77oIjjoA3vQne+EaP1dIsapkjHZXH3we+lFK6OSKi2gZqc5/6VDYv76MfhcMPz/7Ntz+f+ARcdhmUSvC0p8Hv/R50dmYnz6xena3T3Q3/+q/ZyPS7352t29EBn/lM096OJLXU8cdnV+vYM2VuT9n4eHbpuWo+/3l4/eshAk6v8s/gPXOkU8rmXO+5vN4pp8BRR8Gxx2aXyDvxxOrtbdqUHfs7OrLjtyPSUlWz3pAlIj4PLAOOAp4OHARsSik9o/HhZeb7DVlUI2/IIkmSGqzeN2R5A7AK+FlK6cGI6AVedwDxSZIkSW2vljnSCTgWeGvl9cHA4oZFJEmSJLWBWhLpfwJWA3tu+T0G1HhVeEmSJGl+qmVqx7NTSidGxI8AUkqjEVHl6vGSJEnS/FfLiPRURBxENsWDiDgcKFffRJIkSZrfakmkPwl8A3h8RPxP4Crgww2NSpIkSSq4Wad2pJS+HBGbgeeTXVP6D1NKP254ZJIkSVKBzZhIR8Rhe728F/jK3stSSvc3MrAiGxmfZHh0gr6eLnq7Oxd8HFK78bsjSaqHaiPSm8nmRe99F8M9rxPw5AbGVViXbLmH9RuH6CiVmCqX2bCun7Wrli3YOKR243dHklQvM86RTikdlVJ6cuXxqH1eL8gkemR8kvUbh9g1VWZscje7psqcs3GIkfHJBRmH1G787kiS6qmWkw2JiJ6IeFZEnLbnp9GBFdHw6AQdpem7rKNUYnh0YkHGIbUbvzuSpHqa9WTDiHgj8DagD9gCnARcAzyvoZEVUF9PF1Pl6Vf+myqX6evpWpBxSO3G744kqZ5qGZF+G/BM4K6U0nOBE4CdjQyqqHq7O9mwrp/FHSWWdC5icUeJDev6m36yUlHikNqN3x1JUj3VcmfDXSmlXRFBRHSmlG6NiKc2PLKCWrtqGaesXNryM/6LEofUbvzuSJLqpZZEejgiDgUuBr4XEaPAXY0Mquh6uzsL8cu3KHFI7cbvjiSpHmq5IcvLKk8/GBGXAYcA321oVJIkSVLBzThHOiIeGxEde71+KnAisCil9FAzgpMkSZKKqtrJht8FjgSIiJVkV+p4MvAXEfF3jQ9NkiRJKq5qiXRPSum2yvPXAl9JKb0F+D3gDxoemSRJklRg1RLptNfz5wHfA6hM6yjvdwtJkiRpgah2suFQRHwMuAdYCVwKULmChyRJkrSgVRuRfhNwH9k86dNTSg9Wyo8FPtbguCRJkqRCm3FEOqU0ATzqpMKU0tXA1Y0MSpIkSSq6Wm4RLkmSJGkfJtKSJElSDrMm0hFxfDMCkSRJktpJLSPS/xQR/xURfx4RhzQ8IkmSJKkNzJpIp5ROBV4FLAc2R8SFEfHChkcmSZIkFVhNc6Qrdzh8H7Ae+F3gkxFxa0T8USODkyRJkoqqljnS/RHxceDHZHc4fGlK6Xcqzz+ep9GIeEdE3BwRN0XEVyJicZ56GmlkfJIbtu1kZHyy4dvlbUuSWsFjluqlWl+yn6kdVLuz4R6fAv4F+O+Va0sDkFL6eUS8b64NRsQy4K3AsSmliYj4GvAK4AtzratRLtlyD+s3DtFRKjFVLrNhXT9rVy1ryHZ525KkVvCYpXqp1pfsZ2oXtcyR/t2U0gV7J9F7LftSznYXAV0RsQh4LPDznPXU3cj4JOs3DrFrqszY5G52TZU5Z+PQrH8R59kub1uS1Aoes1Qv1fqS/UztZMYR6Yi4EUj7WwSklFJ/ngZTSvdExMeAu4EJ4NKU0qX7af9s4GyAFStW5Gkql+HRCTpKJXZRfriso1RieHSC3u7Oum6Xty1JagWPWaqXan1pz3P7mdpBtakdL2lEgxHRA5wBHAXsBP5PRLw6pfSve6+XUjoPOA9gYGBgfwl9Q/T1dDFVLk8rmyqX6evpqvt2eduSpFbwmKV6ma0v2c/ULmac2pFSuqvazwG0+QLgjpTSjpTSFPB14OQDqK+uers72bCun8UdJZZ0LmJxR4kN6/pn/Ss4z3Z525KkVvCYpXqp1pfsZ2onkdL+B3sj4qqU0nMiYozpUzz2TO14XK4GI54NnA88k2xqxxeAwZTSp2baZmBgIA0ODuZpLreR8UmGRyfo6+ma05c3z3Z521pw1qzJHjdtamUU0oLnMUv1Uq0v2c/UKhGxOaU0UMu6M07tSCk9p/K4pF6BVeq7LiIuAq4HdgM/ojKFo0j2/FXcjO3ytiVJreAxS/VSrS/Zz9QOarn8HQAR8Xjg4es9p5TuzttoSukDwAfybi9JkiS1Wi03ZFkbEbcBdwCXA3cC32lwXJIkSVKh1XKL8P8BnAT8NKV0FPB84NqGRiVJkiQVXC2J9FRKaQQoRUQppXQZUNMEbEmSJGm+qmWO9M6I6AauBL4cEfcCDzQ2LEmSJKnYahmRPgN4EHg78F3gduClDYxJkiRJKrxaRqQ7gGMrzy9OKf2qgfFIkiRJbWHGRDoiOoHPAn9IdsWOAJ4UEd8A3pxSeqgpEUqSJEkFVG1qx3vJRqOXp5ROSCmtAlaQJd9/3YTYJEmSpMKqlkj/EfCmlNLYnoLK8z8HXtbowCRJkqQiq5ZIl1NKD+5bmFIaB1LjQpIkSZKKr9rJhikiesjmRu+r3KB4JEmSpLZQLZE+BNjM/hNpR6QlSZK0oM2YSKeUjmxiHJIkSVJbqeWGLJIkSZL2YSJdZyPjk9ywbScj45N12SZPfdJ84/dAc2F/Ub3YlzSbWu5sqBpdsuUe1m8coqNUYqpcZsO6ftauWpZ7mzz1SfON3wPNhf1F9WJfUi1qGpGOiOdExOsqzw+PiKMaG1b7GRmfZP3GIXZNlRmb3M2uqTLnbByq+ldstW3y1CfNN34PNBf2F9WLfUm1mjWRjogPAOuB91SKOoB/bWRQ7Wh4dIKO0vTd2VEqMTw6kWubPPVJ843fA82F/UX1Yl9SrWqZ2vEy4ATgeoCU0s8jYklDo2pDfT1dTJWnX157qlymr6cr9zZzrU+ab/J8r7Rw2V9UL/Yl1aqWqR0PpZQSlWtHR8TBjQ2pPfV2d7JhXT+LO0os6VzE4o4SG9b109vdmWubPPVJ843fA82F/UX1Yl9SrSLLkausEPFXwDHAC4GPAK8HLkwpfarx4WUGBgbS4OBgs5o7ICPjkwyPTtDX01XzF67aNnnqm7fWrMkeN21qZRRqAb8Hmgv7i+rFvrQwRcTmlNJALevOOrUjpfSxiHgh8GvgqcD7U0rfO8AY5609o8n12iZPfdJ84/dAc2F/Ub3YlzSbmi5/V0mcTZ4lSZKkilkT6YgYozI/ei+/AgaBd6WUftaIwCRJkqQiq2VE+hPAMHAhEMArgKPJruJxPrCmQbFJkiRJhVXLVTvWppQ+m1IaSyn9OqV0HvCilNJXgZ4GxydJkiQVUi2J9IMR8fKIKFV+Xg7sqiyrfskPSZIkaZ6qJZF+FfAa4F5ge+X5qyOiC/jLBsYmSZIkFVYtl7/7GfDSGRZfVd9wJEmSpPZQy1U7FgNvAJ4GLN5TnlJ6fQPjkiRJkgqtlqkdXwKeALwIuBzoA8YaGZQkSZJUdLUk0itTSn8NPJBS+iLwB8CzGxuWJEmSVGy1JNJTlcedEXEccAjw+MaFJEmSJBVfLTdkOS8ieoD3Ad8EuoG/bmhUkiRJUsFVTaQjogT8OqU0ClwBPLkpUUmSJEkFV3VqR0qpDJzTpFgkSZKktlHLHOn/jIi/iojlEXHYnp8DaTQiDo2IiyLi1oj4cUSsPpD6JEmSpGarZY70n1Qe/2KvssSBTfP4X8B3U0p/HBGPAR57AHUVysj4JMOjE/T1dNHb3dnqcB6l6PGpfeTpS83sf/Z1SVKj1XJnw6Pq2WBEHAKcBpxVqf8h4KF6ttEql2y5h/Ubh+golZgql9mwrp+1q5a1OqyHFT0+tY88famZ/c++LklqhlmndkTEYyPifRFxXuX1MRHxkgNo8yhgB/D5iPhRRHwuIg4+gPoKYWR8kvUbh9g1VWZscje7psqcs3GIkfHJVocGFD8+tY88famZ/c++LklqllrmSH+ebMT45Mrre4C/PYA2FwEnAp9JKZ0APACcu+9KEXF2RAxGxOCOHTsOoLnmGB6doKM0fXd2lEoMj060KKLpih6f2keevtTM/mdflyQ1Sy2J9NEppQ1UbsySUnoQiANocxgYTildV3l9EVliPU1K6byU0kBKaeDwww8/gOaao6+ni6lyeVrZVLlMX09XiyKarujxqX3k6UvN7H/2dUlSs9SSSD8UEV1kJxgSEUcDuf9HmlL6JbAtIp5aKXo+cEve+oqit7uTDev6WdxRYknnIhZ3lNiwrr8wJzkVPT61jzx9qZn9z74uSWqWSClVXyHidOC9wLHApcApwFkppU25G41YBXwOeAzwM+B1lZu+7NfAwEAaHBzM21xTFf1KAUWPr6o1a7LHTZtaGYUqvGqHJGk+iojNKaWBWtat5aodl0bEZuAksikdb0sp3XcgAaaUtgA1Bdhuers7C/1Lu+jxqX3k6UvN7H/2dUlSo82aSEfE/wdcCHwzpfRA40OSJEmSiq+WOdIfA04FbqncjfCPI2Jxg+OSJEmSCq2WqR2XA5dHxEHA84A3AecDj2twbJIkSVJh1XKLcCpX7Xgp2e3CTwS+2MigJEmSpKKrZY7014BnAd8FPg1cnlIqV99KkiRJmt9qGZH+F+CVKaXfAETEcyLilSmlv2hsaJIkSVJx1TJH+j8i4oSIeCXwcuAO4OsNj0ySJEkqsBkT6Yh4CvDKys99wFfJbuDy3CbFJkmSJBVWtRHpW4ErgZeklLYCRMQ7mhKVJEmSVHDVriP9R8AvgMsi4p8j4vlkdzaUJEmSFrwZE+mU0sUppVcAvw1cBrwdeHxEfCYiTm9SfJIkSVIhzXpnw5TSAymlC1NKLwX6gB8B6xsemSRJklRgtdwi/GEppdGU0nkppec3KiBJkiSpHcwpkZYkSZKUMZGWJEmScjCRrrOR8Ulu2LaTkfHJBR2DJEnSfFfLLcJVo0u23MP6jUN0lEpMlctsWNfP2lXLFlwMkiRJC4Ej0nUyMj7J+o1D7JoqMza5m11TZc7ZONTUUeEixCBJkrRQmEjXyfDoBB2l6buzo1RieHRiQcUgSZK0UJhI10lfTxdT5fK0sqlymb6ergUVgyRJ0kJhIl0nvd2dbFjXz+KOEks6F7G4o8SGdf30dncuqBgkSZIWCk82rKO1q5ZxysqlDI9O0NfT1ZIEtggxSJIkLQQm0nXW293Z8uS1CDFIkiTNd07tkCRJknIwkZYkSZJyMJGWJEmScjCRliRJknIwkZYkSZJyMJGWJEmScjCRliRJknIwkZYkSZJyMJGWJEmScjCRliRJknIwkZYkSZJyMJGWJEmScjCRliRJknIwkZYkSZJyaFkiHREHRcSPIuJbrYpBkiRJyquVI9JvA37cwvYlSZKk3FqSSEdEH/AHwOda0b4kSZJ0oBa1qN1PAOcAS2pa+yc/gTVrGhiO2sKWLdmjfUGSJBVA00ekI+IlwL0ppc2zrHd2RAxGxODU1FSTopMkSZJqEyml5jYY8RHgNcBuYDHwOODrKaVXz7TNwMBAGhwcbFKEKqw9I9GbNrUyCkmSNI9FxOaU0kAt6zZ9RDql9J6UUl9K6UjgFcAPqiXRkiRJUhF5HWlJkiQph1adbAhASmkTsKmVMUiSJEl5OCItSZIk5WAiLUmSJOVgIi1JkiTlYCItSZIk5WAiLUmSJOVgIi1JkiTlYCItSZIk5WAiLUmSJOVgIi1JkiTlYCItSZIk5WAiLUmSJOVgIi1JkiTlYCItSZIk5WAiLUmSJOVgIi0V1Mj4JDds28nI+OScli00efbF1u1jXDS4ja3bxxoYWXVF+QybGUdR3vNctUPc7RCjNB8tanUAkh7tki33sH7jEB2lElPlMhvW9bN21bJZly00efbF+y++kQuuvfvh12euXsGHzji+0aFOU5TPsJlxFOU9z1U7xN0OMUrzlSPSUsGMjE+yfuMQu6bKjE3uZtdUmXM2DjEyPll12UKTZ19s3T42LYkGuOCau5s6Ml2Uz7CZcRTlPc9VO8TdDjFK85mJtFQww6MTdJSmfzU7SiWGRyeqLlto8uyLLdt2zqm8EYryGTYzjqK857lqh7jbIUZpPnNqh1QwfT1dTJXL08qmymX6eroefj7TsoVktv20P6uWHzqn8kbIE3e7x1GU9zxX7RB3O8QozWeOSEsF09vdyYZ1/SzuKLGkcxGLO0psWNdPb3dn1WULTZ59sfKIJZy5esW0sjNXr2DlEUsaHe7DivIZNjOOorznuWqHuNshRmk+i5RSq2OY1cDAQBocHGx1GGq1NWuyx02bWhlF04yMTzI8OkFfT9ejfilWW7bQ5NkXW7ePsWXbTlYtP7SpSfTeivIZNjOOorznuWqHuNshRqldRMTmlNJATeuaSKttLLBEWpIkNd9cEmmndkiSJEk5mEhLkiRJOZhIS5IkSTmYSEuSJEk5mEhLkiRJOZhIS5IkSTmYSEuSJEk5mEhLkiRJOZhIS5IkSTmYSEuSJEk5mEhLkiRJOZhIS5KkheWXv4RXvAKOPhqe8Qz4/d+Hn/700eudfHL1etasgcHB2tq880648MK5RqqCM5GWJEkLR0rwspdlSfDtt8PmzfCRj8D27Y+ss3t39nj11fVr10R6XjKRliRJC8dll0FHB7z5zY+UPf3p8JvfwKmnwtq1cOyxWXl39yPr/P3fw/HHZ+uee+70OstlOOsseN/7snre/W545jOhvx8++9lsnXPPhSuvhFWr4OMfh5tvhmc9K3vd3w+33dbAN61GWdTqACRJkprmppuy6Rz7c/312fKjjppe/p3vwCWXwHXXwWMfC/ff/8iy3bvhVa+C446D974XzjsPDjkEfvhDmJyEU06B00+Hv/s7+NjH4FvfyrZ7y1vgbW/Ltn3ooSwBV9tp+oh0RCyPiMsi4paIuDki3tbsGKS8RsYnuWHbTkbGJ+e0bOv2MS4a3MbW7WM1leeNo1oMRZdn/7VDW/NR3n42eMcI/3DpTxi8Y6RBkR2YPJ993mNCHvbbJnjWsx6dRAP853/C616XJdEAhx32yLI/+7NHkmiASy+FCy7IRpqf/WwYGdn/aPPq1fDhD2cj3XfdBV1ddX87arxWjEjvBt6VUro+IpYAmyPieymlW1oQi1SzS7bcw/qNQ3SUSkyVy2xY18/aVctmXfb+i2/kgmvvfrieM1ev4ENnHD9jed44qsVQdHn2Xzu0NR/l7Wev/ty1XLU1S6A/+YOtnLqyly+98aRGh1uzPJ993mNCHvbbOnra0+Cii/a/7OCD517fySdn00Xe9S5YvDibg/2pT8GLXjR9vU2bpr/+0z/NEu1vfzs72fGzn4XnPW/u7aulmj4inVL6RUrp+srzMeDHQHv8tteCNTI+yfqNQ+yaKjM2uZtdU2XO2TjEyPhk1WVbt49N+wUHcME1d/P9W3653/LZRpNmamvr9rEZYyi6PPsv76hbM9uaj6rtv2oG7xh5OIne48qtI4UZmc7z2ec9JuRhv62z5z0vm3Jx3nmPlA0NZfOXZ/LCF8LnPw8PPpi93ntqxxvekCXCL395Ns3jRS+Cz3wGpqay5T/9KTzwACxZAmN7fS4/+xk8+cnw1rfCGWdkMajttPRkw4g4EjgBuG4/y86OiMGIGNyxY0fTY5P2Njw6QUdp+telo1RieHSi6rIt23but75Lb9m+3/KZ1p8tji3bds4YQ9Hl2X+z7acitDUfVdt/1Vxx231zKm+2PJ993mNCHvbbOouAb3wjm65x9NHZCPV73gNPeMLM27z4xdlJiAMD2ZSNj31s+vJ3vhNOOAFe8xp44xuzkxVPPDGb8vFnf5Yl2P39cNBB2cmKH/84fO1r2fJVq7J52Wee2ch3rQZp2cmGEdENbATenlL69b7LU0rnAecBDAwMpCaHJ03T19PFVLk8rWyqXKavp+vh5/tbdvBjDtpvfacfewRfHRx+VPmq5YfmimPV8kOrxldk1fbtTPtvtv1UhLbmo9m+BzM57ZilfPIHW/dbXgQzfcbVPvu8x4Q87LcN8MQnZonsvt70pumvx8cfeX7uuY++Wsfe0zX+5m8eef7hD2c/+/rBD6a/3rc+tZ2WjEhHRAdZEv3llNLXWxGDNBe93Z1sWNfP4o4SSzoXsbijxIZ1/fR2d1ZdtvKIJZy5esW0us5cvYLnH/uE/ZavPGJJrjhWHrFkxhiKLs/+m20/FaGt+aja/qtm4KheTl3ZO63s1JW9DBzVO8MWzZXns897TMjDfisVV6TU3MHeiAjgi8D9KaW317LNwMBAGqz1zkGav9asyR73PWGjiUbGJxkenaCvp+tRvxSrLdu6fYwt23ayavmh037BzVSeN45qMRRdnv3XDm3NR3n72eAdI1xx232cdszSwiTRe8vz2ec9JuRhv5WaIyI2p5QGalq3BYn0c4ArgRuBPf+r+u8ppX+faRsTaQGFSKQlSdL8NpdEuulzpFNKVwHR7HYlSZKkevIW4ZIkSVIOJtKSJElSDibSkiRJUg4m0pIkSVIOJtKSJElSDibSkiRJUg4m0pIkSVIOJtKSJElSDibSkiRJUg4m0pIkSVIOJtKSJElSDibSkiRJUg4m0pIkSVIOJtKSJElSDibSUp2MjE9yw7adjIxPNry+ereVRzPfbzPjyKMIn9XW7WNcNLiNrdvH6lJfEfbrbIoeY5748valou8Lab5a1OoApPngki33sH7jEB2lElPlMhvW9bN21bKG1FfvtuodXzPrK/q+aFZ877/4Ri649u6HX5+5egUfOuP43PUVYb/Opugx5okvb18q+r6Q5jNHpKUDNDI+yfqNQ+yaKjM2uZtdU2XO2TiUe2SoWn31bqve8TWzvqLvi2bFt3X72LQkGuCCa+7OPTJdhP06m6LHmCe+vH2p6PtCmu9MpKUDNDw6QUdp+lepo1RieHSi7vXVu616x9fM+oq+L5oV35ZtO+dUPpsi7NfZFD3GPPHl7UtF3xfSfOfUDukA9fV0MVUuTyubKpfp6+lqSH31bKsR8TWrvnrHkUcRPqtVyw+dU/lsirBfZ1P0GPPEdyB9qcj7QprvHJGWDlBvdycb1vWzuKPEks5FLO4osWFdP73dnXWvr95t1Tu+ZtZX9H3RrPhWHrGEM1evmFZ25uoVrDxiSa76irBfZ1P0GPPEl7cvFX1fSPNdpJRaHcOsBgYG0uDgYKvDUKutWZM9btrUyihmNDI+yfDoBH09XXX5JVatvnq3Ve/4mllf0fdFs+Lbun2MLdt2smr5obmT6L0VYb/Opugx5okvb18q+r6Q2klEbE4pDdS0rom02kbBE2lJktT+5pJIO7VDkiRJysFEWpIkScrBRFqSJEnKwURakiRJysFEWpIkScrBRFqSJEnKwURakiRJysFEWpIkScrBRFqSJEnKwURakiRJyqEtbhEeETuAu1odhwphKXBfq4NQ4dgvtC/7hPbHfqH92bdfPCmldHgtG7ZFIi3tERGDKaWBVsehYrFfaF/2Ce2P/UL7cyD9wqkdkiRJUg4m0pIkSVIOJtJqN+e1OgAVkv1C+7JPaH/sF9qf3P3COdKSJElSDo5IS5IkSTmYSKtwIuLFEfGTiNgaEefuZ/k7I+KWiBiKiO9HxJNaEaeaa7Z+sdd66yIiRYRn5i8AtfSLiHh55Zhxc0Rc2OwY1Xw1/B5ZERGXRcSPKr9Lfr8Vcap5IuL8iLg3Im6aYXlExCcrfWYoIk6spV4TaRVKRBwE/CPwe8CxwCsj4th9VvsRMJBS6gcuAjY0N0o1W439gohYArwNuK65EaoVaukXEXEM8B7glJTS04C3NztONVeNx4v3AV9LKZ0AvAL4p+ZGqRb4AvDiKst/Dzim8nM28JlaKjWRVtE8C9iaUvpZSukh4N+AM/ZeIaV0WUrpwcrLa4G+Jseo5pu1X1T8D+DvgV3NDE4tU0u/eBPwjymlUYCU0r1NjlHNV0u/SMDjKs8PAX7exPjUAimlK4D7q6xyBnBBylwLHBoRvzVbvSbSKpplwLa9Xg9XymbyBuA7DY1IRTBrv6j8G255SunbzQxMLVXL8eIpwFMi4v9GxLURUW1ESvNDLf3ig8CrI2IY+HfgLc0JTQU21/wDgEUNC0dqsIh4NTAA/G6rY1FrRUQJ+AfgrBaHouJZRPav2jVk/726IiKOTyntbGVQarlXAl9IKf2/EbEa+FJEHJdSKrc6MLUXR6RVNPcAy/d63VcpmyYiXgC8F1ibUppsUmxqndn6xRLgOGBTRNwJnAR80xMO571ajhfDwDdTSlMppTuAn5Il1pq/aukXbwC+BpBSugZYDCxtSnQqqpryj32ZSKtofggcExFHRcRjyE4C+ebeK0TECcBnyZJo5zsuDFX7RUrpVymlpSmlI1NKR5LNnV+bUhpsTbhqklmPF8DFZKPRRMRSsqkeP2tijGq+WvrF3cDzASLid8gS6R1NjVJF803gzMrVO04CfpVS+sVsGzm1Q4WSUtodEX8J/AdwEHB+SunmiPgQMJhS+ibwUaAb+D8RAXB3Smlty4JWw9XYL7TA1Ngv/gM4PSJuAX4DvDulNNK6qNVoNfaLdwH/HBHvIDvx8KzkHermtYj4Ctkf1Usrc+M/AHQApJT+N9lc+d8HtgIPAq+rqV77jSRJkjR3Tu2QJEmScjCRliRJknIwkZYkSZJyMJGWJEmScjCRliRJknIwkZa0YEXEEyLi3yLi9ojYHBH/HhFPyVnXWyPixxHx5YjojIj/jIgtEfEnEfG5iDi2yrZrI+LcnO0eGhF/fiDx7lX22IgYiYjH7bPuxRHxJ3Oo+98j4tC5xiRJ7cbL30lakCK7CPnVwBcr1xAlIp4OPC6ldGWO+m4FXpBSGq5czP9vU0ovqGvQ+2/3SOBbKaXj5rjdw/HuU34h8B8ppS9WXh8C3A6sSCk9OEudQfZ7xdssS1oQHJGWtFA9F5jak0QDpJRuSCldWbmz1Ucj4qaIuHHv0diIeHdE/DAihiLibypl/xt4MvCdiFgP/CvwzMqI9NERsWnP7coj4sURcX1E3BAR36+UnRURn648PzwiNlba+GFEnFIp/2BEnF+p62cR8dZKSH8HHF1p66P7vsmIeGflfdwUEW/fT7zv2GeTr5DdCW6Pl5Hd2KIUEd+vxH5jRJxRqevIiPhJRFwA3AQsj4g7K3cR3DOavTkibo6Is/eKazwi/mdlP1wbEUdUyo+IiG9Uym+IiJMr5a+OiP+qvM/PRsRBNX3KktRA3tlQ0kJ1HLB5hmV/BKwCng4sBX4YEVcAxwPHAM8CAvhmRJyWUnpzRLwYeG5K6b6IuA74q5TSSwCygdosSQb+GTgtpXRHRBy2n7b/F/DxlNJVEbGCLIn9ncqy3yb7A2AJ8JOI+AxwLnBcSmnVvhVFxDPI7s717Eq810XE5fvGu89m/wF8LiJ6K3cAfAXwaWAX8LKU0q8rSfK1EbHnjpLHAK9NKV279/uteH1K6f6I6Krsx42Veg8Grk0pvTciNgBvAv4W+CRweUrpZZVkuTuyWzj/CXBKSmkqIv4JeBVwwX72nyQ1jYm0JD3ac4CvpJR+A2yPiMuBZwKnAacDP6qs102WRF5RY70nAVeklO4ASCndv591XgAcu1cy+riI6K48/3ZKaRKYjIh7gSNqeB/fSCk9ABARXwdO3Sv+R0kpPVRJkP84IjYCJ5Al1wF8OCJOA8rAsr3av2tPEr0fb42Il1WeLyfbXyPAQ8C3KuWbgRdWnj8POLMSy2+AX0XEa4BnkCXiAF3AvbO8d0lqOBNpSQvVzcAfz3GbAD6SUvpsA+LZowSclFLaNa3hLIGc3KvoNzTuGP4V4K/J3u8llVHgs4DDgWdUXt8JLK6s/8D+KomINWR/GKxOKT0YEZv22mYqPXKSzmzvJcjmsr8n7xuSpEZwjrSkheoHQOc+83b7I+JU4ErgTyLioMp0jNOA/yIbmX39nhHiiFgWEY+fQ5vXAqdFxFGV7fc3teNS4C17xbRqljrHyKZ67M+VwB9GdjWOg8nmO9dyIuUmspHjvyBLqgEOAe6tJNHPBZ5UQz2HAKOVJPq3yUbkZ/N94P8BqOz/Qyplf7xnX0fEYRFRS/uS1FAm0pIWpMpo6MuAF0R2+bubgY8AvwS+AQwBN5Al3OeklH6ZUroUuBC4JiJuBC5i5iR2f23uAM4Gvh4RNwBf3c9qbwUGKicz3gK8eZY6R4D/WzmZ8KP7LLse+ALZHwHXAZ9LKc04rWOv7cpk760XuLxS/OVKXDeSTb24dbZ6gO8CiyLix2QnRc40/WNvbwOeW2lnM3BsSukW4H3ApRExBHwP+K0a6pKkhvLyd5IkSVIOjkhLkiRJOZhIS5IkSTmYSEuSJEk5mEhLkiRJOZhIS5IkSTmYSEuSJEk5mEhLkiRJOZhIS5IkSTn8/4luAt/w8072AAAAAElFTkSuQmCC\n", "text/plain": [ "<Figure size 864x432 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,figsize=(12,6))\n", "df.plot.scatter(x=\"CV\",y=\"ADS\", xlabel=\"Coefficient of Variance\", ylabel=\"Average Daily Sales\", ax=ax)\n", "ax.axvline(x=0.2, color=\"red\")\n", "ax.axhline(y=4, color=\"red\")\n", "ax.text(0.13, 9.5, \"Horses\", color=\"red\")\n", "ax.text(0.65, 9.5, \"Wild Bulls\", color=\"red\")\n", "ax.text(0.8, 2, \"Crickets\", color=\"red\")" ] }, { "cell_type": "markdown", "id": "c2d501b1-9518-418c-954a-e255a3c2055b", "metadata": {}, "source": [ "### Hierarchial Clustering" ] }, { "cell_type": "code", "execution_count": null, "id": "bfeb0425-d5da-4c25-be90-5c40775cad62", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('agglomerativeclustering', AgglomerativeClustering())])\n" ] }, { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('kmeans', KMeans(n_clusters=3))])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipeline = make_pipeline(StandardScaler(), AgglomerativeClustering(n_clusters=2, linkage='ward')); print(pipeline)\n", "pipeline2 = make_pipeline(StandardScaler(), KMeans(n_clusters=3)); pipeline2" ] }, { "cell_type": "code", "execution_count": null, "id": "e3cb97eb-1d43-4e43-bc15-2bb8bca54ea0", "metadata": {}, "outputs": [], "source": [ "df[\"group\"]=pipeline.fit_predict(df)\n", "df[\"group\"] =df[\"group\"].astype(\"category\")" ] }, { "cell_type": "code", "execution_count": null, "id": "24900e1e-70b9-4bdb-8992-0ab631572c91", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.8, 2, 'Crickets')" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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sqv3OXhQrduPGDww7dsA8Z3l/amZjQL6Ekx1/97dlyXSqbuPAdK+8SIiIiKSuK0mlGb2IfAa8IG7r09+SCIiIiJSn8RzUs5DwMHApNjdbU43s5ytNRIRERGRnUM8U95fAl+aWRg4HLgEeA5olOTYRERERKQeiOs00dhZ3icS3IZxX+DFZAYlIiIiIvVHPMdQ/hM4APgEeAz40t2jW24lIiIiIjuLeEYonwXOdvcIgJkdZGZnu/vlyQ1NREREROqDeI6h/I+Z7WNmZwNnADOBd5IemYiIiIjUCzUmlGbWEzg79lgGvElwIfTDUhSbiIiIiNQDWxqhnAIMA05w92kAZnZNSqISERERkXpjS9ehPBVYCHxhZk+b2REEd8oREREREalQY0Lp7u+5+1nAbsAXwNVAKzN7MnZ/bxERERGRrd8px93Xu/tr7n4i0AH4Abgp6ZGJiIiISL0Qz60XK7j7Sncf5O5HJCsgEREREalftimhFBERERHZnBJKEREREUlIXPfy3tlFo84Tz8/g3X8vAODnP2vL5Rd1IxSq+5Pe164r544HJvHDuFXk5oa57rfdOfKQ1nXej4iIiEhd0QhlHN58fx7vfbyAktIoJaVR3v9kIW++Py8pfd354CTGjF9FecRZu66cex+ZyuSpa5LSl4iIiEhdUEIZh+HfLqO4JFqxXFwSZdg3y5LS15jxqykr94rl8kiU0eNXJaUvERERkbqghDIOzZpkEdrklQqFoFnTrKT01SAvXGk5MyNE4/zMpPQlIiIiUheUUMbhsvN3IS83g+ysENlZIfJyM/jt+bskpa8bLu9JdnaIzAwjJztE+za5HDVQx1CKiIjI9ksn5cShfdtcXnmigKFfL8OBQ/u1oEWz7KT0dUi/FvzjgX0YPW4VjfIzOPzgVmRnKe8XERGR7ZcSyji1aJbNqce3T0lfPXZpSI9dGqakLxEREZFEaehLRERERBKihFJEREREEqKEUkREREQSooRSRERERBKihFJEREREEqKEUkREREQSooRSRERERBKihFJEREREEqKEUkREREQSooRSRERERBKihFJEREREEqKEUkREREQSooRSRERERBKihFJEREREEqKEUkREREQSkraE0szCZvaDmQ1OVwwiIiIikrh0jlD+Hpicxv5FREREpA6kJaE0sw7A8cAz6ehfREREZGdhZsea2Y9m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\n", "text/plain": [ "<Figure size 864x432 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,figsize=(12,6))\n", "df.plot.scatter(x=\"CV\",y=\"ADS\", xlabel=\"Coefficient of Variance\", ylabel=\"Average Daily Sales\", c=\"group\", ax=ax, cmap=\"coolwarm\")\n", "ax.axvline(x=0.2, color=\"red\")\n", "ax.axhline(y=4, color=\"red\")\n", "ax.text(0.13, 9.5, \"Horses\", color=\"red\")\n", "ax.text(0.65, 9.5, \"Wild Bulls\", color=\"red\")\n", "ax.text(0.8, 2, \"Crickets\", color=\"red\")" ] }, { "cell_type": "markdown", "id": "d5f74add-ea77-4feb-ae75-9ce68b03b246", "metadata": {}, "source": [ "### Dendogram" ] }, { "cell_type": "code", "execution_count": null, "id": "5ede1fc4-40f7-4d4f-a488-8e494428f471", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AgglomerativeClustering(n_clusters=3)" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model = pipeline['agglomerativeclustering']\n", "model" ] }, { "cell_type": "markdown", "id": "3fae2d63-0387-4978-8a0e-afd2bad2ba63", "metadata": {}, "source": [ "## HR Dataset" ] }, { "cell_type": "code", "execution_count": null, "id": "f8cc0e0b-9b16-45f4-af76-db573f3c32c3", "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>S</th>\n", " <th>LPE</th>\n", " <th>NP</th>\n", " <th>ANH</th>\n", " <th>TIC</th>\n", " <th>Newborn</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>0.38</td>\n", " <td>0.53</td>\n", " <td>2</td>\n", " <td>157</td>\n", " <td>3</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>0.80</td>\n", " <td>0.86</td>\n", " <td>5</td>\n", " <td>262</td>\n", " <td>6</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>0.11</td>\n", " <td>0.88</td>\n", " <td>7</td>\n", " <td>272</td>\n", " <td>4</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>0.72</td>\n", " <td>0.87</td>\n", " <td>5</td>\n", " <td>223</td>\n", " <td>5</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>0.37</td>\n", " <td>0.52</td>\n", " <td>2</td>\n", " <td>159</td>\n", " <td>3</td>\n", " <td>0</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " S LPE NP ANH TIC Newborn\n", "0 0.38 0.53 2 157 3 0\n", "1 0.80 0.86 5 262 6 0\n", "2 0.11 0.88 7 272 4 0\n", "3 0.72 0.87 5 223 5 0\n", "4 0.37 0.52 2 159 3 0" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2 = pd.read_csv(\"DATA_2.02_HR.csv\"); df2.head()" ] }, { "cell_type": "code", "execution_count": null, "id": "b403173a-c3ef-4f96-9fa4-1ce39574ed78", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<AxesSubplot:xlabel='Number of Projects Done', ylabel='Last Project Evaluation'>" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 864x432 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,figsize=(12,6))\n", "df2.plot.scatter(y=\"NP\",y=\"LPE\", xlabel=\"Number of Projects Done\", ylabel=\"Last Project Evaluation\", ax=ax)" ] }, { "cell_type": "code", "execution_count": null, "id": "500bc785-4e00-479a-96e1-46d1c6a5f571", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('agglomerativeclustering', AgglomerativeClustering())])\n" ] } ], "source": [ "pipeline = make_pipeline(StandardScaler(), AgglomerativeClustering(n_clusters=2, linkage='ward')); print(pipeline)" ] }, { "cell_type": "code", "execution_count": null, "id": "54cb7bbb-f066-4471-aab5-4f2c665e7a24", "metadata": {}, "outputs": [], "source": [ "df2[\"group\"]=pipeline.fit_predict(df2[[\"S\", \"LPE\", \"NP\"]])\n", "df2[\"group\"] =df2[\"group\"].astype(\"category\")" ] }, { "cell_type": "code", "execution_count": null, "id": "a326f767-5979-4425-89d9-68d8717ad432", "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>S</th>\n", " <th>LPE</th>\n", " <th>NP</th>\n", " <th>ANH</th>\n", " <th>TIC</th>\n", " <th>Newborn</th>\n", " </tr>\n", " <tr>\n", " <th>group</th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>0.64</td>\n", " <td>0.90</td>\n", " <td>5.0</td>\n", " <td>259.0</td>\n", " <td>5.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>0.41</td>\n", " <td>0.52</td>\n", " <td>2.0</td>\n", " <td>146.0</td>\n", " <td>3.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " S LPE NP ANH TIC Newborn\n", "group \n", "0 0.64 0.90 5.0 259.0 5.0 0.0\n", "1 0.41 0.52 2.0 146.0 3.0 0.0" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2.groupby(\"group\").median()" ] }, { "cell_type": "markdown", "id": "a031f636-4e0c-46fe-8c63-84d7d8edeeb3", "metadata": {}, "source": [ "## Telecom" ] }, { "cell_type": "code", "execution_count": null, "id": "e2dcafc5-b8e6-4d37-9f47-9334e56ee4b8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>Calls</th>\n", " <th>Intern</th>\n", " <th>Text</th>\n", " <th>Data</th>\n", " <th>Age</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>1.12</td>\n", " <td>0.19</td>\n", " <td>23.92</td>\n", " <td>0.18</td>\n", " <td>60</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>1.08</td>\n", " <td>0.22</td>\n", " <td>17.76</td>\n", " <td>0.23</td>\n", " <td>54</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>3.54</td>\n", " <td>0.26</td>\n", " <td>289.79</td>\n", " <td>1.99</td>\n", " <td>34</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>1.09</td>\n", " <td>0.21</td>\n", " <td>19.15</td>\n", " <td>0.21</td>\n", " <td>61</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>1.04</td>\n", " <td>0.24</td>\n", " <td>20.33</td>\n", " <td>0.20</td>\n", " <td>56</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " Calls Intern Text Data Age\n", "0 1.12 0.19 23.92 0.18 60\n", "1 1.08 0.22 17.76 0.23 54\n", "2 3.54 0.26 289.79 1.99 34\n", "3 1.09 0.21 19.15 0.21 61\n", "4 1.04 0.24 20.33 0.20 56" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df3 = pd.read_csv(\"DATA_2.03_Telco.csv\"); df3.head()" ] }, { "cell_type": "code", "execution_count": null, "id": "68aeec7a-aaa2-4127-8a63-8e10e93b73d6", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 5 }