diff --git a/03_overfitting_and_cross_validation.ipynb b/03_overfitting_and_cross_validation.ipynb
index 26e78cb63f281545fe95fb18b07bee67447069dc..48d8e6cc3668be0b4410852ad10969eac49e0dd9 100644
--- a/03_overfitting_and_cross_validation.ipynb
+++ b/03_overfitting_and_cross_validation.ipynb
@@ -3,7 +3,15 @@
   {
    "cell_type": "code",
    "execution_count": 1,
-   "metadata": {},
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:02.046041Z",
+     "iopub.status.busy": "2021-03-02T13:54:02.045749Z",
+     "iopub.status.idle": "2021-03-02T13:54:02.426924Z",
+     "shell.execute_reply": "2021-03-02T13:54:02.426218Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:02.045967Z"
+    }
+   },
    "outputs": [
     {
      "data": {
@@ -103,15 +111,15 @@
        "    div#maintoolbar {display: none !important;}\n",
        "    /*\n",
        "\n",
-       "    div#site { \n",
-       "        border-top: 20px solid #1F407A; \n",
-       "        border-right: 20px solid #1F407A; \n",
+       "    div#site {\n",
+       "        border-top: 20px solid #1F407A;\n",
+       "        border-right: 20px solid #1F407A;\n",
        "        margin-bottom: 0;\n",
        "        padding-bottom: 0;\n",
        "    }\n",
-       "    div#toc-wrapper { \n",
-       "        border-left: 20px solid #1F407A; \n",
-       "        border-top: 20px solid #1F407A; \n",
+       "    div#toc-wrapper {\n",
+       "        border-left: 20px solid #1F407A;\n",
+       "        border-top: 20px solid #1F407A;\n",
        "\n",
        "    }\n",
        "\n",
@@ -184,6 +192,13 @@
    "cell_type": "code",
    "execution_count": 2,
    "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:02.429163Z",
+     "iopub.status.busy": "2021-03-02T13:54:02.428969Z",
+     "iopub.status.idle": "2021-03-02T13:54:03.335884Z",
+     "shell.execute_reply": "2021-03-02T13:54:03.335258Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:02.429141Z"
+    },
     "scrolled": true
    },
    "outputs": [
@@ -238,7 +253,15 @@
   {
    "cell_type": "code",
    "execution_count": 3,
-   "metadata": {},
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:03.337455Z",
+     "iopub.status.busy": "2021-03-02T13:54:03.337185Z",
+     "iopub.status.idle": "2021-03-02T13:54:03.343547Z",
+     "shell.execute_reply": "2021-03-02T13:54:03.342934Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:03.337428Z"
+    }
+   },
    "outputs": [
     {
      "name": "stdout",
@@ -256,7 +279,15 @@
   {
    "cell_type": "code",
    "execution_count": 4,
-   "metadata": {},
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:03.344863Z",
+     "iopub.status.busy": "2021-03-02T13:54:03.344669Z",
+     "iopub.status.idle": "2021-03-02T13:54:03.351020Z",
+     "shell.execute_reply": "2021-03-02T13:54:03.350368Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:03.344839Z"
+    }
+   },
    "outputs": [
     {
      "name": "stdout",
@@ -313,7 +344,15 @@
   {
    "cell_type": "code",
    "execution_count": 5,
-   "metadata": {},
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:03.352411Z",
+     "iopub.status.busy": "2021-03-02T13:54:03.352086Z",
+     "iopub.status.idle": "2021-03-02T13:54:03.566878Z",
+     "shell.execute_reply": "2021-03-02T13:54:03.566233Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:03.352384Z"
+    }
+   },
    "outputs": [
     {
      "data": {
@@ -358,7 +397,15 @@
   {
    "cell_type": "code",
    "execution_count": 6,
-   "metadata": {},
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:03.568259Z",
+     "iopub.status.busy": "2021-03-02T13:54:03.567988Z",
+     "iopub.status.idle": "2021-03-02T13:54:03.577770Z",
+     "shell.execute_reply": "2021-03-02T13:54:03.576898Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:03.568234Z"
+    }
+   },
    "outputs": [],
    "source": [
     "# utility functions copy-pasted from previous script\n",
@@ -423,7 +470,15 @@
   {
    "cell_type": "code",
    "execution_count": 7,
-   "metadata": {},
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:03.582291Z",
+     "iopub.status.busy": "2021-03-02T13:54:03.582067Z",
+     "iopub.status.idle": "2021-03-02T13:54:08.423607Z",
+     "shell.execute_reply": "2021-03-02T13:54:08.423011Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:03.582265Z"
+    }
+   },
    "outputs": [
     {
      "name": "stdout",
@@ -497,7 +552,15 @@
   {
    "cell_type": "code",
    "execution_count": 8,
-   "metadata": {},
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:08.426238Z",
+     "iopub.status.busy": "2021-03-02T13:54:08.426064Z",
+     "iopub.status.idle": "2021-03-02T13:54:11.075424Z",
+     "shell.execute_reply": "2021-03-02T13:54:11.074635Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:08.426218Z"
+    }
+   },
    "outputs": [
     {
      "name": "stdout",
@@ -599,7 +662,15 @@
   {
    "cell_type": "code",
    "execution_count": 9,
-   "metadata": {},
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:11.076849Z",
+     "iopub.status.busy": "2021-03-02T13:54:11.076706Z",
+     "iopub.status.idle": "2021-03-02T13:54:12.601253Z",
+     "shell.execute_reply": "2021-03-02T13:54:12.600652Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:11.076832Z"
+    }
+   },
    "outputs": [
     {
      "name": "stdout",
@@ -762,7 +833,15 @@
   {
    "cell_type": "code",
    "execution_count": 10,
-   "metadata": {},
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:12.602726Z",
+     "iopub.status.busy": "2021-03-02T13:54:12.602322Z",
+     "iopub.status.idle": "2021-03-02T13:54:12.614241Z",
+     "shell.execute_reply": "2021-03-02T13:54:12.613699Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:12.602703Z"
+    }
+   },
    "outputs": [
     {
      "data": {
@@ -797,7 +876,15 @@
   {
    "cell_type": "code",
    "execution_count": 11,
-   "metadata": {},
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:12.615599Z",
+     "iopub.status.busy": "2021-03-02T13:54:12.615410Z",
+     "iopub.status.idle": "2021-03-02T13:54:12.667954Z",
+     "shell.execute_reply": "2021-03-02T13:54:12.667184Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:12.615576Z"
+    }
+   },
    "outputs": [
     {
      "name": "stdout",
@@ -851,6 +938,13 @@
    "cell_type": "code",
    "execution_count": 12,
    "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:12.669506Z",
+     "iopub.status.busy": "2021-03-02T13:54:12.669182Z",
+     "iopub.status.idle": "2021-03-02T13:54:12.673909Z",
+     "shell.execute_reply": "2021-03-02T13:54:12.673206Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:12.669478Z"
+    },
     "scrolled": true
    },
    "outputs": [
@@ -895,6 +989,13 @@
    "cell_type": "code",
    "execution_count": 13,
    "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:12.675079Z",
+     "iopub.status.busy": "2021-03-02T13:54:12.674814Z",
+     "iopub.status.idle": "2021-03-02T13:54:15.109545Z",
+     "shell.execute_reply": "2021-03-02T13:54:15.108639Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:12.675054Z"
+    },
     "tags": [
      "solution"
     ]
@@ -975,6 +1076,13 @@
    "cell_type": "code",
    "execution_count": 14,
    "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:15.111573Z",
+     "iopub.status.busy": "2021-03-02T13:54:15.111270Z",
+     "iopub.status.idle": "2021-03-02T13:54:15.130034Z",
+     "shell.execute_reply": "2021-03-02T13:54:15.129430Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:15.111546Z"
+    },
     "tags": [
      "solution"
     ]
@@ -1084,7 +1192,15 @@
   {
    "cell_type": "code",
    "execution_count": 15,
-   "metadata": {},
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:15.131263Z",
+     "iopub.status.busy": "2021-03-02T13:54:15.131002Z",
+     "iopub.status.idle": "2021-03-02T13:54:15.165660Z",
+     "shell.execute_reply": "2021-03-02T13:54:15.165057Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:15.131238Z"
+    }
+   },
    "outputs": [
     {
      "name": "stdout",
@@ -1216,13 +1332,21 @@
    "source": [
     "### Demonstration\n",
     "\n",
-    "We demonstrate what we explained before using the MNIST dataset."
+    "We demonstrate what we've explained before using the MNIST dataset."
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 54,
-   "metadata": {},
+   "execution_count": 16,
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:15.167008Z",
+     "iopub.status.busy": "2021-03-02T13:54:15.166723Z",
+     "iopub.status.idle": "2021-03-02T13:54:15.277083Z",
+     "shell.execute_reply": "2021-03-02T13:54:15.276490Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:15.166981Z"
+    }
+   },
    "outputs": [
     {
      "name": "stdout",
@@ -1255,29 +1379,45 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 55,
-   "metadata": {},
+   "execution_count": 17,
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:15.278713Z",
+     "iopub.status.busy": "2021-03-02T13:54:15.278418Z",
+     "iopub.status.idle": "2021-03-02T13:54:15.492609Z",
+     "shell.execute_reply": "2021-03-02T13:54:15.491985Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:15.278687Z"
+    }
+   },
    "outputs": [
     {
      "data": {
-      "image/png": "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cUqhjFMKZZxSKOOUQhmnFMo4pVDGKYUyTimUcUqhjFMKZZxSKOOUQhmnFMo4pVDGKYWKuVbK2NjYYGNt3rx5sLFg2OuXDGno13G+cc8phTJOKZRxSqGMUwplnFIo45RCGacUyjilUMYphTJOKZRxSqGMUwplnFIo45RCGacUyjilUMYphTJOKZRxSqGMUwplnFIo45RCGacUyjilUMYphTJOKdS8vBzDxMTEYGMdzob8mU1OTg42Vgr3nFIo45RCGacUyjilUMYphTJOKZRxSqGMUwplnFIo45RCGacUyjilUMYphTJOKZRxSqGMUwplnFIo45RCGacUyjilUMYphTJOKZRxSqGMUwplnFIo45RCxVyOYcj/bn/VqlWDjTW0IS+RMOTruHHjxsHGSuGeUwplnFIo45RCGacUyjilUMYphTJOKZRxSqGMUwplnFIo45RCGacUyjilUMYphTJOKZRxSqGMUwplnFIo45RCGacUyjilUMYphTJOKZRxSqGMUwplnFKoaq3t/saq3d94gC1btmyooXjggQcGGwtg3bp1g421Zs2awcYa8me2evXqwcYaWmutZlrunlMKZZxSKOOUQhmnFMo4pVDGKYUyTimUcUqhjFMKZZxSKOOUQhmnFMo4pVDGKYUyTimUcUqhjFMKZZxSKOOUQhmnFMo4pVDGKYUyTimUcUqhjFMKZZxSKOOUQsVcK2VIa9euHXS89evXDzbW5s2bBxtrfHx8sLEOZ14rRTrEGKcUyjilUMYphTJOKZRxSqGMUwplnFIo45RCGacUyjilUMYphTJOKZRxSqGMUwplnFIo45RCGacUyjilUMYphTJOKZRxSqGMUwplnFIo45RCGacUao+XY5A0d9xzSqGMUwplnFIo45RCGacUyjilUP8DHpy7RLLJO2wAAAAASUVORK5CYII=\n",
+      "image/png": "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\n",
       "text/plain": [
        "<Figure size 432x288 with 1 Axes>"
       ]
      },
      "metadata": {
+      "image/png": {
+       "height": 247,
+       "width": 231
+      },
       "needs_background": "light"
      },
      "output_type": "display_data"
     },
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "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\n",
       "text/plain": [
        "<Figure size 864x288 with 1 Axes>"
       ]
      },
      "metadata": {
+      "image/png": {
+       "height": 40,
+       "width": 683
+      },
       "needs_background": "light"
      },
      "output_type": "display_data"
@@ -1285,13 +1425,18 @@
    ],
    "source": [
     "import matplotlib.pyplot as plt\n",
-    "plt.imshow(digits.images[0], cmap=\"gray\", )\n",
-    "plt.axis('off')\n",
+    "\n",
+    "plt.imshow(\n",
+    "    digits.images[0],\n",
+    "    cmap=\"gray\",\n",
+    ")\n",
+    "plt.axis(\"off\")\n",
     "plt.title(f\"image for figure {labels[0]}\")\n",
+    "\n",
     "fig = plt.figure(figsize=(12, 4))\n",
     "ax = plt.imshow(features[0][None, :], cmap=\"gray\")\n",
     "plt.title(\"image flattened\")\n",
-    "plt.axis('off');"
+    "plt.axis(\"off\");"
    ]
   },
   {
@@ -1305,8 +1450,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 57,
-   "metadata": {},
+   "execution_count": 18,
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:15.494276Z",
+     "iopub.status.busy": "2021-03-02T13:54:15.494066Z",
+     "iopub.status.idle": "2021-03-02T13:54:15.579879Z",
+     "shell.execute_reply": "2021-03-02T13:54:15.579321Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:15.494249Z"
+    }
+   },
    "outputs": [
     {
      "name": "stdout",
@@ -1368,12 +1521,17 @@
     "    labels_validation,\n",
     ") = train_test_split(features, labels, test_size=0.2, stratify=labels, random_state=42)\n",
     "\n",
+    "\n",
     "def report(labels):\n",
     "    print(\"number of all samples:\", len(labels))\n",
     "    for number in range(10):\n",
-    "        print(f\"proportion of images for class {number}:\", round(sum(labels == number) / len(labels), 3))\n",
+    "        print(\n",
+    "            f\"proportion of images for class {number}:\",\n",
+    "            round(sum(labels == number) / len(labels), 3),\n",
+    "        )\n",
     "    print()\n",
     "\n",
+    "\n",
     "print(\"# Whole dataset \")\n",
     "report(labels)\n",
     "print(\"# Cross-validation dataset \")\n",
@@ -1401,14 +1559,23 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 56,
-   "metadata": {},
+   "execution_count": 19,
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:15.581114Z",
+     "iopub.status.busy": "2021-03-02T13:54:15.580880Z",
+     "iopub.status.idle": "2021-03-02T13:54:17.602810Z",
+     "shell.execute_reply": "2021-03-02T13:54:17.601849Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:15.581092Z"
+    },
+    "tags": []
+   },
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "score = 0.103 +/- 0.011, C = 1.0e+01,  gamma = 1.0e-01\n"
+      "score = 0.103 +/- 0.011, C = 1.0e+00,  gamma = 1.0e-01\n"
      ]
     }
    ],
@@ -1417,8 +1584,10 @@
     "\n",
     "cross_validator = StratifiedKFold(n_splits=10, shuffle=True, random_state=42)\n",
     "\n",
+    "C = 1\n",
+    "gamma = 0.1\n",
+    "classifier = SVC(C=C, gamma=gamma)\n",
     "\n",
-    "classifier = SVC(C=1, gamma=0.1)\n",
     "test_scores = cross_val_score(\n",
     "    classifier,\n",
     "    features_crosseval,\n",
@@ -1446,8 +1615,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 58,
-   "metadata": {},
+   "execution_count": 20,
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:17.605178Z",
+     "iopub.status.busy": "2021-03-02T13:54:17.604700Z",
+     "iopub.status.idle": "2021-03-02T13:54:34.060634Z",
+     "shell.execute_reply": "2021-03-02T13:54:34.059518Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:17.605104Z"
+    }
+   },
    "outputs": [
     {
      "name": "stdout",
@@ -1468,7 +1645,7 @@
       "score = 0.104 +/- 0.014, C = 1.0e+01,  gamma = 1.0e-01\n",
       "\n",
       "BEST RESULT CROSS VALIDATION\n",
-      "score = 0.991 +/- 0.007, C = 1.0e+00,  gamma = 0.0\n"
+      "score = 0.991 +/- 0.007, C = 1.0e+00,  gamma = 1.0e-03\n"
      ]
     }
    ],
