{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "34b0345b", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib as mpl\n", "from matplotlib import pyplot as plt" ] }, { "cell_type": "markdown", "id": "75b9f701", "metadata": {}, "source": [ "# Render Confusion Matrices\n", "\n", "DIGITs generates confusion matrix tables, need to render as is, not generate using scikit-learn's func" ] }, { "cell_type": "code", "execution_count": 2, "id": "10521209", "metadata": {}, "outputs": [], "source": [ "frame = pd.read_csv('architecture-investigations/fc/3-layers/1024/conf.csv', index_col=0)\n", "accuracy_col = frame.pop('Per-class accuracy')" ] }, { "cell_type": "code", "execution_count": 19, "id": "02c2844f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "50.0% 0.5\n", "25.0% 0.25\n", "30.0% 0.3\n", "100.0% 1.0\n", "71.43% 0.7142857142857143\n", "44.44% 0.4444444444444444\n", "62.5% 0.625\n", "0.0% 0.0\n", "50.0% 0.5\n", "20.0% 0.2\n", "\n", "MAP = 49.3%\n" ] } ], "source": [ "normalised_array = np.ndarray((196, 196))\n", "for idx, row in enumerate(frame.to_numpy()):\n", " normalised_array[idx, :] = row / np.sum(row)\n", "\n", "# check correct accuracy\n", "for acc, (idx, row) in zip(accuracy_col, enumerate(normalised_array[:10])):\n", " print(acc, row[idx])\n", "\n", "class_acc_counter = 0\n", "for idx, row in enumerate(normalised_array):\n", " class_acc_counter += row[idx]\n", " \n", "print(f\"\\nMAP = {class_acc_counter*100/196:.4}%\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "91132579", "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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AM General Hummer SUV 2000Acura RL Sedan 2012Acura TL Sedan 2012Acura TL Type-S 2008Acura TSX Sedan 2012Acura Integra Type R 2001Acura ZDX Hatchback 2012Aston Martin V8 Vantage Convertible 2012Aston Martin V8 Vantage Coupe 2012Aston Martin Virage Convertible 2012...Toyota Camry Sedan 2012Toyota Corolla Sedan 2012Toyota 4Runner SUV 2012Volkswagen Golf Hatchback 2012Volkswagen Golf Hatchback 1991Volkswagen Beetle Hatchback 2012Volvo C30 Hatchback 2012Volvo 240 Sedan 1993Volvo XC90 SUV 2007smart fortwo Convertible 2012
AM General Hummer SUV 20006000000000...0000000001
Acura RL Sedan 20120210200000...0000000000
Acura TL Sedan 20120130200000...0000000000
Acura TL Type-S 20080003000000...0000000000
Acura TSX Sedan 20120100500000...0000000000
..................................................................
Volkswagen Beetle Hatchback 20120000000000...0000050000
Volvo C30 Hatchback 20120000000000...0000014000
Volvo 240 Sedan 19930000000000...00000001000
Volvo XC90 SUV 20070000000000...0000000070
smart fortwo Convertible 20120000000000...00000000010
\n", "

196 rows × 196 columns

\n", "
" ], "text/plain": [ " AM General Hummer SUV 2000 \\\n", "AM General Hummer SUV 2000 6 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 0 \n", "Volvo C30 Hatchback 2012 0 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 0 \n", "\n", " Acura RL Sedan 2012 Acura TL Sedan 2012 \\\n", "AM General Hummer SUV 2000 0 0 \n", "Acura RL Sedan 2012 2 1 \n", "Acura TL Sedan 2012 1 3 \n", "Acura TL Type-S 2008 0 0 \n", "Acura TSX Sedan 2012 1 0 \n", "... ... ... \n", "Volkswagen Beetle Hatchback 2012 0 0 \n", "Volvo C30 Hatchback 2012 0 0 \n", "Volvo 240 Sedan 1993 0 0 \n", "Volvo XC90 SUV 2007 0 0 \n", "smart fortwo Convertible 2012 0 0 \n", "\n", " Acura TL Type-S 2008 Acura TSX Sedan 2012 \\\n", "AM General Hummer SUV 2000 0 0 \n", "Acura RL Sedan 2012 0 2 \n", "Acura TL Sedan 2012 0 2 \n", "Acura TL Type-S 2008 3 0 \n", "Acura TSX Sedan 2012 0 5 \n", "... ... ... \n", "Volkswagen Beetle Hatchback 2012 0 0 \n", "Volvo C30 Hatchback 2012 0 0 \n", "Volvo 240 Sedan 1993 0 0 \n", "Volvo XC90 SUV 2007 0 0 \n", "smart fortwo Convertible 2012 0 0 \n", "\n", " Acura Integra Type R 2001 \\\n", "AM General Hummer SUV 2000 0 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 0 \n", "Volvo C30 Hatchback 2012 0 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 0 \n", "\n", " Acura ZDX Hatchback 2012 \\\n", "AM General Hummer SUV 2000 0 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 0 \n", "Volvo C30 Hatchback 2012 0 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 0 \n", "\n", " Aston Martin V8 Vantage Convertible 2012 \\\n", "AM General Hummer SUV 2000 0 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 0 \n", "Volvo C30 Hatchback 2012 0 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 0 \n", "\n", " Aston Martin V8 Vantage Coupe 2012 \\\n", "AM General Hummer SUV 2000 0 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 0 \n", "Volvo C30 Hatchback 2012 0 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 0 \n", "\n", " Aston Martin Virage Convertible 2012 ... \\\n", "AM General Hummer SUV 2000 0 ... \n", "Acura RL Sedan 2012 0 ... \n", "Acura TL Sedan 2012 0 ... \n", "Acura TL Type-S 2008 0 ... \n", "Acura TSX Sedan 2012 0 ... \n", "... ... ... \n", "Volkswagen Beetle Hatchback 2012 0 ... \n", "Volvo C30 Hatchback 2012 0 ... \n", "Volvo 240 Sedan 1993 0 ... \n", "Volvo XC90 SUV 2007 0 ... \n", "smart fortwo Convertible 2012 0 ... \n", "\n", " Toyota Camry Sedan 2012 \\\n", "AM General Hummer SUV 2000 0 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 0 \n", "Volvo C30 Hatchback 2012 0 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 0 \n", "\n", " Toyota Corolla Sedan 2012 \\\n", "AM General Hummer SUV 2000 0 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 0 \n", "Volvo C30 Hatchback 2012 0 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 0 \n", "\n", " Toyota 4Runner SUV 2012 \\\n", "AM General Hummer SUV 2000 0 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 0 \n", "Volvo C30 Hatchback 2012 0 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 0 \n", "\n", " Volkswagen Golf Hatchback 2012 \\\n", "AM General Hummer SUV 2000 0 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 0 \n", "Volvo C30 Hatchback 2012 0 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 0 \n", "\n", " Volkswagen Golf Hatchback 1991 \\\n", "AM General Hummer SUV 2000 0 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 0 \n", "Volvo C30 Hatchback 2012 0 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 0 \n", "\n", " Volkswagen Beetle Hatchback 2012 \\\n", "AM General Hummer SUV 2000 0 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 5 \n", "Volvo C30 Hatchback 2012 1 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 0 \n", "\n", " Volvo C30 Hatchback 2012 \\\n", "AM General Hummer SUV 2000 0 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 0 \n", "Volvo C30 Hatchback 2012 4 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 0 \n", "\n", " Volvo 240 Sedan 1993 Volvo XC90 SUV 2007 \\\n", "AM General Hummer SUV 2000 0 0 \n", "Acura RL Sedan 2012 0 0 \n", "Acura TL Sedan 2012 0 0 \n", "Acura TL Type-S 2008 0 0 \n", "Acura TSX Sedan 2012 0 0 \n", "... ... ... \n", "Volkswagen Beetle Hatchback 2012 0 0 \n", "Volvo C30 Hatchback 2012 0 0 \n", "Volvo 240 Sedan 1993 10 0 \n", "Volvo XC90 SUV 2007 0 7 \n", "smart fortwo Convertible 2012 0 0 \n", "\n", " smart fortwo Convertible 2012 \n", "AM General Hummer SUV 2000 1 \n", "Acura RL Sedan 2012 0 \n", "Acura TL Sedan 2012 0 \n", "Acura TL Type-S 2008 0 \n", "Acura TSX Sedan 2012 0 \n", "... ... \n", "Volkswagen Beetle Hatchback 2012 0 \n", "Volvo C30 Hatchback 2012 0 \n", "Volvo 240 Sedan 1993 0 \n", "Volvo XC90 SUV 2007 0 \n", "smart fortwo Convertible 2012 10 \n", "\n", "[196 rows x 196 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "frame" ] }, { "cell_type": "code", "execution_count": 14, "id": "72eacc1e", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(12, 10)\n", "# , dpi=400\n", " )\n", "\n", "ax.matshow(normalised_array)\n", "\n", "ax.set_title('Confusion matrix')\n", "# plt.colorbar(ax=ax)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 26, "id": "831a9fab", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(12, 10)\n", "# , dpi=400\n", " )\n", "sns.heatmap(normalised_array, xticklabels=False, yticklabels=False, cmap='inferno')\n", "\n", "plt.title('Confusion matrix')\n", "plt.show()" ] } ], "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.9.2" } }, "nbformat": 4, "nbformat_minor": 5 }