{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      ".. _iris_dataset:\n",
      "\n",
      "Iris plants dataset\n",
      "--------------------\n",
      "\n",
      "**Data Set Characteristics:**\n",
      "\n",
      "    :Number of Instances: 150 (50 in each of three classes)\n",
      "    :Number of Attributes: 4 numeric, predictive attributes and the class\n",
      "    :Attribute Information:\n",
      "        - sepal length in cm\n",
      "        - sepal width in cm\n",
      "        - petal length in cm\n",
      "        - petal width in cm\n",
      "        - class:\n",
      "                - Iris-Setosa\n",
      "                - Iris-Versicolour\n",
      "                - Iris-Virginica\n",
      "                \n",
      "    :Summary Statistics:\n",
      "\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "                    Min  Max   Mean    SD   Class Correlation\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "    sepal length:   4.3  7.9   5.84   0.83    0.7826\n",
      "    sepal width:    2.0  4.4   3.05   0.43   -0.4194\n",
      "    petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)\n",
      "    petal width:    0.1  2.5   1.20   0.76    0.9565  (high!)\n",
      "    ============== ==== ==== ======= ===== ====================\n",
      "\n",
      "    :Missing Attribute Values: None\n",
      "    :Class Distribution: 33.3% for each of 3 classes.\n",
      "    :Creator: R.A. Fisher\n",
      "    :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\n",
      "    :Date: July, 1988\n",
      "\n",
      "The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken\n",
      "from Fisher's paper. Note that it's the same as in R, but not as in the UCI\n",
      "Machine Learning Repository, which has two wrong data points.\n",
      "\n",
      "This is perhaps the best known database to be found in the\n",
      "pattern recognition literature.  Fisher's paper is a classic in the field and\n",
      "is referenced frequently to this day.  (See Duda & Hart, for example.)  The\n",
      "data set contains 3 classes of 50 instances each, where each class refers to a\n",
      "type of iris plant.  One class is linearly separable from the other 2; the\n",
      "latter are NOT linearly separable from each other.\n",
      "\n",
      ".. topic:: References\n",
      "\n",
      "   - Fisher, R.A. \"The use of multiple measurements in taxonomic problems\"\n",
      "     Annual Eugenics, 7, Part II, 179-188 (1936); also in \"Contributions to\n",
      "     Mathematical Statistics\" (John Wiley, NY, 1950).\n",
      "   - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.\n",
      "     (Q327.D83) John Wiley & Sons.  ISBN 0-471-22361-1.  See page 218.\n",
      "   - Dasarathy, B.V. (1980) \"Nosing Around the Neighborhood: A New System\n",
      "     Structure and Classification Rule for Recognition in Partially Exposed\n",
      "     Environments\".  IEEE Transactions on Pattern Analysis and Machine\n",
      "     Intelligence, Vol. PAMI-2, No. 1, 67-71.\n",
      "   - Gates, G.W. (1972) \"The Reduced Nearest Neighbor Rule\".  IEEE Transactions\n",
      "     on Information Theory, May 1972, 431-433.\n",
      "   - See also: 1988 MLC Proceedings, 54-64.  Cheeseman et al\"s AUTOCLASS II\n",
      "     conceptual clustering system finds 3 classes in the data.\n",
      "   - Many, many more ...\n",
      "dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename'])\n",
      "     sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  \\\n",
      "0                  5.1               3.5                1.4               0.2   \n",
      "1                  4.9               3.0                1.4               0.2   \n",
      "2                  4.7               3.2                1.3               0.2   \n",
      "3                  4.6               3.1                1.5               0.2   \n",
      "4                  5.0               3.6                1.4               0.2   \n",
      "..                 ...               ...                ...               ...   \n",
      "145                6.7               3.0                5.2               2.3   \n",
      "146                6.3               2.5                5.0               1.9   \n",
      "147                6.5               3.0                5.2               2.0   \n",
      "148                6.2               3.4                5.4               2.3   \n",
      "149                5.9               3.0                5.1               1.8   \n",
      "\n",
      "     target  \n",
      "0         0  \n",
      "1         0  \n",
      "2         0  \n",
      "3         0  \n",
      "4         0  \n",
      "..      ...  \n",
      "145       2  \n",
      "146       2  \n",
      "147       2  \n",
      "148       2  \n",
      "149       2  \n",
      "\n",
      "[150 rows x 5 columns]\n",
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 150 entries, 0 to 149\n",
      "Data columns (total 5 columns):\n",
      " #   Column             Non-Null Count  Dtype  \n",
      "---  ------             --------------  -----  \n",
      " 0   sepal length (cm)  150 non-null    float64\n",
      " 1   sepal width (cm)   150 non-null    float64\n",
      " 2   petal length (cm)  150 non-null    float64\n",
      " 3   petal width (cm)   150 non-null    float64\n",
      " 4   target             150 non-null    int32  \n",
      "dtypes: float64(4), int32(1)\n",
      "memory usage: 5.4 KB\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn import datasets\n",
    "from sklearn.preprocessing import scale\n",
    "iris=datasets.load_iris() #Fisher's famous dataset\n",
    "#iris is a sklearn \"bunch\" dataset - like a dictionary\n",
    "print(iris.DESCR)  #uncomment this to see the description of the database\n",
    "\n",
    "print(iris.keys())  #print the keys. No target classification \n",
    "#labels included here, we'll add the labels as a column soon\n",
    "#first convert the keys to a pandas data frame\n",
    "df = pd.DataFrame(iris.data, columns=iris.feature_names)\n",
    "#now add a target label column\n",
    "df['target'] = iris.target\n",
    "print(df)\n",
    "df.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice the data has 150 samples and all have data in them.  No need to fill with empty attribute values.  Good.\n",
    "All are numeric -  Scikit-Learn models do not accept categorical variables. If we ever get categorical variables we will need to transform these into numeric values.\n",
    "\n",
    "Now lets see if we can cluster these using k-means.\n",
    "First split the data into training and test data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.1, 3.5, 1.4, 0.2],\n",
       "       [4.9, 3. , 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.3, 0.2],\n",
       "       [4.6, 3.1, 1.5, 0.2],\n",
       "       [5. , 3.6, 1.4, 0.2],\n",
       "       [5.4, 3.9, 1.7, 0.4],\n",
       "       [4.6, 3.4, 1.4, 0.3],\n",
       "       [5. , 3.4, 1.5, 0.2],\n",
       "       [4.4, 2.9, 1.4, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.1],\n",
       "       [5.4, 3.7, 1.5, 0.2],\n",
       "       [4.8, 3.4, 1.6, 0.2],\n",
       "       [4.8, 3. , 1.4, 0.1],\n",
       "       [4.3, 3. , 1.1, 0.1],\n",
       "       [5.8, 4. , 1.2, 0.2],\n",
       "       [5.7, 4.4, 1.5, 0.4],\n",
       "       [5.4, 3.9, 1.3, 0.4],\n",
       "       [5.1, 3.5, 1.4, 0.3],\n",
       "       [5.7, 3.8, 1.7, 0.3],\n",
       "       [5.1, 3.8, 1.5, 0.3],\n",
       "       [5.4, 3.4, 1.7, 0.2],\n",
       "       [5.1, 3.7, 1.5, 0.4],\n",
       "       [4.6, 3.6, 1. , 0.2],\n",
       "       [5.1, 3.3, 1.7, 0.5],\n",
       "       [4.8, 3.4, 1.9, 0.2],\n",
       "       [5. , 3. , 1.6, 0.2],\n",
       "       [5. , 3.4, 1.6, 0.4],\n",
       "       [5.2, 3.5, 1.5, 0.2],\n",
       "       [5.2, 3.4, 1.4, 0.2],\n",
       "       [4.7, 3.2, 1.6, 0.2],\n",
       "       [4.8, 3.1, 1.6, 0.2],\n",
       "       [5.4, 3.4, 1.5, 0.4],\n",
       "       [5.2, 4.1, 1.5, 0.1],\n",
       "       [5.5, 4.2, 1.4, 0.2],\n",
       "       [4.9, 3.1, 1.5, 0.2],\n",
       "       [5. , 3.2, 1.2, 0.2],\n",
       "       [5.5, 3.5, 1.3, 0.2],\n",
       "       [4.9, 3.6, 1.4, 0.1],\n",
       "       [4.4, 3. , 1.3, 0.2],\n",
       "       [5.1, 3.4, 1.5, 0.2],\n",
       "       [5. , 3.5, 1.3, 0.3],\n",
       "       [4.5, 2.3, 1.3, 0.3],\n",
       "       [4.4, 3.2, 1.3, 0.2],\n",
       "       [5. , 3.5, 1.6, 0.6],\n",
       "       [5.1, 3.8, 1.9, 0.4],\n",
       "       [4.8, 3. , 1.4, 0.3],\n",
       "       [5.1, 3.8, 1.6, 0.2],\n",
       "       [4.6, 3.2, 1.4, 0.2],\n",
       "       [5.3, 3.7, 1.5, 0.2],\n",
       "       [5. , 3.3, 1.4, 0.2],\n",
       "       [7. , 3.2, 4.7, 1.4],\n",
       "       [6.4, 3.2, 4.5, 1.5],\n",
       "       [6.9, 3.1, 4.9, 1.5],\n",
       "       [5.5, 2.3, 4. , 1.3],\n",
       "       [6.5, 2.8, 4.6, 1.5],\n",
       "       [5.7, 2.8, 4.5, 1.3],\n",
       "       [6.3, 3.3, 4.7, 1.6],\n",
       "       [4.9, 2.4, 3.3, 1. ],\n",
       "       [6.6, 2.9, 4.6, 1.3],\n",
       "       [5.2, 2.7, 3.9, 1.4],\n",
       "       [5. , 2. , 3.5, 1. ],\n",
       "       [5.9, 3. , 4.2, 1.5],\n",
       "       [6. , 2.2, 4. , 1. ],\n",
       "       [6.1, 2.9, 4.7, 1.4],\n",
       "       [5.6, 2.9, 3.6, 1.3],\n",
       "       [6.7, 3.1, 4.4, 1.4],\n",
       "       [5.6, 3. , 4.5, 1.5],\n",
       "       [5.8, 2.7, 4.1, 1. ],\n",
       "       [6.2, 2.2, 4.5, 1.5],\n",
       "       [5.6, 2.5, 3.9, 1.1],\n",
       "       [5.9, 3.2, 4.8, 1.8],\n",
       "       [6.1, 2.8, 4. , 1.3],\n",
       "       [6.3, 2.5, 4.9, 1.5],\n",
       "       [6.1, 2.8, 4.7, 1.2],\n",
       "       [6.4, 2.9, 4.3, 1.3],\n",
       "       [6.6, 3. , 4.4, 1.4],\n",
       "       [6.8, 2.8, 4.8, 1.4],\n",
       "       [6.7, 3. , 5. , 1.7],\n",
       "       [6. , 2.9, 4.5, 1.5],\n",
       "       [5.7, 2.6, 3.5, 1. ],\n",
       "       [5.5, 2.4, 3.8, 1.1],\n",
       "       [5.5, 2.4, 3.7, 1. ],\n",
       "       [5.8, 2.7, 3.9, 1.2],\n",
       "       [6. , 2.7, 5.1, 1.6],\n",
       "       [5.4, 3. , 4.5, 1.5],\n",
       "       [6. , 3.4, 4.5, 1.6],\n",
       "       [6.7, 3.1, 4.7, 1.5],\n",
       "       [6.3, 2.3, 4.4, 1.3],\n",
       "       [5.6, 3. , 4.1, 1.3],\n",
       "       [5.5, 2.5, 4. , 1.3],\n",
       "       [5.5, 2.6, 4.4, 1.2],\n",
       "       [6.1, 3. , 4.6, 1.4],\n",
       "       [5.8, 2.6, 4. , 1.2],\n",
       "       [5. , 2.3, 3.3, 1. ],\n",
       "       [5.6, 2.7, 4.2, 1.3],\n",
       "       [5.7, 3. , 4.2, 1.2],\n",
       "       [5.7, 2.9, 4.2, 1.3],\n",
       "       [6.2, 2.9, 4.3, 1.3],\n",
       "       [5.1, 2.5, 3. , 1.1],\n",
       "       [5.7, 2.8, 4.1, 1.3],\n",
       "       [6.3, 3.3, 6. , 2.5],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [7.1, 3. , 5.9, 2.1],\n",
       "       [6.3, 2.9, 5.6, 1.8],\n",
       "       [6.5, 3. , 5.8, 2.2],\n",
       "       [7.6, 3. , 6.6, 2.1],\n",
       "       [4.9, 2.5, 4.5, 1.7],\n",
       "       [7.3, 2.9, 6.3, 1.8],\n",
       "       [6.7, 2.5, 5.8, 1.8],\n",
       "       [7.2, 3.6, 6.1, 2.5],\n",
       "       [6.5, 3.2, 5.1, 2. ],\n",
       "       [6.4, 2.7, 5.3, 1.9],\n",
       "       [6.8, 3. , 5.5, 2.1],\n",
       "       [5.7, 2.5, 5. , 2. ],\n",
       "       [5.8, 2.8, 5.1, 2.4],\n",
       "       [6.4, 3.2, 5.3, 2.3],\n",
       "       [6.5, 3. , 5.5, 1.8],\n",
       "       [7.7, 3.8, 6.7, 2.2],\n",
       "       [7.7, 2.6, 6.9, 2.3],\n",
       "       [6. , 2.2, 5. , 1.5],\n",
       "       [6.9, 3.2, 5.7, 2.3],\n",
       "       [5.6, 2.8, 4.9, 2. ],\n",
       "       [7.7, 2.8, 6.7, 2. ],\n",
       "       [6.3, 2.7, 4.9, 1.8],\n",
       "       [6.7, 3.3, 5.7, 2.1],\n",
       "       [7.2, 3.2, 6. , 1.8],\n",
       "       [6.2, 2.8, 4.8, 1.8],\n",
       "       [6.1, 3. , 4.9, 1.8],\n",
       "       [6.4, 2.8, 5.6, 2.1],\n",
       "       [7.2, 3. , 5.8, 1.6],\n",
       "       [7.4, 2.8, 6.1, 1.9],\n",
       "       [7.9, 3.8, 6.4, 2. ],\n",
       "       [6.4, 2.8, 5.6, 2.2],\n",
       "       [6.3, 2.8, 5.1, 1.5],\n",
       "       [6.1, 2.6, 5.6, 1.4],\n",
       "       [7.7, 3. , 6.1, 2.3],\n",
       "       [6.3, 3.4, 5.6, 2.4],\n",
       "       [6.4, 3.1, 5.5, 1.8],\n",
       "       [6. , 3. , 4.8, 1.8],\n",
       "       [6.9, 3.1, 5.4, 2.1],\n",
       "       [6.7, 3.1, 5.6, 2.4],\n",
       "       [6.9, 3.1, 5.1, 2.3],\n",
       "       [5.8, 2.7, 5.1, 1.9],\n",
       "       [6.8, 3.2, 5.9, 2.3],\n",
       "       [6.7, 3.3, 5.7, 2.5],\n",
       "       [6.7, 3. , 5.2, 2.3],\n",
       "       [6.3, 2.5, 5. , 1.9],\n",
       "       [6.5, 3. , 5.2, 2. ],\n",
       "       [6.2, 3.4, 5.4, 2.3],\n",
       "       [5.9, 3. , 5.1, 1.8]])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Store the feature data\n",
    "X = iris.data\n",
    "# store the target data\n",
    "y = iris.target\n",
    "# split the data using Scikit-Learn's train_test_split\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y)\n",
    "X[:]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Initialization complete\n",
      "Iteration 0, inertia 77.29000000000003\n",
      "Iteration 1, inertia 44.07713114094279\n",
      "Iteration 2, inertia 43.0457557904217\n",
      "Iteration 3, inertia 42.36210260582518\n",
      "Iteration 4, inertia 41.89654537129537\n",
      "Converged at iteration 4: center shift 0.0 within tolerance 0.00011467370854591837\n",
      "Initialization complete\n",
      "Iteration 0, inertia 77.49999999999997\n",
      "Iteration 1, inertia 48.204565585798846\n",
      "Iteration 2, inertia 45.503409983751794\n",
      "Iteration 3, inertia 43.71318267911788\n",
      "Iteration 4, inertia 43.5351827260459\n",
      "Converged at iteration 4: center shift 0.0 within tolerance 0.00011467370854591837\n",
      "Initialization complete\n",
      "Iteration 0, inertia 64.43000000000002\n",
      "Iteration 1, inertia 42.26275873735283\n",
      "Iteration 2, inertia 42.03176901529842\n",
      "Converged at iteration 2: center shift 0.0 within tolerance 0.00011467370854591837\n",
      "Initialization complete\n",
      "Iteration 0, inertia 58.57999999999999\n",
      "Iteration 1, inertia 42.296718093531794\n",
      "Iteration 2, inertia 42.08967632367631\n",
      "Converged at iteration 2: center shift 0.0 within tolerance 0.00011467370854591837\n",
      "Initialization complete\n",
      "Iteration 0, inertia 55.71999999999999\n",
      "Iteration 1, inertia 42.38718468387925\n",
      "Iteration 2, inertia 41.89654537129537\n",
      "Converged at iteration 2: center shift 0.0 within tolerance 0.00011467370854591837\n",
      "Initialization complete\n",
      "Iteration 0, inertia 51.04000000000003\n",
      "Iteration 1, inertia 42.223912003490895\n",
      "Iteration 2, inertia 42.11774275421547\n",
      "Iteration 3, inertia 42.06792154082477\n",
      "Converged at iteration 3: center shift 0.0 within tolerance 0.00011467370854591837\n",
      "Initialization complete\n",
      "Iteration 0, inertia 67.99999999999999\n",
      "Iteration 1, inertia 44.81063139167457\n",
      "Iteration 2, inertia 43.06293994904667\n",
      "Iteration 3, inertia 42.30939277382451\n",
      "Iteration 4, inertia 42.032529137529146\n",
      "Converged at iteration 4: center shift 0.0 within tolerance 0.00011467370854591837\n",
      "Initialization complete\n",
      "Iteration 0, inertia 65.17\n",
      "Iteration 1, inertia 42.61883946365644\n",
      "Iteration 2, inertia 42.19800618624208\n",
      "Iteration 3, inertia 42.032529137529146\n",
      "Converged at iteration 3: center shift 0.0 within tolerance 0.00011467370854591837\n",
      "Initialization complete\n",
      "Iteration 0, inertia 62.72999999999998\n",
      "Iteration 1, inertia 43.62814483618235\n",
      "Iteration 2, inertia 43.5351827260459\n",
      "Converged at iteration 2: center shift 0.0 within tolerance 0.00011467370854591837\n",
      "Initialization complete\n",
      "Iteration 0, inertia 59.64000000000002\n",
      "Iteration 1, inertia 47.15669837168892\n",
      "Iteration 2, inertia 42.33161518954765\n",
      "Iteration 3, inertia 42.08967632367631\n",
      "Converged at iteration 3: center shift 0.0 within tolerance 0.00011467370854591837\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([1, 1, 2, 0, 3, 0, 1, 1, 3, 1, 1, 2, 3, 0, 1, 1, 3, 2, 2, 2, 1, 1,\n",
       "       2, 1, 0, 3, 0, 2, 1, 2, 0, 3, 1, 1, 3, 2, 2, 2])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.cluster import KMeans\n",
    "clustering=KMeans(n_clusters=4,n_init=10, random_state=42,verbose=1)\n",
    "\n",
    "y_pred=clustering.fit(X_train)\n",
    "clustering.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "KMeans(n_clusters=4, random_state=42, verbose=1)\n",
      "[[5.46363636 2.6        3.92727273 1.22727273]\n",
      " [6.26571429 2.84571429 4.94285714 1.76857143]\n",
      " [5.02307692 3.43589744 1.45384615 0.24102564]\n",
      " [7.10625    3.13125    6.0125     2.15      ]]\n",
      "[2 1 2 0 2 2 2 1 2 1 2 1 1 3 0 1 1 1 3 2 0 3 2 1 2 1 1 1 2 2 3 2 1 2 2 0 1\n",
      " 2 2 1 3 2 2 2 1 2 2 2 0 3 1 0 1 2 1 3 0 3 3 1 0 1 0 0 0 1 0 1 3 2 0 0 3 1\n",
      " 2 2 0 2 3 2 3 1 1 2 1 1 3 0 0 0 2 0 2 1 1 3 2 1 0 1 0 1 2 2 1 2 2 2 2 3 1\n",
      " 0]\n",
      "KMeans(n_clusters=4, random_state=42, verbose=1)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "numpy.ndarray"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(y_pred)\n",
    "# Get the cluster centroids\n",
    "print(y_pred.cluster_centers_)\n",
    "   \n",
    "# Get the cluster labels\n",
    "print(y_pred.labels_)\n",
    "print(y_pred)\n",
    "type(y_pred.labels_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, '3 clusters')"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "#plt.subplot(221)\n",
    "plt.scatter(X_train[:, 0], X_train[:, 2], c=y_pred.labels_)\n",
    "plt.title(\"3 clusters\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