@@ -1515,7 +1692,7 @@
     "print()\n",
     "print(\"BEST RESULT CROSS VALIDATION\")\n",
     "print(\n",
-    "    \"score = {:.3f} +/- {:.3f}, C = {:.1e},  gamma = {:.1f}\".format(\n",
+    "    \"score = {:.3f} +/- {:.3f}, C = {:.1e},  gamma = {:.1e}\".format(\n",
     "        best_score_mean, best_score_std, best_C, best_gamma\n",
     "    )\n",
     ")"
@@ -1530,8 +1707,16 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 60,
-   "metadata": {},
+   "execution_count": 21,
+   "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:34.062814Z",
+     "iopub.status.busy": "2021-03-02T13:54:34.062415Z",
+     "iopub.status.idle": "2021-03-02T13:54:34.175797Z",
+     "shell.execute_reply": "2021-03-02T13:54:34.175001Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:34.062792Z"
+    }
+   },
    "outputs": [
     {
      "name": "stdout",
@@ -1569,8 +1754,15 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 22,
    "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:54:34.177260Z",
+     "iopub.status.busy": "2021-03-02T13:54:34.176925Z",
+     "iopub.status.idle": "2021-03-02T13:56:11.509026Z",
+     "shell.execute_reply": "2021-03-02T13:56:11.508222Z",
+     "shell.execute_reply.started": "2021-03-02T13:54:34.177221Z"
+    },
     "tags": [
      "solution"
     ]
@@ -1584,77 +1776,77 @@
       "\n",
       "#### 5 folds\n",
       "OPTIMIZE HYPERPARAMETERS\n",
-      "score = 0.933 +/- 0.024, C =  10.0,  gamma = 0.75\n",
-      "score = 0.950 +/- 0.034, C =  10.0,  gamma = 1.00\n",
-      "score = 0.950 +/- 0.034, C =  10.0,  gamma = 1.25\n",
-      "score = 0.954 +/- 0.036, C =  30.0,  gamma = 0.75\n",
-      "score = 0.946 +/- 0.021, C =  30.0,  gamma = 1.00\n",
-      "score = 0.946 +/- 0.021, C =  30.0,  gamma = 1.25\n",
-      "score = 0.958 +/- 0.013, C =  50.0,  gamma = 0.75\n",
-      "score = 0.958 +/- 0.019, C =  50.0,  gamma = 1.00\n",
-      "score = 0.958 +/- 0.023, C =  50.0,  gamma = 1.25\n",
-      "score = 0.963 +/- 0.020, C =  70.0,  gamma = 0.75\n",
-      "score = 0.958 +/- 0.023, C =  70.0,  gamma = 1.00\n",
-      "score = 0.963 +/- 0.020, C =  70.0,  gamma = 1.25\n",
-      "score = 0.958 +/- 0.013, C =  90.0,  gamma = 0.75\n",
-      "score = 0.963 +/- 0.020, C =  90.0,  gamma = 1.00\n",
-      "score = 0.958 +/- 0.023, C =  90.0,  gamma = 1.25\n",
+      "score = 0.103 +/- 0.003, C =  10.0,  gamma = 0.75\n",
+      "score = 0.103 +/- 0.003, C =  10.0,  gamma = 1.00\n",
+      "score = 0.103 +/- 0.003, C =  10.0,  gamma = 1.25\n",
+      "score = 0.103 +/- 0.003, C =  30.0,  gamma = 0.75\n",
+      "score = 0.103 +/- 0.003, C =  30.0,  gamma = 1.00\n",
+      "score = 0.103 +/- 0.003, C =  30.0,  gamma = 1.25\n",
+      "score = 0.103 +/- 0.003, C =  50.0,  gamma = 0.75\n",
+      "score = 0.103 +/- 0.003, C =  50.0,  gamma = 1.00\n",
+      "score = 0.103 +/- 0.003, C =  50.0,  gamma = 1.25\n",
+      "score = 0.103 +/- 0.003, C =  70.0,  gamma = 0.75\n",
+      "score = 0.103 +/- 0.003, C =  70.0,  gamma = 1.00\n",
+      "score = 0.103 +/- 0.003, C =  70.0,  gamma = 1.25\n",
+      "score = 0.103 +/- 0.003, C =  90.0,  gamma = 0.75\n",
+      "score = 0.103 +/- 0.003, C =  90.0,  gamma = 1.00\n",
+      "score = 0.103 +/- 0.003, C =  90.0,  gamma = 1.25\n",
       "\n",
       "BEST RESULT CROSS VALIDATION\n",
-      "score = 0.963 +/- 0.020, C = 90.0,  gamma = 1.00\n",
+      "score = 0.103 +/- 0.003, C = 90.0,  gamma = 1.25\n",
       "\n",
       "VALIDATION\n",
-      "score = 0.933\n",
+      "score = 0.103\n",
       "\n",
       "\n",
       "#### 10 folds\n",
       "OPTIMIZE HYPERPARAMETERS\n",
-      "score = 0.958 +/- 0.032, C =  10.0,  gamma = 0.75\n",
-      "score = 0.950 +/- 0.036, C =  10.0,  gamma = 1.00\n",
-      "score = 0.950 +/- 0.036, C =  10.0,  gamma = 1.25\n",
-      "score = 0.958 +/- 0.026, C =  30.0,  gamma = 0.75\n",
-      "score = 0.967 +/- 0.025, C =  30.0,  gamma = 1.00\n",
-      "score = 0.967 +/- 0.025, C =  30.0,  gamma = 1.25\n",
-      "score = 0.967 +/- 0.025, C =  50.0,  gamma = 0.75\n",
-      "score = 0.967 +/- 0.025, C =  50.0,  gamma = 1.00\n",
-      "score = 0.958 +/- 0.026, C =  50.0,  gamma = 1.25\n",
-      "score = 0.963 +/- 0.022, C =  70.0,  gamma = 0.75\n",
-      "score = 0.967 +/- 0.025, C =  70.0,  gamma = 1.00\n",
-      "score = 0.954 +/- 0.029, C =  70.0,  gamma = 1.25\n",
-      "score = 0.963 +/- 0.022, C =  90.0,  gamma = 0.75\n",
-      "score = 0.963 +/- 0.029, C =  90.0,  gamma = 1.00\n",
-      "score = 0.946 +/- 0.033, C =  90.0,  gamma = 1.25\n",
+      "score = 0.099 +/- 0.003, C =  10.0,  gamma = 0.75\n",
+      "score = 0.099 +/- 0.003, C =  10.0,  gamma = 1.00\n",
+      "score = 0.127 +/- 0.063, C =  10.0,  gamma = 1.25\n",
+      "score = 0.099 +/- 0.003, C =  30.0,  gamma = 0.75\n",
+      "score = 0.099 +/- 0.003, C =  30.0,  gamma = 1.00\n",
+      "score = 0.127 +/- 0.063, C =  30.0,  gamma = 1.25\n",
+      "score = 0.099 +/- 0.003, C =  50.0,  gamma = 0.75\n",
+      "score = 0.099 +/- 0.003, C =  50.0,  gamma = 1.00\n",
+      "score = 0.127 +/- 0.063, C =  50.0,  gamma = 1.25\n",
+      "score = 0.099 +/- 0.003, C =  70.0,  gamma = 0.75\n",
+      "score = 0.099 +/- 0.003, C =  70.0,  gamma = 1.00\n",
+      "score = 0.127 +/- 0.063, C =  70.0,  gamma = 1.25\n",
+      "score = 0.099 +/- 0.003, C =  90.0,  gamma = 0.75\n",
+      "score = 0.099 +/- 0.003, C =  90.0,  gamma = 1.00\n",
+      "score = 0.127 +/- 0.063, C =  90.0,  gamma = 1.25\n",
       "\n",
       "BEST RESULT CROSS VALIDATION\n",
-      "score = 0.967 +/- 0.025, C = 70.0,  gamma = 1.00\n",
+      "score = 0.127 +/- 0.063, C = 90.0,  gamma = 1.25\n",
       "\n",
       "VALIDATION\n",
-      "score = 0.950\n",
+      "score = 0.103\n",
       "\n",
       "\n",
       "#### 20 folds\n",
       "OPTIMIZE HYPERPARAMETERS\n",
-      "score = 0.967 +/- 0.049, C =  10.0,  gamma = 0.75\n",
-      "score = 0.958 +/- 0.049, C =  10.0,  gamma = 1.00\n",
-      "score = 0.954 +/- 0.049, C =  10.0,  gamma = 1.25\n",
-      "score = 0.958 +/- 0.042, C =  30.0,  gamma = 0.75\n",
-      "score = 0.954 +/- 0.041, C =  30.0,  gamma = 1.00\n",
-      "score = 0.950 +/- 0.041, C =  30.0,  gamma = 1.25\n",
-      "score = 0.954 +/- 0.041, C =  50.0,  gamma = 0.75\n",
-      "score = 0.958 +/- 0.042, C =  50.0,  gamma = 1.00\n",
-      "score = 0.946 +/- 0.048, C =  50.0,  gamma = 1.25\n",
-      "score = 0.954 +/- 0.041, C =  70.0,  gamma = 0.75\n",
-      "score = 0.954 +/- 0.041, C =  70.0,  gamma = 1.00\n",
-      "score = 0.946 +/- 0.040, C =  70.0,  gamma = 1.25\n",
-      "score = 0.954 +/- 0.041, C =  90.0,  gamma = 0.75\n",
-      "score = 0.954 +/- 0.041, C =  90.0,  gamma = 1.00\n",
-      "score = 0.942 +/- 0.038, C =  90.0,  gamma = 1.25\n",
+      "score = 0.101 +/- 0.011, C =  10.0,  gamma = 0.75\n",
+      "score = 0.110 +/- 0.038, C =  10.0,  gamma = 1.00\n",
+      "score = 0.128 +/- 0.092, C =  10.0,  gamma = 1.25\n",
+      "score = 0.101 +/- 0.011, C =  30.0,  gamma = 0.75\n",
+      "score = 0.110 +/- 0.038, C =  30.0,  gamma = 1.00\n",
+      "score = 0.128 +/- 0.092, C =  30.0,  gamma = 1.25\n",
+      "score = 0.101 +/- 0.011, C =  50.0,  gamma = 0.75\n",
+      "score = 0.110 +/- 0.038, C =  50.0,  gamma = 1.00\n",
+      "score = 0.128 +/- 0.092, C =  50.0,  gamma = 1.25\n",
+      "score = 0.101 +/- 0.011, C =  70.0,  gamma = 0.75\n",
+      "score = 0.110 +/- 0.038, C =  70.0,  gamma = 1.00\n",
+      "score = 0.128 +/- 0.092, C =  70.0,  gamma = 1.25\n",
+      "score = 0.101 +/- 0.011, C =  90.0,  gamma = 0.75\n",
+      "score = 0.110 +/- 0.038, C =  90.0,  gamma = 1.00\n",
+      "score = 0.128 +/- 0.092, C =  90.0,  gamma = 1.25\n",
       "\n",
       "BEST RESULT CROSS VALIDATION\n",
-      "score = 0.967 +/- 0.049, C = 10.0,  gamma = 0.75\n",
+      "score = 0.128 +/- 0.092, C = 90.0,  gamma = 1.25\n",
       "\n",
       "VALIDATION\n",
-      "score = 0.950\n"
+      "score = 0.103\n"
      ]
     }
    ],
