{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Density-based clustering basics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Go to:\n",
    "    \n",
    "  - [Notebook configuration](algorithm_explained.ipynb#Notebook-configuration)\n",
    "  - [Helper function definitions](algorithm_explained.ipynb#Helper-function-definitions)\n",
    "  - [Density criteria](algorithm_explained.ipynb#Density-criteria)\n",
    "  - [Identification of connected components](algorithm_explained.ipynb#Identification-of-connected-components-of-points)\n",
    "  - [CommonNN clustering in detail](algorithm_explained.ipynb#CommonNN-clustering-in-detail)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-18T14:43:18.762282Z",
     "start_time": "2020-06-18T14:43:18.760198Z"
    }
   },
   "source": [
    "## Notebook configuration"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-10-19T09:03:37.126538Z",
     "start_time": "2022-10-19T09:03:34.417698Z"
    }
   },
   "outputs": [],
   "source": [
    "from collections import deque\n",
    "from itertools import islice\n",
    "import sys\n",
    "\n",
    "import matplotlib as mpl\n",
    "from matplotlib import animation\n",
    "import matplotlib.pyplot as plt\n",
    "import networkx\n",
    "import numpy as np\n",
    "import scipy\n",
    "from scipy.integrate import quad\n",
    "from scipy import stats\n",
    "from scipy.spatial import cKDTree\n",
    "import sklearn\n",
    "from sklearn import datasets\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "import commonnn\n",
    "from commonnn import cluster\n",
    "from commonnn import _types, _fit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-10-19T09:03:48.773808Z",
     "start_time": "2022-10-19T09:03:48.769582Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Python:  3.10.7 (main, Sep 27 2022, 11:41:38) [GCC 10.2.1 20210110]\n",
      "Packages:\n",
      "    matplotlib: 3.6.0\n",
      "    networkx: 2.8.6\n",
      "    numpy: 1.23.3\n",
      "    scipy: 1.9.1\n",
      "    sklearn: 1.1.2\n",
      "    commonnn: 0.0.1\n"
     ]
    }
   ],
   "source": [
    "# Version information\n",
    "print(\"Python: \", *sys.version.split(\"\\n\"))\n",
    "\n",
    "print(\"Packages:\")\n",
    "for package in [mpl, networkx, np, scipy, sklearn, commonnn]:\n",
    "    print(f\"    {package.__name__}: {package.__version__}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We use [Matplotlib](https://matplotlib.org/) to create plots. The `matplotlibrc` file in the root directory of the `CommonNNClustering` repository is used to customize the appearance of the plots."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-10-19T09:03:58.669182Z",
     "start_time": "2022-10-19T09:03:58.662518Z"
    }
   },
   "outputs": [],
   "source": [
    "# Matplotlib configuration\n",
    "mpl.rc_file(\n",
    "    \"../../matplotlibrc\",\n",
    "    use_default_template=False\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Helper function definitions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following functions will be used throughout this notebook."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-10-19T09:04:57.213523Z",
     "start_time": "2022-10-19T09:04:57.208819Z"
    }
   },
   "outputs": [],
   "source": [
    "def gauss(x, sigma, mu):\n",
    "    \"\"\"Gaussian PDF\"\"\"\n",
    "    return (1 / (sigma * np.sqrt(2 * np.pi)) * np.exp(-1 / 2 * ((x - mu) / sigma)**2))\n",
    "    \n",
    "def multigauss(x, sigmas, mus):\n",
    "    \"\"\"Multimodal gaussian PDF as linear combination of gaussian PDFs\"\"\"\n",
    "    assert len(sigmas) == len(mus)\n",
    "    \n",
    "    out = np.zeros_like(x)\n",
    "    for s, m in zip(sigmas, mus):\n",
    "        out += gauss(x, s, m)\n",
    "    return out / len(sigmas)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-10-19T09:04:58.874947Z",
     "start_time": "2022-10-19T09:04:58.870957Z"
    }
   },
   "outputs": [],
   "source": [
    "def determine_cuts(x, a, cutoff):\n",
    "    \"\"\"Find points in 1D space where density cutoff is crossed\n",
    "    \n",
    "    Args:\n",
    "       x: coordinate\n",
    "       a: density\n",
    "       cutoff: density cutoff\n",
    "    \n",
    "    Returns:\n",
    "       cuts: Array of coordinates where cutoff is crossed\n",
    "    \"\"\"\n",
    "    \n",
    "    cuts = []\n",
    "    dense = False  # Assume low density on left border\n",
    "    for index, value in enumerate(a[1:], 1):\n",
    "        if dense:\n",
    "            if value < cutoff:\n",
    "                dense = False\n",
    "                cuts.append((x[index] + x[index - 1]) / 2)        \n",
    "        else:\n",
    "            if value >= cutoff:\n",
    "                dense = True\n",
    "                cuts.append((x[index] + x[index - 1]) / 2)\n",
    "    \n",
    "    return np.asarray(cuts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-10-19T09:04:59.179057Z",
     "start_time": "2022-10-19T09:04:59.174749Z"
    }
   },
   "outputs": [],
   "source": [
    "class multigauss_distribution(stats.rv_continuous):\n",
    "    \"\"\"Draw samples from a multimodal gaussian distribution\"\"\"\n",
    "           \n",
    "    def __init__(self, sigmas, mus, *args, **kwargs):\n",
    "        super().__init__(*args, **kwargs)\n",
    "        self._sigmas = sigmas\n",
    "        self._mus = mus\n",
    "\n",
    "    def _pdf(self, x):\n",
    "        return multigauss(x, sigmas=self._sigmas, mus=self._mus)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Density criteria"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Density-based clustering defines clusters as *dense* regions in space, separated by *sparse* regions. But what is dense and what is sparse? One way to define this is by using a threshold (a density criterion) that determines the outcome of the clustering. In the case where we have a density function defined on a continuous coordinate, the density criterion manifests itself as a density iso-surface. Regions in which the density is higher than a cutoff set as the density criterion qualify as *dense*. On the other hand, regions in which the density falls below the density criterion are considered *sparse* and do not constitute a part of a cluster. Continuous dense regions form individual clusters. We can illustrate this on the example of a bimodal gaussian distribution in one dimension."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-10-19T09:07:34.227404Z",
     "start_time": "2022-10-19T09:07:33.575898Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(-8.0, 8.0), Text(0.5, 0, '$x$'), Text(0, 0.5, 'probability density')]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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kTZt2mD58uUoKChA9+7dERkZieeff55JLRGZBY7YEhG1MhkZGWjbti10Oh0WLFiA9evXyx0SEZEkOGJLRNSKCIKARx99FDqdDgBgYWEhc0RERNJhYktE1Io8/vjj2Lx5MyZMmABfX198/fXXuHDhgtxhERFJgoktEVEr8f777+Pdd99F37598eOPP+Kpp56CRqPB888/L3doRESSYI0tEVEr8OOPP+Luu+9GcHAwjh49Ck9PT5SXlyM0NBTp6ek4ceIEunfvLneYRERNwhFbIiIzd+jQIcybNw8eHh74/fff4enpCQCwsbHB008/DUEQ8Oyzz8ocJRFR03HElojIjJ09exaDBg1CZWUl/vrrL/Tr16/G+crKSoSGhiItLQ2HDx/G4MGDZYqUiKjpmNgSERERkVlgKQIRERERmQUmtkRERERkFpjYEhEREZFZYGJLRERERGaBiS0RERERmQUmtkRERERkFpjYEhEREZFZYGJLRERERGaBiS0RERERmQUmtkRERERkFpjYEhEREZFZYGJLRERERGaBiS0RERERmQUmtkRERERkFpjYEhEREZFZYGJLRERERGaBiS0RERERmQUmtkRERERkFv4fdheMfaiAC+MAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 750x450 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "xlimit = (-8, 8)\n",
    "x = np.linspace(*xlimit, 101)\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(x, multigauss(x, sigmas=[1, 1.5], mus=[-2, 2]))\n",
    "ax.set(**{\n",
    "    \"xlim\": xlimit,\n",
    "    \"xlabel\": \"$x$\",\n",
    "    \"ylabel\": \"probability density\"\n",
    "})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We have two maxima in the distribution. An intuitive classification\n",
    "would separate the two peaks into two different clusters. In threshold-based density-based clustering we define the two clusters as the regions of high density where we have low density in between. By applying an iso-value cutoff on the density, we can specify what should be considered high or low density. In a dense region, the density is at least as high as the density criterion requires."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-10-19T09:10:56.330994Z",
     "start_time": "2022-10-19T09:10:56.009949Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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ii1SV9FPBlRxkZGRwtixY4XatWsL9erVE95++22VT1pUvMzMTOH9998XatWqJTg5OQnTpk0TUlJSxA5Lp3Dk+9XCwsIEAC/9U9WlpqYKH3zwgWBvby9YW1sLw4cPF8LCwsQOS6u96jXF5+/VOPJdejKZTPj666+F+vXrCw4ODsKYMWOYZ5RCQkKCMG3aNMHFxUWwt7cXvLy8hKCgoAqflyPfREREREQawlU2iIiIiIg0hMk3EREREZGGMPkmIiIiItIQJt9ERERERBrC5JuIiIiISEOYfBMRERERaQiTbyIiIiIiDWHyTURERESkIUy+iYiIiIg0hMk3EREREZGGMPkmIiIiItIQJt9ERERERBrC5JuIiIiISEOYfBMRERERaQiTbyIiKpfx48dDIpHgu+++K3LbtWvXYGFhgRo1aiAoKEiE6IiItJNEEARB7CCIiEj3hISEoGnTprCyskJYWBhsbW0BAI8ePUKXLl2QkZGBf//9F126dBE5UiIi7cGRbyIiKhd3d3e88847SEpKwurVqwEAcXFxGDhwIJKSkrBv3z4m3kREL+DINxERlVtMTAwaNGgAExMTBAQEYOTIkfDx8cGWLVswY8YMscMjItI6HPkmIqJyq1OnDmbNmoWUlBS0atUKPj4++Oabb5h4ExGVgCPfRERUIbGxsahXrx4UCgUmT56MHTt2iB0SEZHW4sg3ERGVmyAI+OSTT6BQKAAARkZGIkdERKTdmHwTEVG5zZs3D/v378egQYNQu3Zt7Ny5E48ePRI7LCIircXkm4iIymXt2rX48ccf0aFDBxw4cACff/45ZDIZvvnmG7FDIyLSWqz5JiKiMjtw4ADGjh0LNzc3XLt2Dfb29sjOzkaDBg0QExODW7duoVWrVmKHSUSkdTjyTUREZXLx4kVMmDABNWvWxMmTJ2Fvbw8AMDMzwxdffAFBEPDVV1+JHCURkXbiyDcREZVaYGAgunbtitzcXJw9exYdO3ZUuT03NxcNGjRAVFQULl26BE9PT5EiJSLSTky+iYiIiIg0hGUnREREREQawuSbiIiIiEhDmHwTEREREWkIk28iIiIiIg1h8k1EREREpCFMvomIiIiINITJNxERERGRhjD5JiIiIiLSECbfREREREQawuSbiIiIiEhDmHwTEREREWkIk28iIiIiIg1h8k1EREREpCFMvomIiIiINITJNxERERGRhjD5JiIiIiLSECbfREREREQawuSbiIiIiEhD/g+3BJowz38gewAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 750x450 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "density_criterion = 0.1\n",
    "\n",
    "xlimit = (-8, 8)\n",
    "x = np.linspace(*xlimit, 1001)\n",
    "pdf = multigauss(x, sigmas=[1, 1.5], mus=[-2, 2])\n",
    "cuts = determine_cuts(x, pdf, density_criterion)\n",
    "density_criterion_ = np.full_like(x, density_criterion)\n",
    "dense = np.maximum(pdf, density_criterion_)\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(x, pdf)\n",
    "ax.plot(x, density_criterion_, linestyle=\"--\", color=\"k\")\n",
    "ax.fill_between(x, density_criterion_, dense)\n",
    "for cut in cuts:\n",
    "    ax.axvline(cut, color=\"gray\", alpha=0.5)\n",
    "\n",
    "ax.annotate(\n",
    "    \"density criterion\", (xlimit[0] * 0.975, density_criterion * 1.03),\n",
    "    fontsize=\"small\"\n",
    ")\n",
    "\n",
    "ax.annotate(\"0\", (cuts[0] * 1.2, 0))\n",
    "ax.annotate(\"1\", (cuts[1] * 2, 0))\n",
    "ax.annotate(\"0\", (cuts[2] * 0.2, 0))\n",
    "ax.annotate(\"2\", (cuts[3] * 0.8, 0))\n",
    "ax.annotate(\"0\", (cuts[3] * 1.2, 0))\n",
    "\n",
    "ax.annotate(\n",
    "    \"dense\",\n",
    "    xy=(2.2, multigauss(2.2, sigmas=[1, 1.5], mus=[-2, 2])),\n",
    "    xytext=(cuts[3] * 1.2, density_criterion * 1.5),\n",
    "    arrowprops={\"arrowstyle\": \"->\"}\n",
    ")\n",
    "\n",
    "ax.annotate(\n",
    "    \"sparse\",\n",
    "    xy=(4, multigauss(4., sigmas=[1, 1.5], mus=[-2, 2])),\n",
    "    xytext=(cuts[3] * 1.2, density_criterion * 1.2),\n",
    "    arrowprops={\"arrowstyle\": \"->\"}\n",
    ")\n",
    "\n",
    "ax.set(**{\n",
    "    \"xlim\": xlimit,\n",
    "    \"xlabel\": \"$x$\",\n",
    "    \"ylabel\": \"probability density\"\n",
    "})\n",
    "\n",
    "fig.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T09:13:41.465492Z",
     "start_time": "2020-06-19T09:13:41.442533Z"
    }
   },
   "source": [
    "Choosing the density criterion in this way, defines the two clusters as we would have expected. We can label the regions, i.e. we can assign a number to them, that denotes their cluster membership. We use 0 to indicate that a region is not part of any cluster and positive integers as cluster numbers. When we vary the density criterion, we can influence the outcome of the clustering by changing the definition of what is dense enough to be a cluster. This could leave us with both density maxima in one cluster, clusters of different broadness, or no cluster at all."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-10-19T09:10:39.335359Z",
     "start_time": "2022-10-19T09:10:38.873134Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 750x450 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, Ax = plt.subplots(2, 2)\n",
    "ax = Ax.flatten()\n",
    "\n",
    "for i, d in enumerate([0.05, 0.09, 0.15, 0.22]):\n",
    "    density_criterion = d\n",
    "\n",
    "    xlimit = (-8, 8)\n",
    "    x = np.linspace(*xlimit, 1001)\n",
    "    pdf = multigauss(x, sigmas=[1, 1.5], mus=[-2, 2])\n",
    "    cuts = determine_cuts(x, pdf, density_criterion)\n",
    "    density_criterion_ = np.full_like(x, density_criterion)\n",
    "    dense = np.maximum(pdf, density_criterion_)\n",
    "\n",
    "\n",
    "    ax[i].plot(x, pdf)\n",
    "    ax[i].plot(x, density_criterion_, linestyle=\"--\", color=\"k\")\n",
    "    ax[i].fill_between(x, density_criterion_, dense)\n",
    "    for cut in cuts:\n",
    "        ax[i].axvline(\n",
    "            cut,\n",
    "            color=\"gray\",\n",
    "            alpha=0.5,\n",
    "            linewidth=1,\n",
    "            zorder=0\n",
    "            )\n",
    "\n",
    "\n",
    "    ax[i].set(**{\n",
    "        \"xlim\": xlimit,\n",
    "    })\n",
    "    \n",
    "fig.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When we operate on data sets (in maybe high dimensional spaces), however, we normally do not have a continuous description of the density that we can directly use. Instead we may have sample points from an underlying (unknown) distribution. To apply a density-based clustering on them, we need to approximate the density in some way. For this approximation, a number of different possibilities exist, which provide a different notion of what (local) density is or how it could be estimated from scattered data. To illustrate this, let's draw samples from the above used bimodal distribution to emulate data points."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-10-19T09:12:33.133538Z",
     "start_time": "2022-10-19T09:12:32.712678Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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IiIiIiIfYfJNREQjcvXVV0OlUuFXv/rVgGOff/459Ho94uLiUFJSIkN0RET+SSUIgiB3EEREpDxlZWWYMGECDAYDKioqEB0dDQA4fvw45s2bB5vNhv/85z+YN2+ezJESEfkP9nwTEdGI5OTk4MYbb0RrayueeuopAEBTUxOWL1+O1tZWvPbaa0y8iYhOw55vIiIasfr6eowbNw46nQ7FxcW4/PLLsXfvXvz+97/HzTffLHd4RER+hz3fREQ0YsnJybj99tvR3t6OadOmYe/evfjFL37BxJuIaAjs+SYiolFpaGhAamoq3G43rrvuOmzdulXukIiI/BZ7vomIaMQEQcCPfvQjuN1uAIBWq5U5IiIi/8bkm4iIRuwnP/kJtm3bhhUrViApKQl/+tOfcPz4cbnDIiLyW0y+iYhoRJ555hk8+eSTmDNnDt544w3cc889cDqd+MUvfiF3aEREfos130RENGxvvPEGrrzySmRnZ+Pzzz+HyWRCT08Pxo0bh/r6ehw4cADTpk2TO0wiIr/Dnm8iIhqW//73v7j22msRHx+Pf//73zCZTACAsLAw3HvvvRAEAT//+c9ljpKIyD+x55uIiM7ZkSNHMH/+fNjtdnzwwQeYO3eu13G73Y5x48ahpqYGH3/8MRYsWCBTpERE/onJNxERERGRj7DshIiIiIjIR5h8ExERERH5CJNvIiIiIiIfYfJNREREROQjTL6JiIiIiHyEyTcRERERkY8w+SYiIiIi8hEm30REREREPsLkm4iIiIjIR5h8ExERERH5CJNvIiIiIiIfYfJNREREROQjTL6JiIiIiHyEyTcRERERkY8w+SYiIiIi8hEm30REREREPsLkm4iIiIjIR5h8ExERERH5yP8DUixsOBdCn8IAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 750x450 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "distribution = multigauss_distribution(\n",
    "    sigmas=[1, 1.5], mus=[-2, 2], a=-8, b=8, seed=11\n",
    ")\n",
    "samples = distribution.rvs(size=20)\n",
    "\n",
    "xlimit = (-8, 8)\n",
    "x = np.linspace(*xlimit, 1001)\n",
    "pdf = multigauss(x, sigmas=[1, 1.5], mus=[-2, 2])\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(x, pdf, color=\"gray\", linestyle=\"--\", alpha=0.5)\n",
    "\n",
    "ax.set(**{\n",
    "    \"xlim\": xlimit,\n",
    "    \"xlabel\": \"$x$\",\n",
    "    \"ylabel\": \"probability density\"\n",
    "})\n",
    "\n",
    "ax.plot(samples, np.zeros_like(samples), linestyle=\"\",\n",
    "        marker=\"|\", markeredgewidth=0.75, markersize=15) \n",
    "\n",
    "fig.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the following we look into how density is deduced from points in terms of the following methods:\n",
    "    \n",
    "  - DBSCAN\n",
    "  - Jarvis-Patrick\n",
    "  - CommonNN\n",
    "  \n",
    "In general, point density can be expressed in simple terms by the number of points $n$ found on a volume $V$."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### DBSCAN"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In DBSCAN, local point density is expressed for each point as the number of neighbouring points $k_r$ with respect to a neighbour search radius $r$.\n",
    "The density criterion is formulated as such: Points that have at least $k$ nearest neighbours in their neighbourhood $r$ qualify as part of a dense region, i.e. a cluster. Points that fulfill the density criterion can be also referred to as *core points*. Additionally, it is possible to describe points that do not fulfill the density criterion themselves but are neighbours of those core points as *edge points*. For our samples above this could look as shown below if we choose the density criterion to be $k=1$ and $r=0.5$. To determine the number of neighbours for each point, we calculated pairwise point distances and compare them to $r$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-10-19T09:14:22.553570Z",
     "start_time": "2022-10-19T09:14:22.543996Z"
    },
    "run_control": {
     "marked": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True,  True,  True,  True,  True,  True,  True,  True, False,\n",
       "        True,  True,  True,  True,  True,  True, False,  True,  True,\n",
       "       False,  True])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Density criterion\n",
    "r = 0.5  # Neighbour search radius\n",
    "k = 1    # Minimum number of neighbours\n",
    "\n",
    "n_neighbours = np.array([\n",
    "    # Neighbour within r?\n",
    "    len(np.where((0 < x) & (x <= r))[0])\n",
    "    # distance matrix\n",
    "    for x in np.absolute(np.subtract.outer(samples, samples))\n",
    "])\n",
    "\n",
    "dense = n_neighbours >= k  # Point is part of dense region?\n",
    "dense"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-10-19T09:14:58.464391Z",
     "start_time": "2022-10-19T09:14:58.112274Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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1LPn22QywWazQa2W9G2biIjcTCFIuHqD2Wx2y0IYJpMJ9913H9599110dnZi/vz52Lx5M9LS0sT7zJ49G3v37u21OEV/UwTOmjULn3/+ubj94Ycf4umnn0ZeXh50Oh3mzp2Lp556CjExMYOK3TkFYX5+/qAeh4h8nyAI+Prrr8UZnkaPHj3o9yAiIjp3Q5G3SZp8P/roo1i5ciWys7N7HXM4HLj22mtx3XXX4dJLL5WqSa/D5JuIzkd+fj6MRiMCAgKQmZmJuLg4uUMiIvIbQ5G3SVrzvWHDhn5ruJVKJVJSUvCHP/xByiaJyMc0NjaiubkZdrtd7lA8QmpqKiZNmoRp06Yx8SYi8gFuLR5MSkrC22+/7c4micjLFBcXi6vZssxCmoXDiIjIcww6+X7vvffw3nvvidtbtmzBBx984HIfQRBQV1eHvXv3uozeJyLqyWaziYk3AISEhMgYDRERkfQGnXyXlZXhs88+A9A9mPHIkSMoLS3tdT+tVoslS5bg1ltvHWyTROSj2traxNsqlQrBwcEyRkNERCS9QSff69evx/r16wF013W/8soruPzyywcdGBH5H5PJJN4OCwvrd3YifyQIAsxmM1pbW7nWABGRF5O05vsXv/gFUlNTpXxIIvIjPZeV99eVLftis9lcVvaNjIzkVQEiIi8lafK9detWKR+OiPzM6T3f1E2tViMgIEBMvpubm5l8ExF5qQEn311dXXjqqadwww03ICUlBQCwefPms56nUChw5513DrRZIvJRFosFnZ2d4jaTb1c6nQ7t7e0AgKamJsTHx8scERERDcSAk+/Ozk5s2LABs2fPFpPvu++++6znMfkmor707PXWaDQIDAyUMRrPExkZiZqaGgDdPd+CILAmnojICw04+dZqtfjss88wbtw4cV9fs5wQEZ0LDrY8M51OJ962WCxob29HaGiofAEREdGADDj5VqlUmDVrlss+DrYkooHiYMszCwgIgFarFadjbGpqYvJNROSFJF1e/sSJE9i7dy8cDoe47/vvv8ett96K5cuX480335SyOSLyIR0dHeJt1nv3reciZU1NTTJGQkREAyXpbCebNm3C999/j7y8PABAfn4+Zs2ahcDAQOj1erz//vtobW3FunXrpGyWiHzAlClT0NHRgdbWVvZ89yMyMhKVlZUAWPdNROStJO353rVrF6666ipx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RETkJky+iYiIiIjchMk3EREREZGbMPkmIiIiInITJt9ERERERG7C5JuIiAbk2muvhUKhwOOPP97r2LfffouQkBBER0ejsLBQhuiIiDyTQhAEQe4giIjI+xQXF2PkyJHQarUoLS1FREQEAOD48eOYNm0azGYz/vvf/2LatGkyR0pE5DnY801ERAOSmZmJG2+8EU1NTXjuuecAAEajEYsWLUJTUxO2bdvGxJuI6DTs+SYiogGrqanBsGHDoNFokJ+fjyuuuAL79u3DH//4R9x0001yh0dE5HHY801ERAOWkJCAdevWoaWlBePGjcO+ffvw29/+lok3EVE/2PNNRESDUltbi6SkJDgcDtxwww3YunWr3CEREXks9nwTEdGACYKAu+66Cw6HAwCgVqtljoiIyLMx+SYiogH79a9/je3bt2Px4sWIj4/Hn//8Zxw/flzusIiIPBaTbyIiGpAXXngBzz77LKZMmYJ3330X9913H2w2G37729/KHRoRkcdizTcREZ23d999F1dddRUyMjLw7bffQq/Xo7OzE8OGDUNNTQ0OHjyIcePGyR0mEZHHYc83ERGdly+++ALXX389YmJi8J///Ad6vR4AEBQUhPvvvx+CIOA3v/mNzFESEXkm9nwTEdE5O3r0KKZPnw6LxYJPP/0UU6dOdTlusVgwbNgwVFZW4ssvv8SMGTNkipSIyDMx+SYiIiIichOWnRARERERuQmTbyIiIiIiN2HyTURERETkJky+iYiIiIjchMk3EREREZGbMPkmIiIiInITJt9ERERERG7C5JuIiIiIyE2YfBMRERERuQmTbyIiIiIiN2HyTURERETkJky+iYiIiIjchMk3EREREZGbMPkmIiIiInITJt9ERERERG7C5JuIiIiIyE2YfBMRERERuQmTbyIiIiIiN/l/cHtR/lA791oAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 750x450 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "xlimit = (-8, 8)\n",
    "x = np.linspace(*xlimit, 1001)\n",
    "pdf = multigauss(x, sigmas=[1, 1.5], mus=[-2, 2])\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(x, pdf, color=\"gray\", linestyle=\"--\", alpha=0.5)\n",
    "\n",
    "ax.set(**{\n",
    "    \"xlim\": xlimit,\n",
    "    \"xlabel\": \"$x$\",\n",
    "    \"ylabel\": \"probability density\"\n",
    "})\n",
    "\n",
    "for i, s in enumerate(samples):\n",
    "    if dense[i]:\n",
    "        c = \"#396ab1\"\n",
    "    else:\n",
    "        c = \"gray\"\n",
    "    ax.plot(s, 0, linestyle=\"\",\n",
    "            marker=\"|\", markeredgewidth=0.75, markersize=15,\n",
    "            color=c)\n",
    "\n",
    "labels = [\n",
    "    (-4, \"1\"),\n",
    "    (-2.8, \"2\"),\n",
    "    (-1.8, \"0\"),\n",
    "    (-0.8, \"3\"),\n",
    "    (1, \"0\"),\n",
    "    (1.8, \"4\"),\n",
    "    (2.8, \"5\"),\n",
    "    (3.8, \"0\"),\n",
    "]\n",
    "\n",
    "for position, l in labels:\n",
    "    ax.annotate(l, (position, 0.02))\n",
    "\n",
    "fig.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this case we end up with 5 clusters, that are dense enough regions separated by low density areas. Like a change in the density iso-value as the density criterion for the continuous density function, a change of the cluster parameters $k$ and $r$ will determine the cluster result. Note, that we assigned the labels to the clusters by visual inspection. We will show later how to identify these isolated regions (connected components of core points) automatically. For this we additionally need to define when two points are actually part of the same dense region, meaning we need to define connectivity between points. In the case of DBSCAN, checking the density-criterion and checking the connectivity of two points are basically two separate tasks."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Common-nearest-neighbour clustering"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "While the DBSCAN approach to threshold-based density-based clustering estimates point density locally per point, we determine the density between two points in CommonNN clustering. As a consequence, checking the density-criterion and defining if two points are connected become essentially the same thing. Two points that fulfill the density requirement together are automatically identified as part of the same cluster. The density threshold (points per volume) is formulated as such: two points that share a minimum number of $n_\\mathrm{c}$ common neighbours with respect to a neighbour search radius *r* are considered *dense*. The figure below illustrates this. The green and the blue point pass the density-criterion check for CommonNN cutoffs of $n_\\mathrm{c} \\leq2$ because they share the two yellow points as their common neighbours. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:57.987094Z",
     "start_time": "2021-10-04T21:11:57.984115Z"
    }
   },
   "outputs": [],
   "source": [
    "# samples2D = np.vstack([np.random.normal((-1, 0), (0.4, 0.4), (10, 2)), np.random.normal((1, 0), (0.4, 0.4), (10, 2))])\n",
    "samples2D = np.load(\"algorithm_explained/samples2D.npy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.182912Z",
     "start_time": "2021-10-04T21:11:57.988494Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[[], [], None]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 499.5x307.5 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Density criterion / density reachability in 2D\n",
    "fig, ax = plt.subplots(figsize=(3.33, 2.05))\n",
    "r = 0.5\n",
    "c = 2\n",
    "\n",
    "neighbourhoods = np.array([\n",
    "    # Neighbour within r?\n",
    "    np.where((0 < x) & (x <= r))[0]\n",
    "    # distance matrix\n",
    "    for x in np.sqrt(np.subtract.outer(samples2D[:, 0], samples2D[:, 0])**2 + np.subtract.outer(samples2D[:, 1], samples2D[:, 1])**2)\n",
    "    ], dtype=object)\n",
    "\n",
    "for node, neighbours in enumerate(neighbourhoods):\n",
    "    for other_node in neighbours:\n",
    "        if np.intersect1d(neighbours, neighbourhoods[other_node]).shape[0] >= c:\n",
    "            # Density criterion fullfilled\n",
    "            ax.plot(*zip(samples2D[node], samples2D[other_node]), color=\"brown\", alpha=0.25, linewidth=0.75, zorder=0)\n",
    "\n",
    "source = 12\n",
    "member = 15\n",
    "intersection = [13, 18]\n",
    "classification = np.zeros(samples2D.shape[0])\n",
    "classification[source] = 1\n",
    "classification[member] = 2\n",
    "classification[intersection] = 3\n",
    "\n",
    "ax.plot(*zip(samples2D[source], samples2D[member]), color=\"brown\", alpha=1, linewidth=0.75, zorder=0)\n",
    "\n",
    "ax.annotate(\n",
    "    \"\", (samples2D[member][0] - r, samples2D[member][1]), samples2D[member],\n",
    "    arrowprops={\n",
    "        \"shrink\": 0, \"width\": 0.75, \"headwidth\": 3, \"headlength\": 3,\n",
    "        \"facecolor\": \"k\", \"linewidth\": 0\n",
    "        },\n",
    "    zorder=0\n",
    "    )\n",
    "\n",
    "ax.annotate(\n",
    "    \"$r$\", (samples2D[member][0] - r/2, samples2D[member][1] + 0.05),\n",
    "    fontsize=8\n",
    "    )\n",
    "\n",
    "ax.scatter(*samples2D.T, s=15, c=classification, linewidth=1, edgecolor=\"k\")\n",
    "neighbourhood = mpl.patches.Circle(\n",
    "    samples2D[source], r,\n",
    "    facecolor=\"None\",\n",
    "    edgecolor=\"k\", linewidth=0.75\n",
    "    )\n",
    "neighbourhood2 = mpl.patches.Circle(\n",
    "    samples2D[member], r,\n",
    "    facecolor=\"None\",\n",
    "    edgecolor=\"k\", linewidth=0.75\n",
    "    )\n",
    "ax.add_patch(neighbourhood)\n",
    "ax.add_patch(neighbourhood2)\n",
    "ax.set(**{\n",
    "    \"xticks\": (),\n",
    "    \"yticks\": (),\n",
    "    \"aspect\": \"equal\"\n",
    "})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "How the density criterion check and the clustering could be implemented should be explained further down."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Summary on density criteria"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A point is part of a dense region if the point ...\n",
    "\n",
    "  - DBSCAN: ... has at least $k_r$ neighbours within a radius $r$\n",
    "  - Jarvis-Patrick: ... shares at least $c$ common neighbours with a another point among their $k$ nearest neighbours\n",
    "  - CommonNN: ... shares at least $c$ common neighbours with a another point with respect to a radius $r$\n",
    "  \n",
    "Two points are part of the same dense region ...\n",
    "  - DBSCAN: ... if at least one of them is dense and the two points are neighbours\n",
    "  - Jarvis-Patrick: ... if they together pass the density criterion\n",
    "  - CommonNN: ... if they together pass the density criterion"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T12:52:43.477733Z",
     "start_time": "2020-06-19T12:52:43.475271Z"
    }
   },
   "source": [
    "## Identification of connected components of points"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Classifying points as part of a dense or a sparse region according to a density criterion, is only one aspect of assigning points to clusters. We still need to identify groups of points that are part of the same region. In this context, the term *density reachable* is often used to describe the situation where a point is directly connected to a dense point. We also use the term *density connected* for points that are part of the same dense region, i.e. they are directly or indirectly connected to any other point in the region by a chain of density reachable points. In other words, it is not enough to know which points are dense but we also need to be aware of the relationship between dense points. As mentioned earlier, for CommonNN clustering density reachability is a direct consequence of how the density-criterion is checked. For DBSCAN, this is a separate definition.\n",
    "\n",
    "When we express the connectivity relationship between points in a graph, the problem of identifying clusters of density connected points comes down to finding connected components of nodes within this graph. In the above example, we where primarily interested in the information if a point was part of a dense region by checking the density criterion. Let's now construct a density graph instead in which each dense point constitutes a node and each vertex represent the density reachability between two points. We neglect the concept of edge points (points that are not dense but density reachable from a dense point) for the sake of simplicity here. It should be noted, that the inclusion of edge points may also lead to ambiguous clustering results in the case where a low density point is a neighbour of two or more dense points in different clusters."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### DBSCAN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.272678Z",
     "start_time": "2021-10-04T21:11:58.184426Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwsAAAHgCAYAAADquvHSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAABcSAAAXEgFnn9JSAAByDUlEQVR4nO3deVxU5f4H8M+wDgoDKgIj4oYaKCAqpN0ouqJpaeHS5k0z1zQttOW6kiVqWl3LsizX7NI1KyiuS4uimVaamuiQ4JYijCyiMoPIsM35/eFlfo4M+8ycM8Pn/Xr5CuHMOd8xxPM5z/N9HpkgCAKIiIiIiIju4CB2AUREREREJE0MC0REREREZBLDAhERERERmcSwQEREREREJjEsEBERERGRSQwLRERERERkEsMCERERERGZxLBAREREREQmMSwQEREREZFJDAtERERERGQSwwIREREREZnEsEBERERERCYxLBARERERkUkMC0REREREZBLDAhERERERmeQkdgFERERERGISBAF5Wh1Uag0ycouhLa1ARZUezo4OULg5I1jpgTB/L/gqXCGTycQu16oYFoiIiIioRVKpNUg8lIXUzAIU3iir93hvd1fEBPlg/MDOCPH3tEKF4pMJgiCIXQQRERERkTUIgoCdqlysP3ABJ3KKmnye8AAvTInqiuGhSrsebWBYICIiIqIWIV+rw/xkFfaeLjDbOWOCfLB8VCh8FXKznVNKGBaIiIiIyO6lpKkRn5IOra7S7OdWyJ2QEBuC2HB/s59bbAwLRERERGTX1u4/j5XfZ1r8OvOGBWF6dKDFr2NNXDqViIiIiOyWtYICAKz4PhMf7z9vlWtZC8MCEREREdmllDS11YJCtRXfZyIlTW3Va1qS3U5D4nq5RERERC1XvlaHIe/ut0iPQn0UcifsnhNtF03PdhcWuF4uERERUcsmCAImbzlq1lWPGismyAcbnomw+YfSdhEWuF4uERGR7eEsALKUHScvY9bW42KXgTVj+2JEWAexy2gWmw8LXC+XiIjItnAWAFnayI9+QVp2kdhlIDzAC98+f6/YZTSLTYcFrpdLRERkGzgLgKxFpdbgkTUHxS7DYMesKJsOuTYbFrheLhERkW3gLACyprlJJ7HtaLbYZRg8FRmAFaPDxC6jyWxy6VSul0tERGQbUtLUGPLufrM3mqZmFmDIu/vt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IqI7jB/YWewSjIwbIE49DAtERERERHcI8fdEeICX2GUAAMIDvBAiUh8FwwIRERERkQlTorqKXQIAcetgWCAiIiIiMmF4qBKD7hK3dyEmyAfDQ5WiXZ9hgYiIiIjIBJlMhjdHh0IhdxLl+gq5E5aPChWlsbkawwIRERERUS18FXIkxIaIcu2E2BD4KuSiXLsawwIRERERUR1iw/0xb1iQVa85b1gQYsP9rXpNUxgWiIiIiIjqMT06EHOtFBjmDQvC9OhAq1yrPjJBEASxiyAiIiIisgUpaWrEp6RDq6s0+7kVcickxIZIYkShGsMCEREREVEj5Gt1mJ+swt7TBWY7Z0yQD5aPChW9R+FODAtERERERI0kCAJ2qnKx4eAFpGUXNfk8fQO8MDmqK4aHKkVd9ag2DAtERERERM2QrtYg8XAW9mQUoPBGWb3He7u7YnCwD8YN6CzazswNxbBARERERGQGgiAgX1sGlVqDjFwttLoKlFfq4eLkAIXcGcFKBcI6ekpuqlFdGBaIiIiIiMgkLp1KREREREQmMSwQEREREZFJDAtERERERGQSwwIREREREZnEsEBERERERCYxLBARERERkUkMC0REREREZBLDAhERERERmcSwQEREREREJjEsEBERERGRSQwLRERERERkEsMCERERERGZxLBAREREREQmMSwQEREREZFJ/we45VuXEpGIEgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 750x450 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Density criterion\n",
    "r = 0.5  # Neighbour search radius\n",
    "k = 1    # Minimum number of neighbours\n",
    "\n",
    "neighbourhoods = [\n",
    "    # Neighbour within r?\n",
    "    np.where((0 < x) & (x <= r))[0]\n",
    "    # distance matrix\n",
    "    for x in np.absolute(np.subtract.outer(samples, samples))\n",
    "]\n",
    "\n",
    "n_neighbours = np.asarray([len(x) for x in neighbourhoods])\n",
    "dense = n_neighbours >= k\n",
    "\n",
    "# Construct graph as dictionary\n",
    "# keys: dense points, values: density reachable points\n",
    "graph = {}\n",
    "for i, point in enumerate(neighbourhoods):\n",
    "    if dense[i]:\n",
    "        graph[i] = neighbourhoods[i][dense[neighbourhoods[i]]]\n",
    "\n",
    "G = networkx.Graph(graph)\n",
    "pos = networkx.spring_layout(G, iterations=10, seed=7)\n",
    "networkx.draw(G, pos=pos)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-19T13:56:04.569929Z",
     "start_time": "2020-06-19T13:56:04.548535Z"
    }
   },
   "source": [
    "Once such a graph is constructed, graph traversal algorithms can be used to find the connected components of nodes within the graph. A generic way to do so using a breadth-first-search algorithm could look like this:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.278830Z",
     "start_time": "2021-10-04T21:11:58.274188Z"
    }
   },
   "outputs": [],
   "source": [
    "labels = {}                          # Cluster label assignments\n",
    "visited = {k: False for k in graph}  # Node has been assigned\n",
    "queue = deque()                      # First-in-first-out queue\n",
    "current = 1                          # Current cluster number\n",
    "\n",
    "for point, connected in graph.items():\n",
    "    # Source node\n",
    "    if visited[point]:\n",
    "        continue\n",
    "    \n",
    "    labels[point] = current\n",
    "    visited[point] = True\n",
    "    \n",
    "    while True:\n",
    "        for reachable in connected:\n",
    "            if visited[reachable]:\n",
    "                continue\n",
    "        \n",
    "            labels[reachable] = current\n",
    "            visited[reachable] = True\n",
    "            queue.append(reachable)\n",
    "        \n",
    "        if not queue:\n",
    "            break\n",
    "            \n",
    "        point = queue.popleft()\n",
    "        connected = graph[point]\n",
    "    \n",
    "    current += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.291057Z",
     "start_time": "2021-10-04T21:11:58.280660Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{0: 1,\n",
       " 11: 1,\n",
       " 14: 1,\n",
       " 17: 1,\n",
       " 19: 1,\n",
       " 1: 2,\n",
       " 6: 2,\n",
       " 16: 2,\n",
       " 2: 3,\n",
       " 4: 3,\n",
       " 5: 3,\n",
       " 7: 3,\n",
       " 3: 4,\n",
       " 10: 4,\n",
       " 9: 5,\n",
       " 12: 5,\n",
       " 13: 5}"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.438883Z",
     "start_time": "2021-10-04T21:11:58.293112Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 750x450 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "networkx.draw(G, pos=pos, with_labels=True, node_color=[x[1] for x in sorted(labels.items())])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.674222Z",
     "start_time": "2021-10-04T21:11:58.440592Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArYAAAGuCAYAAABlbkWHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAABcSAAAXEgFnn9JSAABhOElEQVR4nO3dd5xcV33//9dn22wv2iJtU1vJkiVh2ZILGIgLsQkONcGUEEiooQYwAQIJ9ZeEmgQSSkIxJaEbDF/AhF5csI2xsGQ1S6u1tE3SStv7lPP7Y4pnViNptXt37szs+/l47GPm3jv3ns/u7M589sznnGPOOUREREREcl2B3wGIiIiIiHhBia2IiIiI5AUltiIiIiKSF5TYioiIiEheUGIrIiIiInlBia2IiIiI5AUltiIiIiKSF5TYioiIiEheUGIrIiIiInlBia2IiIiI5AUltiIiIiKSF5TYioiIiEheKPI7gOXGzI4D5UC337GIiIiI+KwdmHTOrfLiYuac8+I6Mk9mNhoIBKo6Ojr8DkVERETEV52dnczMzIw556q9uJ56bDOvu6OjY8vevXv9jkNERETEV1u3bmXfvn2efYqtGlsRERERyQtKbEVEREQkLyixFREREZG8oMRWRERERPKCElsRERERyQtKbEVEREQkLyixFREREZG8oMRWRERERPKCElsRERERyQtKbEVEREQkLyixFREREZG8oMRWRERERPJCTia2ZlZuZh83s+NmNm5m3zWzdfM8d6eZ/dzMhs3sgJl9ysxq0zyuyMzebWbHzGwyds5lnn8zIuKpcDiMc87vMERExAc5l9iamQHfBf4K+B/gbcAW4C4zazrPuY8D7ga6gbcAPwJeDjxgZvVzHv5p4J3AD4A3A1XAr83sYs++GRHx1KlTp7j//vs5ceLEGcecc/T39xMOh32ITEREMqHI7wAW4FnADcCNzrmfApjZj4GDwLuAN5zj3I8D/+2ce2N8h5n9APgZ8G7gjbF9lwGvAF7lnPtsbN83gC7gw8AzPP6eRGQRnHMcPXqURx99FICuri6ampooKHjsf/cTJ05w8OBBent7ueSSSygpKfEpWhERWSo512NLNKncG09qAZxzncC3gOfHenTPECs3+CPgX5L3O+d+DvwCeGHS7qcDI8AXkx43DPwX8KdmVunB9yEiHklOagFmZ2cZGRlJbE9N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\n",
      "text/plain": [
       "<Figure size 750x450 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "xlimit = (-8, 8)\n",
    "x = np.linspace(*xlimit, 1001)\n",
    "pdf = multigauss(x, sigmas=[1, 1.5], mus=[-2, 2])\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(x, pdf, color=\"gray\", linestyle=\"--\", alpha=0.5)\n",
    "\n",
    "ax.set(**{\n",
    "    \"xlim\": xlimit,\n",
    "    \"xlabel\": \"$x$\",\n",
    "    \"ylabel\": \"probability density\"\n",
    "})\n",
    "\n",
    "colors = ['#396ab1', '#da7c30', '#3e9651', '#cc2529', '#6b4c9a']\n",
    "for i, s in enumerate(samples):\n",
    "    if dense[i]:\n",
    "        c = colors[labels[i] - 1]\n",
    "    else:\n",
    "        c = \"gray\"\n",
    "    ax.plot(s, 0, linestyle=\"\",\n",
    "            marker=\"|\", markeredgewidth=0.75, markersize=15,\n",
    "            color=c)\n",
    "\n",
    "labels_ = [\n",
    "    (-4, \"2\"),\n",
    "    (-2.8, \"1\"),\n",
    "    (-1.8, \"0\"),\n",
    "    (-0.8, \"3\"),\n",
    "    (1, \"0\"),\n",
    "    (1.8, \"4\"),\n",
    "    (2.8, \"5\"),\n",
    "    (3.8, \"0\"),\n",
    "]\n",
    "\n",
    "for position, l in labels_:\n",
    "    ax.annotate(l, (position, 0.02))\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## CommonNN clustering in detail"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In practice, one does not necessarily need to construct a density connectivity graph in its entirety beforehand. It is also possible to start from another input structure and explore the connectivity while traversing the structure. We will now show a variant of the CommonNN clustering procedure, starting from pre-computed neighbourhoods in more detail. For this, we generate a small example data set of 200 points in 2D."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.741057Z",
     "start_time": "2021-10-04T21:11:58.679890Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[[], [], None]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 750x450 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "noisy_circles, _ = datasets.make_circles(\n",
    "    n_samples=200,\n",
    "    factor=.5,\n",
    "    noise=.05,\n",
    "    random_state=8\n",
    "    )\n",
    "\n",
    "noisy_circles = StandardScaler().fit_transform(noisy_circles)\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(*noisy_circles.T, \"k.\")\n",
    "ax.set(**{\n",
    "    \"xticks\": (),\n",
    "    \"yticks\": (),\n",
    "    \"aspect\": \"equal\"\n",
    "})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We expect to find two clusters (an inner and an outer ring) in this data set. We will at first compute the neighbourhoods for all points with respect to a radius of $r$. Below we show the neighbourhood for the first point in the set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.747034Z",
     "start_time": "2021-10-04T21:11:58.743692Z"
    }
   },
   "outputs": [],
   "source": [
    "r = 0.7"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.756122Z",
     "start_time": "2021-10-04T21:11:58.749576Z"
    }
   },
   "outputs": [],
   "source": [
    "def point_zoom(data, point, ax):\n",
    "    ax.plot(*data.T, \"k.\")\n",
    "    ax.plot(*data[point].T, \"r.\")\n",
    "    \n",
    "    neighbourhood = mpl.patches.Circle(\n",
    "        data[point], r,\n",
    "        edgecolor=\"k\",\n",
    "        facecolor=\"grey\"\n",
    "    )\n",
    "    ax.add_patch(neighbourhood)\n",
    "    \n",
    "    limit_factor = 1.2\n",
    "    ax.set_xlim(data[point][0] - r * limit_factor,\n",
    "                data[point][0] + r * limit_factor)\n",
    "    ax.set_ylim(data[point][1] - r * limit_factor,\n",
    "                data[point][1] + r * limit_factor)\n",
    "    ax.set(**{\n",
    "        \"xticks\": (),\n",
    "        \"yticks\": (),\n",
    "        \"aspect\": \"equal\"\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.825864Z",
     "start_time": "2021-10-04T21:11:58.759223Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 750x450 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "point_zoom(noisy_circles, 0, ax=ax)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.832244Z",
     "start_time": "2021-10-04T21:11:58.827670Z"
    }
   },
   "outputs": [],
   "source": [
    "# Calculate neighbourhoods using a k-d tree\n",
    "tree = cKDTree(noisy_circles)\n",
    "neighbourhoods = [set(x) for x in tree.query_ball_point(noisy_circles, r)]\n",
    "for i, s in enumerate(neighbourhoods):\n",
    "    # Avoid neighbour self-counting\n",
    "    s.remove(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.841202Z",
     "start_time": "2021-10-04T21:11:58.833733Z"
    }
   },
   "outputs": [],
   "source": [
    "def check_similarity(a, b, c):\n",
    "    \"\"\"Check the CNN density criterion\"\"\"\n",
    "    if len(a & b) >= c:\n",
    "        return True\n",
    "    return False\n",
    "\n",
    "def commonn_from_neighbourhoods(\n",
    "        neighbourhoods, c, yield_iterations=False):\n",
    "    \"\"\"Apply CNN clustering\n",
    "    \n",
    "    neighbourhoods:\n",
    "        list of sets of point indices\n",
    "        (neighbours of each point)\n",
    "    c:\n",
    "        Density reachable points need at least this many common\n",
    "        nearest neighbours\n",
    "    yield_iterations:\n",
    "        Report state of clustering after each label assignment\n",
    "    \"\"\"\n",
    "    \n",
    "    n = len(neighbourhoods)              # Number of points\n",
    "    visited = [False for _ in range(n)]  # Track visited\n",
    "    labels = [0 for _ in range(n)]       # Output container\n",
    "    queue = deque()                      # FIFO queue    \n",
    "    current = 1                          # Cluster count\n",
    "    \n",
    "    for point in range(n):\n",
    "        # Source node\n",
    "        if visited[point]:\n",
    "            continue\n",
    "        \n",
    "        visited[point] = True\n",
    "\n",
    "        neighbours = neighbourhoods[point]\n",
    "        if len(neighbours) <= c:\n",
    "            continue\n",
    "\n",
    "        labels[point] = current\n",
    "\n",
    "        if yield_iterations:\n",
    "            # Get current state of clustering\n",
    "            yield (point, None, current, labels, visited)\n",
    "\n",
    "        while True:\n",
    "            for member in neighbours:\n",
    "                if visited[member]:\n",
    "                    continue\n",
    "                    \n",
    "                neighbour_neighbours = neighbourhoods[member]\n",
    "                if len(neighbour_neighbours) <= c:\n",
    "                    continue\n",
    "                    \n",
    "                if check_similarity(neighbours, neighbour_neighbours, c):\n",
    "                    labels[member] = current\n",
    "                    visited[member] = True\n",
    "                    queue.append(member)\n",
    "                    \n",
    "                    if yield_iterations:\n",
    "                        # Get current state of clustering\n",
    "                        yield (point, member, current, labels, visited)\n",
    "\n",
    "            if not queue:\n",
    "                break\n",
    "\n",
    "            point = queue.popleft()\n",
    "            neighbours = neighbourhoods[point]\n",
    "\n",
    "        current += 1\n",
    "    \n",
    "    if not yield_iterations:\n",
    "        yield labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.853085Z",
     "start_time": "2021-10-04T21:11:58.842795Z"
    }
   },
   "outputs": [],
   "source": [
    "def plt_iteration(\n",
    "        data, iteration=None, ax=None, ax_props=None, color_list=None):\n",
    "\n",
    "    if ax is None:\n",
    "        fig, ax = plt.subplots()\n",
    "    else:\n",
    "        fig = ax.get_figure()\n",
    "        \n",
    "    ax_props_defaults = {\n",
    "        \"xticks\": (),\n",
    "        \"yticks\": (),\n",
    "        \"aspect\": \"equal\"\n",
    "    }\n",
    "    \n",
    "    if ax_props is not None:\n",
    "        ax_props_defaults.update(ax_props)\n",
    "    \n",
    "    if iteration is not None:\n",
    "        point, member, current, labels, visited = iteration\n",
    "        \n",
    "        if color_list is None:\n",
    "            color_list = [\n",
    "                \"black\"] + [\n",
    "                    i[\"color\"]\n",
    "                    for i in islice(mpl.rcParams[\"axes.prop_cycle\"], current)\n",
    "                ]\n",
    "\n",
    "        for cluster in range(current + 1):\n",
    "            indices = np.where(np.asarray(labels) == cluster)[0]\n",
    "            ax.plot(*data[indices].T, c=color_list[cluster],\n",
    "                    linestyle=\"\", marker=\".\")\n",
    "        \n",
    "    else:\n",
    "        ax.plot(*data.T)    \n",
    "        \n",
    "    ax.set(**ax_props_defaults)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.921316Z",
     "start_time": "2021-10-04T21:11:58.854502Z"
    }
   },
   "outputs": [],
   "source": [
    "class AnimatedIterations:\n",
    "    \"\"\"An animated scatter plot using matplotlib.animations.FuncAnimation.\"\"\"\n",
    "    def __init__(self, data, iterations=None):\n",
    "        self.data = data\n",
    "        self.iterations = iter(iterations)\n",
    "        self.highlights = deque(maxlen=5)\n",
    "        self.sizes = np.ones(len(self.data)) * 10\n",
    "\n",
    "        self.fig, self.ax = plt.subplots()\n",
    "        self.animation = animation.FuncAnimation(\n",
    "            self.fig, self.update, frames=200, interval=100,\n",
    "            init_func=self.setup_plot, blit=True\n",
    "            )\n",
    "\n",
    "    def setup_plot(self):\n",
    "        \"\"\"Initial drawing of the scatter plot.\"\"\"\n",
    "        self.scatter = self.ax.scatter(\n",
    "            *self.data.T,\n",
    "            s=self.sizes,\n",
    "            c=np.asarray([0 for _ in range(len(self.data))]),\n",
    "            cmap=mpl.colors.LinearSegmentedColormap.from_list(\n",
    "                \"cluster_map\",\n",
    "                [\"black\"] + [\n",
    "                    i[\"color\"]\n",
    "                    for i in islice(mpl.rcParams[\"axes.prop_cycle\"], 2)\n",
    "                    ]\n",
    "                ),\n",
    "            vmin=0, vmax=2\n",
    "            )\n",
    "        # self.ax.axis([-10, 10, -10, 10])\n",
    "        # For FuncAnimation's sake, we need to return the artist we'll be using\n",
    "        # Note that it expects a sequence of artists, thus the trailing comma.\n",
    "        return self.scatter,\n",
    "\n",
    "    def update(self, i):\n",
    "        \"\"\"Update the scatter plot.\"\"\"\n",
    "        point, member, current, labels, visited = next(self.iterations)\n",
    "        if member is None:\n",
    "            self.highlights.append(point)\n",
    "        else:\n",
    "            self.highlights.append(member)\n",
    "            \n",
    "        for c, p in enumerate(self.highlights, 1):\n",
    "            self.sizes[p] = c * 10\n",
    "        \n",
    "        # Set sizes\n",
    "        self.scatter.set_sizes(self.sizes)\n",
    "        \n",
    "        # Set colors\n",
    "        self.scatter.set_array(np.asarray(labels))\n",
    "\n",
    "        # We need to return the updated artist for FuncAnimation to draw..\n",
    "        # Note that it expects a sequence of artists, thus the trailing comma.\n",
    "        return self.scatter,\n",
    "\n",
    "\n",
    "Animation = AnimatedIterations(\n",
    "    noisy_circles,\n",
    "    commonn_from_neighbourhoods(neighbourhoods, 5, yield_iterations=True)\n",
    ")\n",
    "# Animation.animation.save('algorithm_explained/iteration.mp4', dpi=300)\n",
    "plt.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<center>\n",
    "<video controls src=\"algorithm_explained/iteration.mp4\" height=\"500px\"/>\n",
    "</center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Debug mode"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the current version of the `cnnclustering` package, CommonNN clustering is in detail quite differently implemented than shown in the previous section. To get a closer look at what is going on during a clustering, we provide a fitter type that can yield the state of the assignment during a clustering procedure."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.928816Z",
     "start_time": "2021-10-04T21:11:58.923670Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Clustering(input_data=InputDataExtComponentsMemoryview, fitter=FitterExtBFSDebug(ngetter=NeighboursGetterExtBruteForce(dgetter=DistanceGetterExtMetric(metric=MetricExtEuclideanReduced), sorted=False, selfcounting=True), na=NeighboursExtVectorCPPUnorderedSet, nb=NeighboursExtVectorCPPUnorderedSet, checker=SimilarityCheckerExtSwitchContains, queue=QueueExtFIFOQueue, verbose=True, yielding=True), predictor=None)\n"
     ]
    }
   ],
   "source": [
    "clustering = cluster.Clustering(noisy_circles, fitter=\"bfs_debug\")\n",
    "print(clustering)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T20:32:04.479929Z",
     "start_time": "2021-10-04T20:32:04.473349Z"
    }
   },
   "source": [
    "As the `fit` method of the debug fitter `_types.FitterExtBFSDebug` is returning generator, we can not invoke it directly from the `Clustering` object but have to call it manually."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.938948Z",
     "start_time": "2021-10-04T21:11:58.930809Z"
    },
    "run_control": {
     "marked": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<generator at 0x7f14d9f89c10>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clustering.labels = np.zeros(clustering._input_data.n_points, dtype=int)\n",
    "iterations = clustering.fitter.fit(\n",
    "    clustering._input_data,\n",
    "    clustering._labels,\n",
    "    _types.ClusterParameters(0.7, 5)\n",
    ")\n",
    "iterations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.946937Z",
     "start_time": "2021-10-04T21:11:58.940731Z"
    },
    "run_control": {
     "marked": true
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CommonNN clustering - FitterExtBFSDebug\n",
      "================================================================================\n",
      "200 points\n",
      "radius_cutoff                : 0.7\n",
      "similarity_cutoff            : 5\n",
      "similarity_cutoff_continuous : 0.0\n",
      "n_member_cutoff              : 5\n",
      "current_start                : 1\n",
      "\n",
      "New source: 0\n",
      "    ... new cluster 1\n"
     ]
    }
   ],
   "source": [
    "state = next(iterations)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.955061Z",
     "start_time": "2021-10-04T21:11:58.948463Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'reason': 'assigned_source', 'init_point': 0, 'point': None, 'member': None}"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "state"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.963751Z",
     "start_time": "2021-10-04T21:11:58.956382Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    ... loop over 15 neighbours\n",
      "        ... current neighbour 0\n",
      "        ... already visited\n",
      "\n",
      "        ... current neighbour 1\n",
      "        ... successful check!\n",
      "\n"
     ]
    }
   ],
   "source": [
    "state = next(iterations)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.971271Z",
     "start_time": "2021-10-04T21:11:58.965457Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'reason': 'assigned_neighbour', 'init_point': 0, 'point': 0, 'member': 1}"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "state"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-10-04T21:11:58.980312Z",
     "start_time": "2021-10-04T21:11:58.972547Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0])"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clustering.labels"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "labcommonnn_3.10.7",
   "language": "python",
   "name": "labcommonnn_3.10.7"
  },
  "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.10.7"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": true,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "344px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
