{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 1\n",
    "create a Kohonen network with 2 inputs and 10 neurons\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import neurolab as nl\n",
    "\n",
    "net = nl.net.newc([[-1, 1], [-1, 1]], 10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 100; Error: 31.324299939894914;\n",
      "Epoch: 200; Error: 31.325409548683197;\n",
      "Epoch: 300; Error: 31.325409633634294;\n",
      "Epoch: 400; Error: 31.325409633639296;\n",
      "Epoch: 500; Error: 31.32540963363931;\n",
      "The maximum number of train epochs is reached\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import neurolab as nl\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy.random as rand\n",
    "\n",
    "centr = np.array([[0.2, 0.2], [0.4, 0.4], [0.7, 0.3], [0.2, 0.5]])\n",
    "rand_norm = 0.05 * rand.randn(100, 4, 2)\n",
    "inp = np.array([centr + r for r in rand_norm])\n",
    "inp.shape = (100 * 4, 2)\n",
    "rand.shuffle(inp) \n",
    "\n",
    "# Create net with 2 inputs and 4 neurons\n",
    "net = nl.net.newc([[0.0, 1.0],[0.0, 1.0]], 4)\n",
    "\n",
    "# Train the network\n",
    "error = net.trainf = nl.train.train_cwta(net, inp, epochs = 500)\n",
    "\n",
    "\n",
    "\n",
    "# Plot results:\n",
    "plt.subplot(2,1,1)\n",
    "\n",
    "plt.plot(error)\n",
    "plt.xlabel('Epoch number')\n",
    "plt.ylabel('error (default MAE)')\n",
    "w = net.layers[0].np['w']\n",
    "\n",
    "plt.subplot(2,1,2)\n",
    "plt.plot(inp[:,0], inp[:,1], '.', \\\n",
    "        centr[:,0], centr[:, 1] , 'yv', \\\n",
    "        w[:,0], w[:,1], 'p')\n",
    "plt.legend(['train samples', 'real centers', 'train centers'])\n",
    "plt.show();\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import neurolab as nl\n",
    "from sklearn.datasets import load_iris"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "iris = load_iris()\n",
    "X = iris.data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Scale the data [0, 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import preprocessing\n",
    "\n",
    "min_max_scaler = preprocessing.MinMaxScaler()\n",
    "\n",
    "X = min_max_scaler.fit_transform(X)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Train the network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 200; Error: 49.13710857959976;\n",
      "Epoch: 400; Error: 49.13710857218311;\n",
      "Epoch: 600; Error: 49.13710857218311;\n",
      "Epoch: 800; Error: 49.13710857218311;\n",
      "Epoch: 1000; Error: 49.13710857218311;\n",
      "The maximum number of train epochs is reached\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "net   = nl.net.newc(nl.tool.minmax(X), 3) # we choose 3 because we know that there are 3 categories\n",
    "\n",
    "error = net.trainf = nl.train.train_wta(net, X, epochs = 1000, show = 200)\n",
    "\n",
    "# Plot results:\n",
    "plt.title('Classification Problem')\n",
    "plt.subplot(2,1,1)\n",
    "plt.plot(error)\n",
    "plt.xlabel('Epoch number')\n",
    "plt.ylabel('error (default MAE)')\n",
    "w = net.layers[0].np['w']\n",
    "\n",
    "plt.subplot(2,1,2)\n",
    "plt.plot(X[:,2], X[:,3], '.', \\\n",
    "        w[:,2], w[:,3], 'p')\n",
    "plt.legend(['train samples', 'train centers'])\n",
    "plt.show();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
