{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", " \n", "## [mlcourse.ai](https://mlcourse.ai) – Open Machine Learning Course \n", "\n", "
Author: Nikita Simonov (@simanjan)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###
Self orginizing map.
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Self-organizing map is type of [neural network](https://en.wikipedia.org/wiki/Artificial_neural_network) is trained using [unsupervised learning](https://en.wikipedia.org/wiki/Unsupervised_learning) and also is an one of Kohonen neural network. The idea of creatins the such networks belongs to the Finnish scientist [Teuvo Kohonen](https://en.wikipedia.org/wiki/Teuvo_Kohonen). Basically that networks perform clustering and data visualization tasks. But they also allow to reduce multidimensional data into a space of a smaller dimension, and are used to search for patterns in the data.\n", "\n", "In this article we will see how to solve the clustering problem with help of the Kohonen network and will build self organizing map.\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###
Kohonen neural network.
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The main element of the network is the Kohonen layer consists of a number of linear elements has m inputs. Every layer get on input the $x = (x_1, x_2, ... , x_n)$ vector from input data. The output of every layer is\n", "$$y_j = \\sum_i^n w_{ij}x_i$$\n", "\n", "- $i$ - number of input.\n", "- $j$ - number of layer (number of neuron).\n", "- $w_{ij}$ - weight of i-input j-layer. \n", "\n", "\n", "After the $y$ of each neuron is calculated, the winner’s neuron will be determined according to the “winner takes all” rule. The max $$y_{max} = argmax\\{y_j\\}$$ is searched among all and then the output of such a neuron will be $1$, all other outputs will be $0$. \n", "If the max is reached in several neurons: \n", "- all signals will be equal to $1$.\n", "- the first in the max list will be $1$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###
Kohonen map.
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " - **Inizialization**\n", " \n", " The most popular ways to set the initial node weights are:\n", "\n", " - Set the random values to all weights.\n", " - To take random $x_i$ from the input data and set it into weights.\n", " - The choice of weight vectors from from main components [(PCA)](https://en.wikipedia.org/wiki/Principal_component_analysis) of the input data set.\n", " \n", " As a result, we get $M_k$ is the map of neurons. $k$- neurons, their count is sets by the an analytics.\n", " \n", " $N$ - number of input data.\n", " \n", " - **Trainning**\n", " \n", " Initializing $t=0$ is it number of iteration and shuffling input data.\n", " \n", " - Choosing $x(t)$ from input data. \n", " - Calculate distance $$d_i(x(t), m_i(t)) = \\sqrt{(x_1(t) - m_{1i}(t))^2 + (x_2(t) - m_{2i}(t))^2 + ... + (x_n(t) - m_{ni}(t))^2}$$ from the input vector to all neurons of the map. Here:\n", " - $d_i(x(t), m_i(t))$ is [Euclidean distance](https://en.wikipedia.org/wiki/Euclidean_distance).\n", " - $x(t)$ is input vector.\n", " - $m_i \\in M_k$ \n", " \n", " Аmong all the neurons, it is determined closest to the incoming vector $d_{min} = argmin\\{d_i\\}$.The neuron associated to the $d_{min}$ will be the winner. If $d_{min}$ is reached at several neurons the winner will chosen randomly. $m_w$ is winner neuron.\n", " \n", " Kohonen maps, unlike networks, use the \"Winner Takes Most\" algorithm in training. In this way the weights of not only the neuron of the winner, but also of [topologically](https://en.wikipedia.org/wiki/Topology) close neurons are updated.\n", " \n", " - Calculate $h$ function that defines the \"measure of neighborhood\" for neurons. Typically $h$ is the [Gaussian function](https://en.wikipedia.org/wiki/Gaussian_function). $$h_{wi} = \\alpha(t) \\exp(-\\frac{||m_w - m_i||^2}{2 \\gamma(t) ^ 2})$$ \n", " - $m_w$ is winner neuron.\n", " - $m_i \\in M_k$ is neuron from map.\n", " - $\\gamma(t)$ is the value function the number of neighbors. The most commonly used function is linearly decreasing from the training itaration number. The value on the first iteration sets by the analyst. Also in simple version $\\gamma(t) = \\alpha(t)$.\n", " - $\\alpha(t)$ is learning rate function. In simple version is constant. But for the best result, the function is often used $$\\alpha(t) = \\frac{A}{t + B}$$ here \n", " - $t$ is number of iteration.\n", " - $A and B$ is constant.\n", " \n", " - Change weights.\n", " \n", " Calculate $m_i(t) = m_i(t-1) + h_i(t) (x(t) - m_i(t-1)), i = 1,2,..., k$.\n", " \n", " \n", " Update the weights of all neurons that are neighbors of the winner's neuron.\n", " Increase $t$ and repeat learning.\n", "\n", " Training continues until $t < N$ or until the error becomes small." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Self-organizing maps uses in [data mining](https://en.wikipedia.org/wiki/Data_mining) like a text analysis, financial statement analysis or image analysis.\n", "\n", "The advantages of self-organizing cards:\n", " - Dimensionality reduction.\n", " - Topological modeling of the training set.\n", " - Resistance to outliers and missed data.\n", " - Simple visualization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Visualization of the work of the self-organizing card.\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets see small example.\n", "\n", "First we should install the 'SOMPY' library. The \"SOMPY\" does not have an official documentation. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting git+https://github.com/compmonks/SOMPY.git\n", " Cloning https://github.com/compmonks/SOMPY.git to /tmp/pip-req-build-e6f2f3m_\n", "Requirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.5/dist-packages (from SOMPY==1.0) (1.15.2)\n", "Requirement already satisfied: scipy>=0.9 in /usr/local/lib/python3.5/dist-packages (from SOMPY==1.0) (1.1.0)\n", "Requirement already satisfied: scikit-learn>=0.16 in /usr/local/lib/python3.5/dist-packages (from SOMPY==1.0) (0.20.0)\n", "Collecting numexpr>=2.5 (from SOMPY==1.0)\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/0e/5b/f26e64e96dbd8e17f6768bc711096e83777ed057b2ffc663a8f61d02e1a8/numexpr-2.6.8-cp35-cp35m-manylinux1_x86_64.whl (162kB)\n", "\u001b[K 100% |################################| 163kB 729kB/s ta 0:00:01\n", "\u001b[?25hBuilding wheels for collected packages: SOMPY\n", " Running setup.py bdist_wheel for SOMPY ... \u001b[?25ldone\n", "\u001b[?25h Stored in directory: /tmp/pip-ephem-wheel-cache-8zh2ikor/wheels/cc/5f/3e/4c08f1ca381629d98f50c9ba04bd95c9e704dc37ebdf301c1c\n", "Successfully built SOMPY\n", "Installing collected packages: numexpr, SOMPY\n", "Successfully installed SOMPY-1.0 numexpr-2.6.8\n" ] } ], "source": [ "!pip3 install git+https://github.com/compmonks/SOMPY.git" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Also you may need to install ipdb." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting ipdb\n", " Downloading https://files.pythonhosted.org/packages/80/fe/4564de08f174f3846364b3add8426d14cebee228f741c27e702b2877e85b/ipdb-0.11.tar.gz\n", "Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from ipdb) (20.7.0)\n", "Requirement already satisfied: ipython>=5.0.0 in /usr/local/lib/python3.5/dist-packages (from ipdb) (7.0.1)\n", "Requirement already satisfied: pickleshare in /usr/local/lib/python3.5/dist-packages (from ipython>=5.0.0->ipdb) (0.7.5)\n", "Requirement already satisfied: prompt-toolkit<2.1.0,>=2.0.0 in /usr/local/lib/python3.5/dist-packages (from ipython>=5.0.0->ipdb) (2.0.5)\n", "Requirement already satisfied: backcall in /usr/local/lib/python3.5/dist-packages (from ipython>=5.0.0->ipdb) (0.1.0)\n", "Requirement already satisfied: jedi>=0.10 in /usr/local/lib/python3.5/dist-packages (from ipython>=5.0.0->ipdb) (0.13.1)\n", "Requirement already satisfied: decorator in /usr/local/lib/python3.5/dist-packages (from ipython>=5.0.0->ipdb) (4.3.0)\n", "Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.5/dist-packages (from ipython>=5.0.0->ipdb) (4.3.2)\n", "Requirement already satisfied: pygments in /usr/local/lib/python3.5/dist-packages (from ipython>=5.0.0->ipdb) (2.2.0)\n", "Requirement already satisfied: pexpect; sys_platform != \"win32\" in /usr/local/lib/python3.5/dist-packages (from ipython>=5.0.0->ipdb) (4.6.0)\n", "Requirement already satisfied: simplegeneric>0.8 in /usr/local/lib/python3.5/dist-packages (from ipython>=5.0.0->ipdb) (0.8.1)\n", "Requirement already satisfied: wcwidth in /usr/local/lib/python3.5/dist-packages (from prompt-toolkit<2.1.0,>=2.0.0->ipython>=5.0.0->ipdb) (0.1.7)\n", "Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.5/dist-packages (from prompt-toolkit<2.1.0,>=2.0.0->ipython>=5.0.0->ipdb) (1.11.0)\n", "Requirement already satisfied: parso>=0.3.0 in /usr/local/lib/python3.5/dist-packages (from jedi>=0.10->ipython>=5.0.0->ipdb) (0.3.1)\n", "Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.5/dist-packages (from traitlets>=4.2->ipython>=5.0.0->ipdb) (0.2.0)\n", "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.5/dist-packages (from pexpect; sys_platform != \"win32\"->ipython>=5.0.0->ipdb) (0.6.0)\n", "Building wheels for collected packages: ipdb\n", " Running setup.py bdist_wheel for ipdb ... \u001b[?25ldone\n", "\u001b[?25h Stored in directory: /root/.cache/pip/wheels/a8/0e/e2/ffc7bedd430bfd12e9dba3c4dd88906bc42962face85bc4df7\n", "Successfully built ipdb\n", "Installing collected packages: ipdb\n", "Successfully installed ipdb-0.11\n" ] } ], "source": [ "!pip3 install ipdb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Import all necessary libraries." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Loaded backend module://ipykernel.pylab.backend_inline version unknown.\n" ] } ], "source": [ "import matplotlib.pylab as plt\n", "\n", "%matplotlib inline\n", "import warnings\n", "\n", "warnings.filterwarnings(\"ignore\")\n", "from time import time\n", "\n", "import numpy as np\n", "import pandas as pd\n", "import sompy\n", "\n", "np.random.seed(17)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Creating a \"toy\" dataset." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "