Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit e77d720

Browse files
author
codebasics
committedSep 8, 2020
precision and recall
1 parent addef58 commit e77d720

File tree

1 file changed

+194
-0
lines changed

1 file changed

+194
-0
lines changed
 
Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
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

Comments
 (0)