{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "ae82c606",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Import dependencies and packages neededfrom sklearn import datasets\n",
    "\n",
    "import joblib\n",
    "from sklearn.neural_network import MLPClassifier, MLPRegressor\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn import metrics\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sn\n",
    "import matplotlib.pyplot as plt\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore', category = FutureWarning)\n",
    "warnings.filterwarnings('ignore', category = DeprecationWarning)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "9d5432cd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'activation': 'relu', 'alpha': 0.0001, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (100,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_fun': 15000, 'max_iter': 200, 'momentum': 0.9, 'n_iter_no_change': 10, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': None, 'shuffle': True, 'solver': 'adam', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}\n",
      "\n",
      "{'activation': 'relu', 'alpha': 0.0001, 'batch_size': 'auto', 'beta_1': 0.9, 'beta_2': 0.999, 'early_stopping': False, 'epsilon': 1e-08, 'hidden_layer_sizes': (100,), 'learning_rate': 'constant', 'learning_rate_init': 0.001, 'max_fun': 15000, 'max_iter': 200, 'momentum': 0.9, 'n_iter_no_change': 10, 'nesterovs_momentum': True, 'power_t': 0.5, 'random_state': None, 'shuffle': True, 'solver': 'adam', 'tol': 0.0001, 'validation_fraction': 0.1, 'verbose': False, 'warm_start': False}\n"
     ]
    }
   ],
   "source": [
    "# this step is just to demonstrate the adjustable parameters within the algorithm and not a necessary step\n",
    "print(MLPClassifier().get_params())\n",
    "print()\n",
    "print(MLPRegressor().get_params())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "6a6fb38c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PatientId</th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>6</td>\n",
       "      <td>148</td>\n",
       "      <td>72</td>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "      <td>33.6</td>\n",
       "      <td>0.627</td>\n",
       "      <td>50</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>85</td>\n",
       "      <td>66</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>26.6</td>\n",
       "      <td>0.351</td>\n",
       "      <td>31</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>8</td>\n",
       "      <td>183</td>\n",
       "      <td>64</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>23.3</td>\n",
       "      <td>0.672</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>66</td>\n",
       "      <td>23</td>\n",
       "      <td>94</td>\n",
       "      <td>28.1</td>\n",
       "      <td>0.167</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>137</td>\n",
       "      <td>40</td>\n",
       "      <td>35</td>\n",
       "      <td>168</td>\n",
       "      <td>43.1</td>\n",
       "      <td>2.288</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PatientId  Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin  \\\n",
       "0          1            6      148             72             35        0   \n",
       "1          2            1       85             66             29        0   \n",
       "2          3            8      183             64              0        0   \n",
       "3          4            1       89             66             23       94   \n",
       "4          5            0      137             40             35      168   \n",
       "\n",
       "    BMI  DiabetesPedigreeFunction  Age  Outcome  \n",
       "0  33.6                     0.627   50        1  \n",
       "1  26.6                     0.351   31        0  \n",
       "2  23.3                     0.672   32        1  \n",
       "3  28.1                     0.167   21        0  \n",
       "4  43.1                     2.288   33        1  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# import the dataset (stored in a variable)\n",
    "diabetes = pd.read_csv(\"diabetes.csv\")\n",
    "# Inspect the data(first five rows, or this can be changed by including how many rows within the brackets)\n",
    "diabetes.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "01ebfb9c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 614 entries, 60 to 102\n",
      "Data columns (total 10 columns):\n",
      " #   Column                    Non-Null Count  Dtype  \n",
      "---  ------                    --------------  -----  \n",
      " 0   PatientId                 614 non-null    int64  \n",
      " 1   Pregnancies               614 non-null    int64  \n",
      " 2   Glucose                   614 non-null    int64  \n",
      " 3   BloodPressure             614 non-null    int64  \n",
      " 4   SkinThickness             614 non-null    int64  \n",
      " 5   Insulin                   614 non-null    int64  \n",
      " 6   BMI                       614 non-null    float64\n",
      " 7   DiabetesPedigreeFunction  614 non-null    float64\n",
      " 8   Age                       614 non-null    int64  \n",
      " 9   Outcome                   614 non-null    int64  \n",
      "dtypes: float64(2), int64(8)\n",
      "memory usage: 52.8 KB\n"
     ]
    }
   ],
   "source": [
    "# split the data into train and test using the SciKitLearn package\n",
    "from sklearn.model_selection import train_test_split\n",
    "train,test=train_test_split(diabetes,test_size=0.2,random_state=42)\n",
    "# view the information\n",
    "train.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "6fa51623",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 154 entries, 668 to 462\n",
      "Data columns (total 8 columns):\n",
      " #   Column                    Non-Null Count  Dtype  \n",
      "---  ------                    --------------  -----  \n",
      " 0   Pregnancies               154 non-null    int64  \n",
      " 1   Glucose                   154 non-null    int64  \n",
      " 2   BloodPressure             154 non-null    int64  \n",
      " 3   SkinThickness             154 non-null    int64  \n",
      " 4   Insulin                   154 non-null    int64  \n",
      " 5   BMI                       154 non-null    float64\n",
      " 6   DiabetesPedigreeFunction  154 non-null    float64\n",
      " 7   Age                       154 non-null    int64  \n",
      "dtypes: float64(2), int64(6)\n",
      "memory usage: 10.8 KB\n"
     ]
    }
   ],
   "source": [
    "# Ensure only labels are saved in y variables\n",
    "y_train=train['Outcome']\n",
    "y_test=test['Outcome']\n",
    "#drop the unwanted / irrelevant columns, features are stored in X variables\n",
    "X_train=train.drop(['PatientId','Outcome'],axis=1)\n",
    "X_test=test.drop(['PatientId','Outcome'],axis=1)\n",
    "# view the information\n",
    "X_test.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "5303cb33",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MLPClassifier()"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Create a model for Support Vector (Machine) Classifier using default parameters\n",
    "mlp = MLPClassifier()\n",
    "# fit the data to the model, both features and labels to train it\n",
    "mlp.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "ac8118a8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],\n",
       "      dtype=int64)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# use the model to classify the datapoints within the test set\n",
    "y_pred2=mlp.predict(X_test)\n",
    "# print predicted classifications\n",
    "y_pred2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "5e3c86af",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "     Actual  Predicted\n",
      "668       0          0\n",
      "324       0          0\n",
      "624       0          0\n",
      "690       0          0\n",
      "473       0          0\n",
      "..      ...        ...\n",
      "355       1          1\n",
      "534       0          0\n",
      "344       0          0\n",
      "296       1          0\n",
      "462       0          0\n",
      "\n",
      "[154 rows x 2 columns]\n"
     ]
    }
   ],
   "source": [
    "# use Pandas to create a dataframe to view the ground truth and classifications side by side\n",
    "data = {'Actual': y_test,\n",
    "        'Predicted': y_pred2}\n",
    "df = pd.DataFrame(data)\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "c2d56594",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0      0.660     0.960     0.782        99\n",
      "           1      0.600     0.109     0.185        55\n",
      "\n",
      "    accuracy                          0.656       154\n",
      "   macro avg      0.630     0.534     0.483       154\n",
      "weighted avg      0.638     0.656     0.569       154\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Use Seaborn to create a confusion matrix heatmap and MatPlotLib to display\n",
    "confusion_matrix = pd.crosstab(df['Actual'], df['Predicted'], rownames=['Actual'], colnames=['Predicted'])\n",
    "sn.heatmap(confusion_matrix, annot=True)\n",
    "plt.show()\n",
    "print(metrics.classification_report(y_test, y_pred2, digits=3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "799e3236",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create a function to show the results of the classifier under different parameter values\n",
    "def print_results(results):\n",
    "    print('Best Parameters: {}\\n'.format(results.best_params_))\n",
    "    \n",
    "    means = results.cv_results_['mean_test_score']\n",
    "    stds = results.cv_results_['std_test_score']\n",
    "    for mean, std, params in zip(means, stds, results.cv_results_['params']):\n",
    "        print('{} (+/-{}) for {}'.format(round(mean, 3), round(std * 2, 3), params))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "b7fc0497",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_validation.py:372: FitFailedWarning: \n",
      "45 fits failed out of a total of 180.\n",
      "The score on these train-test partitions for these parameters will be set to nan.\n",
      "If these failures are not expected, you can try to debug them by setting error_score='raise'.\n",
      "\n",
      "Below are more details about the failures:\n",
      "--------------------------------------------------------------------------------\n",
      "45 fits failed with the following error:\n",
      "Traceback (most recent call last):\n",
      "  File \"C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_validation.py\", line 680, in _fit_and_score\n",
      "    estimator.fit(X_train, y_train, **fit_params)\n",
      "  File \"C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py\", line 752, in fit\n",
      "    return self._fit(X, y, incremental=False)\n",
      "  File \"C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py\", line 384, in _fit\n",
      "    self._validate_hyperparameters()\n",
      "  File \"C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py\", line 493, in _validate_hyperparameters\n",
      "    raise ValueError(\n",
      "ValueError: The activation 'sigmoid' is not supported. Supported activations are ['identity', 'logistic', 'relu', 'softmax', 'tanh'].\n",
      "\n",
      "  warnings.warn(some_fits_failed_message, FitFailedWarning)\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_search.py:969: UserWarning: One or more of the test scores are non-finite: [0.65641743 0.65807011 0.66453419 0.70525123 0.6970945  0.68087432\n",
      " 0.67429028 0.7100893  0.70687725 0.64984673 0.67277089 0.65635079\n",
      " 0.70194589 0.69222977 0.7019992  0.71179528 0.70855658 0.69874717\n",
      " 0.67261096 0.65636412 0.65960283 0.71506064 0.71989871 0.71507397\n",
      " 0.74434226 0.73618553 0.74270292        nan        nan        nan\n",
      "        nan        nan        nan        nan        nan        nan]\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, estimator=MLPClassifier(),\n",
       "             param_grid={'activation': ['relu', 'tanh', 'logistic', 'sigmoid'],\n",
       "                         'hidden_layer_sizes': [(10,), (50,), (100,)],\n",
       "                         'learning_rate': ['constant', 'adaptive',\n",
       "                                           'invscaling']})"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mlp_clf = MLPClassifier()\n",
    "parameters = {\n",
    "    'hidden_layer_sizes': [(10,), (50,), (100,)],\n",
    "    'activation': ['relu', 'tanh', 'logistic', 'sigmoid'],\n",
    "    'learning_rate': ['constant', 'adaptive', 'invscaling'],\n",
    "}\n",
    "\n",
    "cv = GridSearchCV(mlp_clf, parameters, cv = 5)\n",
    "cv.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "ecdc0f65",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best Parameters: {'activation': 'logistic', 'hidden_layer_sizes': (100,), 'learning_rate': 'constant'}\n",
      "\n",
      "0.656 (+/-0.075) for {'activation': 'relu', 'hidden_layer_sizes': (10,), 'learning_rate': 'constant'}\n",
      "0.658 (+/-0.1) for {'activation': 'relu', 'hidden_layer_sizes': (10,), 'learning_rate': 'adaptive'}\n",
      "0.665 (+/-0.078) for {'activation': 'relu', 'hidden_layer_sizes': (10,), 'learning_rate': 'invscaling'}\n",
      "0.705 (+/-0.057) for {'activation': 'relu', 'hidden_layer_sizes': (50,), 'learning_rate': 'constant'}\n",
      "0.697 (+/-0.076) for {'activation': 'relu', 'hidden_layer_sizes': (50,), 'learning_rate': 'adaptive'}\n",
      "0.681 (+/-0.066) for {'activation': 'relu', 'hidden_layer_sizes': (50,), 'learning_rate': 'invscaling'}\n",
      "0.674 (+/-0.026) for {'activation': 'relu', 'hidden_layer_sizes': (100,), 'learning_rate': 'constant'}\n",
      "0.71 (+/-0.017) for {'activation': 'relu', 'hidden_layer_sizes': (100,), 'learning_rate': 'adaptive'}\n",
      "0.707 (+/-0.063) for {'activation': 'relu', 'hidden_layer_sizes': (100,), 'learning_rate': 'invscaling'}\n",
      "0.65 (+/-0.042) for {'activation': 'tanh', 'hidden_layer_sizes': (10,), 'learning_rate': 'constant'}\n",
      "0.673 (+/-0.106) for {'activation': 'tanh', 'hidden_layer_sizes': (10,), 'learning_rate': 'adaptive'}\n",
      "0.656 (+/-0.083) for {'activation': 'tanh', 'hidden_layer_sizes': (10,), 'learning_rate': 'invscaling'}\n",
      "0.702 (+/-0.049) for {'activation': 'tanh', 'hidden_layer_sizes': (50,), 'learning_rate': 'constant'}\n",
      "0.692 (+/-0.061) for {'activation': 'tanh', 'hidden_layer_sizes': (50,), 'learning_rate': 'adaptive'}\n",
      "0.702 (+/-0.066) for {'activation': 'tanh', 'hidden_layer_sizes': (50,), 'learning_rate': 'invscaling'}\n",
      "0.712 (+/-0.077) for {'activation': 'tanh', 'hidden_layer_sizes': (100,), 'learning_rate': 'constant'}\n",
      "0.709 (+/-0.069) for {'activation': 'tanh', 'hidden_layer_sizes': (100,), 'learning_rate': 'adaptive'}\n",
      "0.699 (+/-0.055) for {'activation': 'tanh', 'hidden_layer_sizes': (100,), 'learning_rate': 'invscaling'}\n",
      "0.673 (+/-0.037) for {'activation': 'logistic', 'hidden_layer_sizes': (10,), 'learning_rate': 'constant'}\n",
      "0.656 (+/-0.01) for {'activation': 'logistic', 'hidden_layer_sizes': (10,), 'learning_rate': 'adaptive'}\n",
      "0.66 (+/-0.026) for {'activation': 'logistic', 'hidden_layer_sizes': (10,), 'learning_rate': 'invscaling'}\n",
      "0.715 (+/-0.072) for {'activation': 'logistic', 'hidden_layer_sizes': (50,), 'learning_rate': 'constant'}\n",
      "0.72 (+/-0.041) for {'activation': 'logistic', 'hidden_layer_sizes': (50,), 'learning_rate': 'adaptive'}\n",
      "0.715 (+/-0.066) for {'activation': 'logistic', 'hidden_layer_sizes': (50,), 'learning_rate': 'invscaling'}\n",
      "0.744 (+/-0.073) for {'activation': 'logistic', 'hidden_layer_sizes': (100,), 'learning_rate': 'constant'}\n",
      "0.736 (+/-0.054) for {'activation': 'logistic', 'hidden_layer_sizes': (100,), 'learning_rate': 'adaptive'}\n",
      "0.743 (+/-0.04) for {'activation': 'logistic', 'hidden_layer_sizes': (100,), 'learning_rate': 'invscaling'}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (10,), 'learning_rate': 'constant'}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (10,), 'learning_rate': 'adaptive'}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (10,), 'learning_rate': 'invscaling'}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (50,), 'learning_rate': 'constant'}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (50,), 'learning_rate': 'adaptive'}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (50,), 'learning_rate': 'invscaling'}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (100,), 'learning_rate': 'constant'}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (100,), 'learning_rate': 'adaptive'}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (100,), 'learning_rate': 'invscaling'}\n"
     ]
    }
   ],
   "source": [
    "print_results(cv)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "9b0e76b6",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
      "  warnings.warn(\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_validation.py:372: FitFailedWarning: \n",
      "75 fits failed out of a total of 300.\n",
      "The score on these train-test partitions for these parameters will be set to nan.\n",
      "If these failures are not expected, you can try to debug them by setting error_score='raise'.\n",
      "\n",
      "Below are more details about the failures:\n",
      "--------------------------------------------------------------------------------\n",
      "75 fits failed with the following error:\n",
      "Traceback (most recent call last):\n",
      "  File \"C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_validation.py\", line 680, in _fit_and_score\n",
      "    estimator.fit(X_train, y_train, **fit_params)\n",
      "  File \"C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py\", line 752, in fit\n",
      "    return self._fit(X, y, incremental=False)\n",
      "  File \"C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py\", line 384, in _fit\n",
      "    self._validate_hyperparameters()\n",
      "  File \"C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py\", line 493, in _validate_hyperparameters\n",
      "    raise ValueError(\n",
      "ValueError: The activation 'sigmoid' is not supported. Supported activations are ['identity', 'logistic', 'relu', 'softmax', 'tanh'].\n",
      "\n",
      "  warnings.warn(some_fits_failed_message, FitFailedWarning)\n",
      "C:\\Users\\Mark Huntly\\anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_search.py:969: UserWarning: One or more of the test scores are non-finite: [0.66126883 0.67590297 0.65960283 0.65309876 0.65309876 0.66779955\n",
      " 0.60922298 0.67423697 0.65309876 0.59293616 0.70365187 0.66617353\n",
      " 0.67277089 0.65309876 0.65309876 0.65797681 0.67275756 0.65309876\n",
      " 0.59293616 0.53064108 0.70362522 0.68415301 0.63206717 0.64984673\n",
      " 0.57992803 0.70521125 0.70521125 0.62549647 0.52738904 0.59080368\n",
      " 0.67103825 0.67595628 0.6368386  0.65309876 0.59131014 0.7264161\n",
      " 0.72473677 0.64334266 0.59456218 0.46885246 0.73129415 0.71666\n",
      " 0.64822071 0.65147274 0.65309876        nan        nan        nan\n",
      "        nan        nan        nan        nan        nan        nan\n",
      "        nan        nan        nan        nan        nan        nan]\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, estimator=MLPClassifier(),\n",
       "             param_grid={'activation': ['relu', 'tanh', 'logistic', 'sigmoid'],\n",
       "                         'hidden_layer_sizes': [(10,), (50,), (100,)],\n",
       "                         'learning_rate_init': [0.001, 0.01, 0.1, 1, 10]})"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mlp_clf_const = MLPClassifier()\n",
    "parameters = {\n",
    "    'hidden_layer_sizes': [(10,), (50,), (100,)],\n",
    "    'activation': ['relu', 'tanh', 'logistic', 'sigmoid'],\n",
    "    'learning_rate_init': [0.001, 0.01, 0.1, 1, 10],\n",
    "}\n",
    "\n",
    "cv = GridSearchCV(mlp_clf, parameters, cv = 5)\n",
    "cv.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "aab80f4a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best Parameters: {'activation': 'logistic', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.001}\n",
      "\n",
      "0.661 (+/-0.065) for {'activation': 'relu', 'hidden_layer_sizes': (10,), 'learning_rate_init': 0.001}\n",
      "0.676 (+/-0.06) for {'activation': 'relu', 'hidden_layer_sizes': (10,), 'learning_rate_init': 0.01}\n",
      "0.66 (+/-0.028) for {'activation': 'relu', 'hidden_layer_sizes': (10,), 'learning_rate_init': 0.1}\n",
      "0.653 (+/-0.007) for {'activation': 'relu', 'hidden_layer_sizes': (10,), 'learning_rate_init': 1}\n",
      "0.653 (+/-0.007) for {'activation': 'relu', 'hidden_layer_sizes': (10,), 'learning_rate_init': 10}\n",
      "0.668 (+/-0.047) for {'activation': 'relu', 'hidden_layer_sizes': (50,), 'learning_rate_init': 0.001}\n",
      "0.609 (+/-0.131) for {'activation': 'relu', 'hidden_layer_sizes': (50,), 'learning_rate_init': 0.01}\n",
      "0.674 (+/-0.062) for {'activation': 'relu', 'hidden_layer_sizes': (50,), 'learning_rate_init': 0.1}\n",
      "0.653 (+/-0.007) for {'activation': 'relu', 'hidden_layer_sizes': (50,), 'learning_rate_init': 1}\n",
      "0.593 (+/-0.243) for {'activation': 'relu', 'hidden_layer_sizes': (50,), 'learning_rate_init': 10}\n",
      "0.704 (+/-0.064) for {'activation': 'relu', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.001}\n",
      "0.666 (+/-0.035) for {'activation': 'relu', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.01}\n",
      "0.673 (+/-0.082) for {'activation': 'relu', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.1}\n",
      "0.653 (+/-0.007) for {'activation': 'relu', 'hidden_layer_sizes': (100,), 'learning_rate_init': 1}\n",
      "0.653 (+/-0.007) for {'activation': 'relu', 'hidden_layer_sizes': (100,), 'learning_rate_init': 10}\n",
      "0.658 (+/-0.027) for {'activation': 'tanh', 'hidden_layer_sizes': (10,), 'learning_rate_init': 0.001}\n",
      "0.673 (+/-0.076) for {'activation': 'tanh', 'hidden_layer_sizes': (10,), 'learning_rate_init': 0.01}\n",
      "0.653 (+/-0.007) for {'activation': 'tanh', 'hidden_layer_sizes': (10,), 'learning_rate_init': 0.1}\n",
      "0.593 (+/-0.243) for {'activation': 'tanh', 'hidden_layer_sizes': (10,), 'learning_rate_init': 1}\n",
      "0.531 (+/-0.3) for {'activation': 'tanh', 'hidden_layer_sizes': (10,), 'learning_rate_init': 10}\n",
      "0.704 (+/-0.042) for {'activation': 'tanh', 'hidden_layer_sizes': (50,), 'learning_rate_init': 0.001}\n",
      "0.684 (+/-0.074) for {'activation': 'tanh', 'hidden_layer_sizes': (50,), 'learning_rate_init': 0.01}\n",
      "0.632 (+/-0.101) for {'activation': 'tanh', 'hidden_layer_sizes': (50,), 'learning_rate_init': 0.1}\n",
      "0.65 (+/-0.017) for {'activation': 'tanh', 'hidden_layer_sizes': (50,), 'learning_rate_init': 1}\n",
      "0.58 (+/-0.237) for {'activation': 'tanh', 'hidden_layer_sizes': (50,), 'learning_rate_init': 10}\n",
      "0.705 (+/-0.026) for {'activation': 'tanh', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.001}\n",
      "0.705 (+/-0.012) for {'activation': 'tanh', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.01}\n",
      "0.625 (+/-0.119) for {'activation': 'tanh', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.1}\n",
      "0.527 (+/-0.301) for {'activation': 'tanh', 'hidden_layer_sizes': (100,), 'learning_rate_init': 1}\n",
      "0.591 (+/-0.247) for {'activation': 'tanh', 'hidden_layer_sizes': (100,), 'learning_rate_init': 10}\n",
      "0.671 (+/-0.054) for {'activation': 'logistic', 'hidden_layer_sizes': (10,), 'learning_rate_init': 0.001}\n",
      "0.676 (+/-0.065) for {'activation': 'logistic', 'hidden_layer_sizes': (10,), 'learning_rate_init': 0.01}\n",
      "0.637 (+/-0.038) for {'activation': 'logistic', 'hidden_layer_sizes': (10,), 'learning_rate_init': 0.1}\n",
      "0.653 (+/-0.007) for {'activation': 'logistic', 'hidden_layer_sizes': (10,), 'learning_rate_init': 1}\n",
      "0.591 (+/-0.242) for {'activation': 'logistic', 'hidden_layer_sizes': (10,), 'learning_rate_init': 10}\n",
      "0.726 (+/-0.051) for {'activation': 'logistic', 'hidden_layer_sizes': (50,), 'learning_rate_init': 0.001}\n",
      "0.725 (+/-0.032) for {'activation': 'logistic', 'hidden_layer_sizes': (50,), 'learning_rate_init': 0.01}\n",
      "0.643 (+/-0.017) for {'activation': 'logistic', 'hidden_layer_sizes': (50,), 'learning_rate_init': 0.1}\n",
      "0.595 (+/-0.245) for {'activation': 'logistic', 'hidden_layer_sizes': (50,), 'learning_rate_init': 1}\n",
      "0.469 (+/-0.297) for {'activation': 'logistic', 'hidden_layer_sizes': (50,), 'learning_rate_init': 10}\n",
      "0.731 (+/-0.059) for {'activation': 'logistic', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.001}\n",
      "0.717 (+/-0.052) for {'activation': 'logistic', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.01}\n",
      "0.648 (+/-0.023) for {'activation': 'logistic', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.1}\n",
      "0.651 (+/-0.011) for {'activation': 'logistic', 'hidden_layer_sizes': (100,), 'learning_rate_init': 1}\n",
      "0.653 (+/-0.007) for {'activation': 'logistic', 'hidden_layer_sizes': (100,), 'learning_rate_init': 10}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (10,), 'learning_rate_init': 0.001}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (10,), 'learning_rate_init': 0.01}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (10,), 'learning_rate_init': 0.1}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (10,), 'learning_rate_init': 1}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (10,), 'learning_rate_init': 10}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (50,), 'learning_rate_init': 0.001}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (50,), 'learning_rate_init': 0.01}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (50,), 'learning_rate_init': 0.1}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (50,), 'learning_rate_init': 1}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (50,), 'learning_rate_init': 10}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.001}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.01}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (100,), 'learning_rate_init': 0.1}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (100,), 'learning_rate_init': 1}\n",
      "nan (+/-nan) for {'activation': 'sigmoid', 'hidden_layer_sizes': (100,), 'learning_rate_init': 10}\n"
     ]
    }
   ],
   "source": [
    "print_results(cv)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ac795dab",
   "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.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