@@ -1744,13 +1936,20 @@
     "\n",
     "2. Run cross-validation for the `SVC` classifier applied to the `\"data/spiral.csv\"` data set. Try different `C` and `gamma` values.\n",
     "\n",
-    "3. Implement same strategy for the iris data set introduced in script 1."
+    "3. Implement same strategy for the iris data set introduced in script 1 (`sklearn.datasets.load_iris`)."
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 21,
+   "execution_count": 23,
    "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:56:11.510518Z",
+     "iopub.status.busy": "2021-03-02T13:56:11.510275Z",
+     "iopub.status.idle": "2021-03-02T13:56:12.206666Z",
+     "shell.execute_reply": "2021-03-02T13:56:12.206095Z",
+     "shell.execute_reply.started": "2021-03-02T13:56:11.510492Z"
+    },
     "tags": [
      "solution"
     ]
@@ -1764,14 +1963,14 @@
       "score = 0.925 +/- 0.055, C =    1.0,  penalty = l1\n",
       "score = 0.929 +/- 0.033, C =   10.0,  penalty = l1\n",
       "score = 0.929 +/- 0.033, C =  100.0,  penalty = l1\n",
-      "score = 0.929 +/- 0.033, C = 1000.0,  penalty = l1\n",
+      "score = 0.933 +/- 0.033, C = 1000.0,  penalty = l1\n",
       "score = 0.804 +/- 0.083, C =    1.0,  penalty = l2\n",
       "score = 0.917 +/- 0.049, C =   10.0,  penalty = l2\n",
       "score = 0.921 +/- 0.039, C =  100.0,  penalty = l2\n",
       "score = 0.929 +/- 0.033, C = 1000.0,  penalty = l2\n",
       "\n",
       "BEST RESULT CROSS VALIDATION\n",
