{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Plot Confusion Matrix\n", "\n", "This notebook plots the confusion matrix for the Amazon Comprehend Custom Classifier." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import re\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt \n", "from sklearn.metrics import confusion_matrix" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def format_test_data(test_data):\n", " df = pd.read_csv(test_data, header=None)\n", " num = df.count()\n", " matrix2 = df[df.columns[0]].to_numpy()\n", " list2 = matrix2.tolist()\n", " return list2\n", "\n", "\n", "def format_test_results(test_results):\n", " # Read in the predictions file\n", " file = open(test_results)\n", " predictions = file.read()\n", " file.close()\n", "\n", " p1 = re.compile('\"')\n", " predictions1 = p1.sub('', predictions)\n", "\n", " p2 = re.compile('.*(Classes: )')\n", " predictions2 = p2.sub('', predictions1)\n", "\n", " p3 = re.compile('(,).*')\n", " predictions3 = p3.sub('', predictions2)\n", "\n", " p4 = re.compile('.*(Name: )')\n", " predictions4 = p4.sub('', predictions3)\n", " \n", " # delete the last line\n", " predictions5 = predictions4[:-1]\n", "\n", " # convert from string to list\n", " final_predictions = list(predictions5.split(\"\\n\"))\n", "\n", " return final_predictions\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "#modify this to point to a file containing the downloaded classification predictions\n", "y_pred = format_test_results(\"LOCATION OF PREDICTED DATA\") \n", "\n", "y_true = format_test_data(\"Testing_Data_with_labels.csv\") \n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# of y_true: 200\n", "# of y_pred: 200\n" ] } ], "source": [ "y_true_count = len(y_true)\n", "y_pred_count = len(y_pred)\n", "\n", "print(\"# of y_true: \" + str(y_true_count))\n", "print(\"# of y_pred: \" + str(y_pred_count))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def plot_confusion_matrix(y_true, y_pred):\n", " cm = confusion_matrix(y_true, y_pred, labels=[ 'General Medicine', 'Radiology', 'Surgery', 'Urology'])\n", " \n", " ax= plt.subplot()\n", " sns.heatmap(cm, annot=True, ax = ax, vmin=0, vmax=50, fmt=\"d\", cmap=\"Blues\"); #annot=True to annotate cells\n", " \n", " # labels, title and ticks\n", " ax.set_xlabel('Predicted labels');\n", " ax.set_ylabel('True labels'); \n", " ax.set_title('Confusion Matrix'); \n", " ax.xaxis.set_ticklabels(['General Medicine', 'Radiology', 'Surgery', 'Urology']); \n", " ax.yaxis.set_ticklabels(['General Medicine', 'Radiology', 'Surgery', 'Urology']);\n", " plt.setp(ax.get_xticklabels(), ha=\"right\", rotation=90)\n", " plt.setp(ax.get_yticklabels(), ha=\"right\", rotation=0)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_confusion_matrix(y_true, y_pred)" ] } ], "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.7.9" } }, "nbformat": 4, "nbformat_minor": 4 }