{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Working With Image Data" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from sklearn.datasets import load_digits\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "digits_data = load_digits()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['data', 'target', 'frame', 'feature_names', 'target_names', 'images', 'DESCR'])" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "digits_data.keys()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "labels = pd.Series(digits_data['target'])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789...54555657585960616263
00.00.05.013.09.01.00.00.00.00.0...0.00.00.00.06.013.010.00.00.00.0
\n", "

1 rows × 64 columns

\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 7 8 9 ... 54 55 56 57 \\\n", "0 0.0 0.0 5.0 13.0 9.0 1.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 \n", "\n", " 58 59 60 61 62 63 \n", "0 6.0 13.0 10.0 0.0 0.0 0.0 \n", "\n", "[1 rows x 64 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = pd.DataFrame(digits_data['data'])\n", "data.head(1)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVQAAAFZCAYAAADHDNdrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAT4UlEQVR4nO3dXWxTh93H8V9elgPtHA8oASJMIRsbpWkYEEAs3QprAEW0WneRThXVMip1WuWs0GhS5JvBNA3Ti03sBYUXtVBpY6GblrarBgjYCJrWiMQICTaJlpYNtwyyTqkdosmg2M/FnnlPnjiU4/yd4xO+H+lc2LXrn9L0K7/Edkkmk8kIADBupV4PAIDJgqACgBGCCgBGCCoAGCGoAGCEoAKAEYIKAEbKJ/oG0+m0rl69qkAgoJKSkom+eQBwLZPJaHBwUNXV1SotHft+6IQH9erVqwqFQhN9swAwbvF4XHPnzh3zn094UAOBgKR/D6usrJzom/edrq4uryfktG3bNq8n5LR27VqvJ+S0fft2ryeMMm3aNK8n+EYymVQoFMr2aywTHtT/PMyvrKwkqHfgnnvu8XpCTrd72OOliooKryfkVIy/68W4qdh93NOUxfl/BQD4EEEFACMEFQCMEFQAMEJQAcAIQQUAIwQVAIwQVAAwQlABwAhBBQAjBBUAjBBUADCSV1B3796t+fPna8qUKVq1apXOnDljvQsAfMd1UA8fPqy2tjZt27ZNZ8+e1ZIlS7Rhwwb19/cXYh8A+IbroP7oRz/Ss88+q82bN2vx4sXas2eP7rnnHr388suF2AcAvuEqqDdv3lQsFlNjY+N//wWlpWpsbNRbb72V8zqpVErJZHLEAQCTkaugfvjhhxoeHtasWbNGnD9r1ixdu3Yt53Wi0aiCwWD24OtPAExWBX+VPxKJKJFIZI94PF7omwQAT7j6CpT77rtPZWVlun79+ojzr1+/rtmzZ+e8juM4chwn/4UA4BOu7qFWVFRo+fLlOnnyZPa8dDqtkydPavXq1ebjAMBPXH9JX1tbm1paWlRfX6+VK1dq165dGhoa0ubNmwuxDwB8w3VQv/a1r+kf//iHvvvd7+ratWv6/Oc/r6NHj456oQoA7jZ5fY10a2urWltbrbcAgK/xXn4AMEJQAcAIQQUAIwQVAIwQVAAwQlABwAhBBQAjBBUAjBBUADBCUAHACEEFACMEFQCM5PXhKJg47e3tXk/I6fLly15PyGlgYMDrCTlNnz7d6wmjvPrqq15PyKm5udnrCXnjHioAGCGoAGCEoAKAEYIKAEYIKgAYIagAYISgAoARggoARggqABghqABghKACgBGCCgBGCCoAGCGoAGDEdVBPnz6txx9/XNXV1SopKdFrr71WiF0A4Duugzo0NKQlS5Zo9+7dhdgDAL7l+gOmm5qa1NTUVIgtAOBrBf/E/lQqpVQqlT2dTCYLfZMA4ImCvygVjUYVDAazRygUKvRNAoAnCh7USCSiRCKRPeLxeKFvEgA8UfCH/I7jyHGcQt8MAHiOv0MFACOu76HeuHFDly5dyp6+fPmyzp07p+nTp2vevHmm4wDAT1wHta+vT2vXrs2ebmtrkyS1tLTo4MGDZsMAwG9cB3XNmjXKZDKF2AIAvsZzqABghKACgBGCCgBGCCoAGCGoAGCEoAKAEYIKAEYIKgAYIagAYISgAoARggoARgr+eah+EovFvJ4wyuXLl72ekNO7777r9YScampqvJ6Q07p167yeMEox/r5LUnNzs9cT8sY9VAAwQlABwAhBBQAjBBUAjBBUADBCUAHACEEFACMEFQCMEFQAMEJQAcAIQQUAIwQVAIwQVAAwQlABwAhBBQAjroIajUa1YsUKBQIBVVVV6YknntDFixcLtQ0AfMVVULu7uxUOh9XT06Pjx4/r1q1bWr9+vYaGhgq1DwB8w9Un9h89enTE6YMHD6qqqkqxWExf+tKXTIcBgN+M6ytQEomEJGn69OljXiaVSimVSmVPJ5PJ8dwkABStvF+USqfT2rp1qxoaGlRbWzvm5aLRqILBYPYIhUL53iQAFLW8gxoOh3XhwgV1dnbe9nKRSESJRCJ7xOPxfG8SAIpaXg/5W1tb9eabb+r06dOaO3fubS/rOI4cx8lrHAD4iaugZjIZffvb31ZXV5dOnTqlBQsWFGoXAPiOq6CGw2EdOnRIr7/+ugKBgK5duyZJCgaDmjp1akEGAoBfuHoOtaOjQ4lEQmvWrNGcOXOyx+HDhwu1DwB8w/VDfgBAbryXHwCMEFQAMEJQAcAIQQUAIwQVAIwQVAAwQlABwAhBBQAjBBUAjBBUADBCUAHAyLi+AmWyGRgY8HrCKMuWLfN6Qk41NTVeT/CV5cuXez0BE4B7qABghKACgBGCCgBGCCoAGCGoAGCEoAKAEYIKAEYIKgAYIagAYISgAoARggoARggqABghqABghKACgBGCCgBGXAW1o6NDdXV1qqysVGVlpVavXq0jR44UahsA+IqroM6dO1c7d+5ULBZTX1+fvvzlL+srX/mK/vznPxdqHwD4hqtP7H/88cdHnP7BD36gjo4O9fT06MEHH8x5nVQqpVQqlT2dTCbzmAkAxS/v51CHh4fV2dmpoaEhrV69eszLRaNRBYPB7BEKhfK9SQAoaq6Dev78eX3yk5+U4zj61re+pa6uLi1evHjMy0ciESUSiewRj8fHNRgAipXrL+n73Oc+p3PnzimRSOjXv/61Wlpa1N3dPWZUHceR4zjjHgoAxc51UCsqKvSZz3xG0r+/ybG3t1c//vGPtXfvXvNxAOAn4/471HQ6PeJFJwC4W7m6hxqJRNTU1KR58+ZpcHBQhw4d0qlTp3Ts2LFC7QMA33AV1P7+fn3961/X3//+dwWDQdXV1enYsWNat25dofYBgG+4CupLL71UqB0A4Hu8lx8AjBBUADBCUAHACEEFACMEFQCMEFQAMEJQAcAIQQUAIwQVAIwQVAAwQlABwIjrz0OdzAYGBryeMAofPDM5FOPv1rRp07yeMOlwDxUAjBBUADBCUAHACEEFACMEFQCMEFQAMEJQAcAIQQUAIwQVAIwQVAAwQlABwAhBBQAjBBUAjBBUADAyrqDu3LlTJSUl2rp1q9UeAPCtvIPa29urvXv3qq6uznIPAPhWXkG9ceOGNm3apP379/MhtQDwv/IKajgc1saNG9XY2Pixl02lUkomkyMOAJiMXH8FSmdnp86ePave3t47unw0GtX3vvc918MAwG9c3UONx+PasmWLfvGLX2jKlCl3dJ1IJKJEIpE94vF4XkMBoNi5uocai8XU39+vZcuWZc8bHh7W6dOn9bOf/UypVEplZWUjruM4jhzHsVkLAEXMVVAfffRRnT9/fsR5mzdv1qJFi9Te3j4qpgBwN3EV1EAgoNra2hHn3XvvvZoxY8ao8wHgbsM7pQDAiOtX+f+/U6dOGcwAAP/jHioAGCGoAGCEoAKAEYIKAEYIKgAYIagAYISgAoARggoARggqABghqABghKACgBGCCgBGxv3hKJNJMX7hYCwW83qCrwwMDHg9Iae+vj6vJ4zy5JNPej1h0uEeKgAYIagAYISgAoARggoARggqABghqABghKACgBGCCgBGCCoAGCGoAGCEoAKAEYIKAEYIKgAYIagAYMRVULdv366SkpIRx6JFiwq1DQB8xfXnoT744IM6ceLEf/8F5XykKgBIeQS1vLxcs2fPLsQWAPA118+hvvPOO6qurlZNTY02bdqkK1eu3PbyqVRKyWRyxAEAk5GroK5atUoHDx7U0aNH1dHRocuXL+uLX/yiBgcHx7xONBpVMBjMHqFQaNyjAaAYuQpqU1OTmpubVVdXpw0bNuh3v/udPvroI7366qtjXicSiSiRSGSPeDw+7tEAUIzG9YrSpz71KX32s5/VpUuXxryM4zhyHGc8NwMAvjCuv0O9ceOG3n33Xc2ZM8dqDwD4lqugfuc731F3d7f++te/6k9/+pO++tWvqqysTE899VSh9gGAb7h6yP/+++/rqaee0j//+U/NnDlTDz/8sHp6ejRz5sxC7QMA33AV1M7OzkLtAADf4738AGCEoAKAEYIKAEYIKgAYIagAYISgAoARggoARggqABghqABghKACgBGCCgBG+Ia9/6OmpsbrCaP09fV5PSGnX/3qV15PyKlYdxWj9vZ2rydMOtxDBQAjBBUAjBBUADBCUAHACEEFACMEFQCMEFQAMEJQAcAIQQUAIwQVAIwQVAAwQlABwAhBBQAjBBUAjBBUADDiOqgffPCBnn76ac2YMUNTp07VQw89VLSf2QkAE8nVB0wPDAyooaFBa9eu1ZEjRzRz5ky98847mjZtWqH2AYBvuArqiy++qFAopAMHDmTPW7BggfkoAPAjVw/533jjDdXX16u5uVlVVVVaunSp9u/ff9vrpFIpJZPJEQcATEaugvree++po6NDCxcu1LFjx/Tcc8/p+eef1yuvvDLmdaLRqILBYPYIhULjHg0AxchVUNPptJYtW6YdO3Zo6dKl+uY3v6lnn31We/bsGfM6kUhEiUQie8Tj8XGPBoBi5Cqoc+bM0eLFi0ec98ADD+jKlStjXsdxHFVWVo44AGAychXUhoYGXbx4ccR5b7/9tu6//37TUQDgR66C+sILL6inp0c7duzQpUuXdOjQIe3bt0/hcLhQ+wDAN1wFdcWKFerq6tIvf/lL1dbW6vvf/7527dqlTZs2FWofAPiGq79DlaTHHntMjz32WCG2AICv8V5+ADBCUAHACEEF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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "first_image = data.iloc[0]\n", "np_image = first_image.values\n", "np_image = np_image.reshape(8,8)\n", "\n", "plt.imshow(np_image, cmap='gray_r')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, axarr = plt.subplots(2, 4)\n", "\n", "axarr[0, 0].imshow(data.iloc[0].values.reshape(8,8), cmap='gray_r')\n", "axarr[0, 1].imshow(data.iloc[99].values.reshape(8,8), cmap='gray_r')\n", "axarr[0, 2].imshow(data.iloc[199].values.reshape(8,8), cmap='gray_r')\n", "axarr[0, 3].imshow(data.iloc[299].values.reshape(8,8), cmap='gray_r')\n", "\n", "axarr[1, 0].imshow(data.iloc[999].values.reshape(8,8), cmap='gray_r')\n", "axarr[1, 1].imshow(data.iloc[1099].values.reshape(8,8), cmap='gray_r')\n", "axarr[1, 2].imshow(data.iloc[1199].values.reshape(8,8), cmap='gray_r')\n", "axarr[1, 3].imshow(data.iloc[1299].values.reshape(8,8), cmap='gray_r')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## K-Nearest Neighbors Model" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9888728037614452" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.model_selection import KFold\n", "\n", "# 50% Train / test validation\n", "def train_knn(nneighbors, train_features, train_labels):\n", " knn = KNeighborsClassifier(n_neighbors = nneighbors)\n", " knn.fit(train_features, train_labels)\n", " return knn\n", "\n", "def test(model, test_features, test_labels):\n", " predictions = model.predict(test_features)\n", " train_test_df = pd.DataFrame()\n", " train_test_df['correct_label'] = test_labels\n", " train_test_df['predicted_label'] = predictions\n", " overall_accuracy = sum(train_test_df[\"predicted_label\"] == train_test_df[\"correct_label\"])/len(train_test_df) \n", " return overall_accuracy\n", "\n", "def cross_validate(k):\n", " fold_accuracies = []\n", " kf = KFold(n_splits = 4, random_state=2, shuffle=True)\n", " for train_index, test_index in kf.split(data):\n", " train_features, test_features = data.loc[train_index], data.loc[test_index]\n", " train_labels, test_labels = labels.loc[train_index], labels.loc[test_index]\n", " model = train_knn(k, train_features, train_labels)\n", " overall_accuracy = test(model, test_features, test_labels)\n", " fold_accuracies.append(overall_accuracy)\n", " return fold_accuracies\n", " \n", "knn_one_accuracies = cross_validate(1)\n", "np.mean(knn_one_accuracies)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "k_values = list(range(1,10))\n", "k_overall_accuracies = []\n", "\n", "for k in k_values:\n", " k_accuracies = cross_validate(k)\n", " k_mean_accuracy = np.mean(k_accuracies)\n", " k_overall_accuracies.append(k_mean_accuracy)\n", " \n", "plt.figure(figsize=(8,4))\n", "plt.title(\"Mean Accuracy vs. k\")\n", "plt.plot(k_values, k_overall_accuracies)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Neural Network With One Hidden Layer" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.model_selection import KFold\n", "from sklearn.neural_network import MLPClassifier\n", "\n", "# 50% Train / test validation\n", "def train_nn(neuron_arch, train_features, train_labels):\n", " mlp = MLPClassifier(hidden_layer_sizes=neuron_arch)\n", " mlp.fit(train_features, train_labels)\n", " return mlp\n", "\n", "def test(model, test_features, test_labels):\n", " predictions = model.predict(test_features)\n", " train_test_df = pd.DataFrame()\n", " train_test_df['correct_label'] = test_labels\n", " train_test_df['predicted_label'] = predictions\n", " overall_accuracy = sum(train_test_df[\"predicted_label\"] == train_test_df[\"correct_label\"])/len(train_test_df) \n", " return overall_accuracy\n", "\n", "def cross_validate(neuron_arch):\n", " fold_accuracies = []\n", " kf = KFold(n_splits = 4, random_state=2, shuffle=True)\n", " for train_index, test_index in kf.split(data):\n", " train_features, test_features = data.loc[train_index], data.loc[test_index]\n", " train_labels, test_labels = labels.loc[train_index], labels.loc[test_index]\n", " \n", " model = train_nn(neuron_arch, train_features, train_labels)\n", " overall_accuracy = test(model, test_features, test_labels)\n", " fold_accuracies.append(overall_accuracy)\n", " return fold_accuracies" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqgAAAFwCAYAAAB0PYmDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzde1xUZf4H8M8wMBeG+0UQRRCkSEtQvKSmZGEoammmpq4iXVZbrXXZ8qdpXiglK0kzV7MtNc1Sk6xtCzOyTc1b3jLN0hQklLvcBhhg5vn9gTMyzgwwJAyXz/v1mhfMmeeceQ4MMx+ec57vkQghBIiIiIiIWgg7W3eAiIiIiKg2BlQiIiIialEYUImIiIioRWFAJSIiIqIWhQGViIiIiFoUBlQiIiIialEYUImIiIioRWFAJSIiIqIWhQGViIiIiFoUBlQiIrKJtLQ0SCQSbNq0qUmfZ8mSJZBIJE36HPUJDAzE9OnT6223adMmSCQSpKWl3bZtErVGDKjUJPRvshKJBAcOHDB5XAgBf39/SCQSjBo1ygY9tJ5Wq4Wfnx8kEgm++uorW3eH6jF9+nRIJBL07NkT5q7oLJFIMHv2bBv0rGX57rvvIJFI8Mknn9zW7f7nP/9BZGQkOnToAEdHRwQFBWHChAlISUm5rc9jC/r3tx9//NHs4/fffz/uvvvuZu5V82mq1wxRbQyo1KQUCgW2bdtmsvx///sf/vjjD8jlchv0qnG+/fZbXLt2DYGBgfjwww9t3R1qoDNnziA5OdnW3WhX3njjDTz88MOQSCSYP38+3nzzTYwbNw4XLlzAxx9/bGgXEBCA8vJyTJ061Ya9bR6//vor3n33XVt3g6jVsLd1B6hti4mJwc6dO/HWW2/B3v7my23btm2IiIhAXl6eDXtnna1bt6J3796IjY3Fiy++CLVaDZVKZetumaiuroZOp4NMJrN1V2xOqVTC398fCQkJePTRR21+mBdAi33d3C7V1dV4+eWXMWzYMHz99dcmj+fk5Bi+l0gkUCgUzdk9m2lN/4y3NUIIVFRUQKlU2rorZAWOoFKTmjRpEvLz87F3717DssrKSnzyySeYPHmy2XV0Oh1WrVqFHj16QKFQwMfHBzNmzMD169eN2n322WcYOXIk/Pz8IJfLERwcjJdffhlardaonf5w27lz5zB06FA4OjqiU6dOeO211xq8H+Xl5fj000/x+OOPY8KECSgvL8dnn31mtu1XX32FyMhIODs7w8XFBX379jUZRT5y5AhiYmLg7u4OlUqFnj17YvXq1UZ9vv/++022PX36dAQGBhru68/he+ONN7Bq1SoEBwdDLpfj3LlzqKysxKJFixAREQFXV1eoVCoMHjwY+/btM9muTqfD6tWrcc8990ChUMDb2xvDhw83HMKMjIxEWFiY2f298847ER0dbfFnN2rUKAQFBZl9bMCAAejTp4/h/t69e3HffffBzc0NTk5OuPPOO/Hiiy9a3HZ97OzssHDhQvz000/49NNP622v0WiwePFidOvWDXK5HP7+/pg7dy40Go2hTV3nTUokEixZssRwX3/u47lz5zB58mS4u7vjvvvuA3AzyOl/Z4GBgXjxxReNnguoOc9w1KhROHDgAPr16weFQoGgoCB88MEHRu2qqqqwdOlShISEQKFQwNPTE/fdd5/R315D6ft98eJFTJ8+HW5ubnB1dUVcXBzKysrqXDcvLw/FxcUYNGiQ2cc7dOhg+N7cz3L69OlwcnJCZmYmxowZAycnJ3h7e+P55583+dvOz8/H1KlT4eLiAjc3N8TGxuL06dMNPq9169atiIiIgFKphIeHBx5//HFkZGTUu15jmDtf9OzZs3jggQegVCrRuXNnvPLKK9DpdCbrCiHwyiuvoHPnznB0dMTQoUNx9uxZs89TWFiIOXPmwN/fH3K5HN26dcOKFSuMtlv7fWPDhg2G12Dfvn1x7Nix27bPb7zxBgYOHAhPT08olUpERESYnBZgzXtLQz8b9H8ze/bsQZ8+faBUKvHOO+/ctv2i5sGASk0qMDAQAwYMwEcffWRY9tVXX6GoqAiPP/642XVmzJiBF154AYMGDcLq1asRFxeHDz/8ENHR0aiqqjK027RpE5ycnBAfH4/Vq1cjIiICixYtwrx580y2ef36dQwfPhxhYWFYuXIlQkND8X//938NPpf0888/R2lpKR5//HH4+vri/vvvN3uYf9OmTRg5ciQKCgowf/58vPrqqwgPDzc6727v3r0YMmQIzp07h7///e9YuXIlhg4dii+++KJBfTFn48aNWLNmDf76179i5cqV8PDwQHFxMf7973/j/vvvx4oVK7BkyRLk5uYiOjoap06dMlr/ySefNHyorVixAvPmzYNC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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nn_one_neurons = [\n", " (8,),\n", " (16,),\n", " (32,),\n", " (64,),\n", " (128,),\n", " (256,)\n", "]\n", "nn_one_accuracies = []\n", "\n", "for n in nn_one_neurons:\n", " nn_accuracies = cross_validate(n)\n", " nn_mean_accuracy = np.mean(nn_accuracies)\n", " nn_one_accuracies.append(nn_mean_accuracy)\n", "\n", "plt.figure(figsize=(8,4))\n", "plt.title(\"Mean Accuracy vs. Neurons In Single Hidden Layer\")\n", "\n", "x = [i[0] for i in nn_one_neurons]\n", "plt.plot(x, nn_one_accuracies)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Summary:\n", "\n", "It looks like adding more neurons to the single hidden layer improved simple accuracy to approximately `97%`. Simple accuracy computes the number of correct classifications the model made, but doesn't tell us anything about false or true positives or false or true negatives.\n", "\n", "Given that k-nearest neighbors achieved approximately `98%` accuracy, there doesn't seem to be any advantages to using a single hidden layer neural network for this problem." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Neural Network With Two Hidden Layers" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nn_two_neurons = [\n", " (64,64),\n", " (128, 128),\n", " (256, 256)\n", "]\n", "nn_two_accuracies = []\n", "\n", "for n in nn_two_neurons:\n", " nn_accuracies = cross_validate(n)\n", " nn_mean_accuracy = np.mean(nn_accuracies)\n", " nn_two_accuracies.append(nn_mean_accuracy)\n", "\n", "plt.figure(figsize=(8,4))\n", "plt.title(\"Mean Accuracy vs. Neurons In Two Hidden Layers\")\n", "\n", "x = [i[0] for i in nn_two_neurons]\n", "plt.plot(x, nn_two_accuracies)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0.9710752289037367, 0.978304875030933, 0.9849802029200694]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nn_two_accuracies" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Summary\n", "\n", "Using 2 hidden layers improved our simple accuracy to `98%`. While I'd traditionally be worried about overfitting, using 4-fold cross validation also gives me a bit more assurance that the model is generalizing to achieve the extra `1%` in simple accuracy over the single hidden layer networks we tried earlier." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Neural Network With Three Hidden Layers" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.model_selection import KFold\n", "\n", "# 50% Train / test validation\n", "def train_nn(neuron_arch, train_features, train_labels):\n", " mlp = MLPClassifier(hidden_layer_sizes=neuron_arch)\n", " mlp.fit(train_features, train_labels)\n", " return mlp\n", "\n", "def test(model, test_features, test_labels):\n", " predictions = model.predict(test_features)\n", " train_test_df = pd.DataFrame()\n", " train_test_df['correct_label'] = test_labels\n", " train_test_df['predicted_label'] = predictions\n", " overall_accuracy = sum(train_test_df[\"predicted_label\"] == train_test_df[\"correct_label\"])/len(train_test_df) \n", " return overall_accuracy\n", "\n", "def cross_validate_six(neuron_arch):\n", " fold_accuracies = []\n", " kf = KFold(n_splits = 6, random_state=2, shuffle=True)\n", " for train_index, test_index in kf.split(data):\n", " train_features, test_features = data.loc[train_index], data.loc[test_index]\n", " train_labels, test_labels = labels.loc[train_index], labels.loc[test_index]\n", " \n", " model = train_nn(neuron_arch, train_features, train_labels)\n", " overall_accuracy = test(model, test_features, test_labels)\n", " fold_accuracies.append(overall_accuracy)\n", " return fold_accuracies" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n", "/dataquest/system/env/python3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning:\n", "\n", "Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", "\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nn_three_neurons = [\n", " (10, 10, 10),\n", " (64, 64, 64),\n", " (128, 128, 128)\n", "]\n", "\n", "nn_three_accuracies = []\n", "\n", "for n in nn_three_neurons:\n", " nn_accuracies = cross_validate_six(n)\n", " nn_mean_accuracy = np.mean(nn_accuracies)\n", " nn_three_accuracies.append(nn_mean_accuracy)\n", "\n", "plt.figure(figsize=(8,4))\n", "plt.title(\"Mean Accuracy vs. Neurons In Three Hidden Layers\")\n", "\n", "x = [i[0] for i in nn_three_neurons]\n", "plt.plot(x, nn_three_accuracies)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0.9326830174656262, 0.9694072835377184, 0.9744072835377183]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nn_three_accuracies" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Summary\n", "\n", "Using 3 hidden layers returned a simple accuracy of nearly `98%`, even with 6-fold cross validation." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.2" } }, "nbformat": 4, "nbformat_minor": 2 }