-      "score = 0.929 +/- 0.033, C = 1000.0,  penalty = l2\n",
+      "score = 0.933 +/- 0.033, C = 1000.0,  penalty = l1\n",
       "\n",
       "VALIDATION\n",
       "score = 0.850\n"
@@ -1779,6 +1978,8 @@
     }
    ],
    "source": [
+    "# SOLUTION\n",
+    "# 1.\n",
     "from sklearn.linear_model import LogisticRegression\n",
     "from sklearn.model_selection import cross_val_score\n",
     "from sklearn.svm import SVC\n",
@@ -1834,7 +2035,7 @@
     ")\n",
     "\n",
     "\n",
-    "classifier = LogisticRegression(C=best_C, penalty=best_penalty)\n",
+    "classifier = LogisticRegression(C=best_C, penalty=best_penalty, solver=\"liblinear\")\n",
     "\n",
     "classifier.fit(features_crosseval, labels_crosseval)\n",
     "predicted = classifier.predict(features_validation)\n",
@@ -1853,6 +2054,13 @@
    "cell_type": "code",
    "execution_count": 24,
    "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:56:12.207999Z",
+     "iopub.status.busy": "2021-03-02T13:56:12.207733Z",
+     "iopub.status.idle": "2021-03-02T13:56:13.238012Z",
+     "shell.execute_reply": "2021-03-02T13:56:13.237356Z",
+     "shell.execute_reply.started": "2021-03-02T13:56:12.207972Z"
+    },
     "tags": [
      "solution"
     ]
