|
| 1 | +{ |
| 2 | + "cells": [ |
| 3 | + { |
| 4 | + "cell_type": "code", |
| 5 | + "execution_count": 28, |
| 6 | + "metadata": {}, |
| 7 | + "outputs": [], |
| 8 | + "source": [ |
| 9 | + "from matplotlib import pyplot as plt\n", |
| 10 | + "from sklearn.metrics import confusion_matrix , classification_report\n", |
| 11 | + "import pandas as pd" |
| 12 | + ] |
| 13 | + }, |
| 14 | + { |
| 15 | + "cell_type": "code", |
| 16 | + "execution_count": 29, |
| 17 | + "metadata": {}, |
| 18 | + "outputs": [], |
| 19 | + "source": [ |
| 20 | + "# Source code credit for this function: https://gist.github.com/shaypal5/94c53d765083101efc0240d776a23823\n", |
| 21 | + "def print_confusion_matrix(confusion_matrix, class_names, figsize = (10,7), fontsize=14):\n", |
| 22 | + " \"\"\"Prints a confusion matrix, as returned by sklearn.metrics.confusion_matrix, as a heatmap.\n", |
| 23 | + " \n", |
| 24 | + " Arguments\n", |
| 25 | + " ---------\n", |
| 26 | + " confusion_matrix: numpy.ndarray\n", |
| 27 | + " The numpy.ndarray object returned from a call to sklearn.metrics.confusion_matrix. \n", |
| 28 | + " Similarly constructed ndarrays can also be used.\n", |
| 29 | + " class_names: list\n", |
| 30 | + " An ordered list of class names, in the order they index the given confusion matrix.\n", |
| 31 | + " figsize: tuple\n", |
| 32 | + " A 2-long tuple, the first value determining the horizontal size of the ouputted figure,\n", |
| 33 | + " the second determining the vertical size. Defaults to (10,7).\n", |
| 34 | + " fontsize: int\n", |
| 35 | + " Font size for axes labels. Defaults to 14.\n", |
| 36 | + " \n", |
| 37 | + " Returns\n", |
| 38 | + " -------\n", |
| 39 | + " matplotlib.figure.Figure\n", |
| 40 | + " The resulting confusion matrix figure\n", |
| 41 | + " \"\"\"\n", |
| 42 | + " df_cm = pd.DataFrame(\n", |
| 43 | + " confusion_matrix, index=class_names, columns=class_names, \n", |
| 44 | + " )\n", |
| 45 | + " fig = plt.figure(figsize=figsize)\n", |
| 46 | + " try:\n", |
| 47 | + " heatmap = sns.heatmap(df_cm, annot=True, fmt=\"d\")\n", |
| 48 | + " except ValueError:\n", |
| 49 | + " raise ValueError(\"Confusion matrix values must be integers.\")\n", |
| 50 | + " heatmap.yaxis.set_ticklabels(heatmap.yaxis.get_ticklabels(), rotation=0, ha='right', fontsize=fontsize)\n", |
| 51 | + " heatmap.xaxis.set_ticklabels(heatmap.xaxis.get_ticklabels(), rotation=45, ha='right', fontsize=fontsize)\n", |
| 52 | + " plt.ylabel('Truth')\n", |
| 53 | + " plt.xlabel('Prediction')" |
| 54 | + ] |
| 55 | + }, |
| 56 | + { |
| 57 | + "cell_type": "code", |
| 58 | + "execution_count": 30, |
| 59 | + "metadata": {}, |
| 60 | + "outputs": [], |
| 61 | + "source": [ |
| 62 | + "truth = [\"Dog\",\"Not a dog\",\"Dog\",\"Dog\", \"Dog\", \"Not a dog\", \"Not a dog\", \"Dog\", \"Dog\", \"Not a dog\"]\n", |
| 63 | + "prediction = [\"Dog\",\"Dog\", \"Dog\",\"Not a dog\",\"Dog\", \"Not a dog\", \"Dog\", \"Not a dog\", \"Dog\", \"Dog\"]" |
| 64 | + ] |
| 65 | + }, |
| 66 | + { |
| 67 | + "cell_type": "code", |
| 68 | + "execution_count": 31, |
| 69 | + "metadata": { |
| 70 | + "scrolled": false |
| 71 | + }, |
| 72 | + "outputs": [ |
| 73 | + { |
| 74 | + "data": { |
| 75 | + "image/png": "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\n", |
| 76 | + "text/plain": [ |
| 77 | + "<Figure size 720x504 with 2 Axes>" |
| 78 | + ] |
| 79 | + }, |
| 80 | + "metadata": { |
| 81 | + "needs_background": "light" |
| 82 | + }, |
| 83 | + "output_type": "display_data" |
| 84 | + } |
| 85 | + ], |
| 86 | + "source": [ |
| 87 | + "cm = confusion_matrix(truth,prediction)\n", |
| 88 | + "print_confusion_matrix(cm,[\"Dog\",\"Not a dog\"])" |
| 89 | + ] |
| 90 | + }, |
| 91 | + { |
| 92 | + "cell_type": "code", |
| 93 | + "execution_count": 32, |
| 94 | + "metadata": {}, |
| 95 | + "outputs": [ |
| 96 | + { |
| 97 | + "name": "stdout", |
| 98 | + "output_type": "stream", |
| 99 | + "text": [ |
| 100 | + " precision recall f1-score support\n", |
| 101 | + "\n", |
| 102 | + " Dog 0.57 0.67 0.62 6\n", |
| 103 | + " Not a dog 0.33 0.25 0.29 4\n", |
| 104 | + "\n", |
| 105 | + " accuracy 0.50 10\n", |
| 106 | + " macro avg 0.45 0.46 0.45 10\n", |
| 107 | + "weighted avg 0.48 0.50 0.48 10\n", |
| 108 | + "\n" |
| 109 | + ] |
| 110 | + } |
| 111 | + ], |
| 112 | + "source": [ |
| 113 | + "print(classification_report(truth, prediction))" |
| 114 | + ] |
| 115 | + }, |
| 116 | + { |
| 117 | + "cell_type": "markdown", |
| 118 | + "metadata": {}, |
| 119 | + "source": [ |
| 120 | + "**f1 score for Dog class**" |
| 121 | + ] |
| 122 | + }, |
| 123 | + { |
| 124 | + "cell_type": "code", |
| 125 | + "execution_count": 33, |
| 126 | + "metadata": { |
| 127 | + "scrolled": true |
| 128 | + }, |
| 129 | + "outputs": [ |
| 130 | + { |
| 131 | + "data": { |
| 132 | + "text/plain": [ |
| 133 | + "0.6159677419354839" |
| 134 | + ] |
| 135 | + }, |
| 136 | + "execution_count": 33, |
| 137 | + "metadata": {}, |
| 138 | + "output_type": "execute_result" |
| 139 | + } |
| 140 | + ], |
| 141 | + "source": [ |
| 142 | + "2*(0.57*0.67/(0.57+0.67))" |
| 143 | + ] |
| 144 | + }, |
| 145 | + { |
| 146 | + "cell_type": "markdown", |
| 147 | + "metadata": {}, |
| 148 | + "source": [ |
| 149 | + "**f1 score for Not a dog class**" |
| 150 | + ] |
| 151 | + }, |
| 152 | + { |
| 153 | + "cell_type": "code", |
| 154 | + "execution_count": 36, |
| 155 | + "metadata": {}, |
| 156 | + "outputs": [ |
| 157 | + { |
| 158 | + "data": { |
| 159 | + "text/plain": [ |
| 160 | + "0.2844827586206896" |
| 161 | + ] |
| 162 | + }, |
| 163 | + "execution_count": 36, |
| 164 | + "metadata": {}, |
| 165 | + "output_type": "execute_result" |
| 166 | + } |
| 167 | + ], |
| 168 | + "source": [ |
| 169 | + "2*(0.33*0.25/(0.33+0.25))" |
| 170 | + ] |
| 171 | + } |
| 172 | + ], |
| 173 | + "metadata": { |
| 174 | + "kernelspec": { |
| 175 | + "display_name": "Python 3", |
| 176 | + "language": "python", |
| 177 | + "name": "python3" |
| 178 | + }, |
| 179 | + "language_info": { |
| 180 | + "codemirror_mode": { |
| 181 | + "name": "ipython", |
| 182 | + "version": 3 |
| 183 | + }, |
| 184 | + "file_extension": ".py", |
| 185 | + "mimetype": "text/x-python", |
| 186 | + "name": "python", |
| 187 | + "nbconvert_exporter": "python", |
| 188 | + "pygments_lexer": "ipython3", |
| 189 | + "version": "3.8.5" |
| 190 | + } |
| 191 | + }, |
| 192 | + "nbformat": 4, |
| 193 | + "nbformat_minor": 4 |
| 194 | +} |
0 commit comments