@@ -1885,6 +2093,8 @@
     }
    ],
    "source": [
+    "# SOLUTION\n",
+    "# 2.\n",
     "df = pd.read_csv(\"data/spiral.csv\")\n",
     "\n",
     "features = df.iloc[:, :-1]\n",
@@ -1948,8 +2158,15 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 23,
+   "execution_count": 25,
    "metadata": {
+    "execution": {
+     "iopub.execute_input": "2021-03-02T13:56:13.244092Z",
+     "iopub.status.busy": "2021-03-02T13:56:13.243883Z",
+     "iopub.status.idle": "2021-03-02T13:56:13.433226Z",
+     "shell.execute_reply": "2021-03-02T13:56:13.432534Z",
+     "shell.execute_reply.started": "2021-03-02T13:56:13.244068Z"
+    },
     "tags": [
      "solution"
     ]
@@ -1982,6 +2199,8 @@
     }
    ],
    "source": [
+    "# SOLUTION\n",
+    "# 3.\n",
     "from sklearn.datasets import load_iris\n",
     "\n",
     "data = load_iris()\n",
@@ -2047,13 +2266,6 @@
     "# Here, SVC is robust"
    ]
   },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -2079,7 +2291,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.7.7"
+   "version": "3.9.1"
   },
   "latex_envs": {
    "LaTeX_envs_menu_present": true,