{ "cells": [ { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The autoreload extension is already loaded. To reload it, use:\n", " %reload_ext autoreload\n" ] } ], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "\n", "from tqdm.notebook import tqdm\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import cv2 as cv\n", "from sklearn.metrics import roc_curve, auc\n", "\n", "from py.PlotUtils import get_percentiles\n", "from py.Dataset import Dataset\n", "from py.ImageUtils import display_images\n", "from py.Labels import LABELS\n", "\n", "DIR = '/home/kleinsteuber/vscode/ResizedSessions_NoBackup' # dataset directory\n", "SESSION_NAME = \"beaver_01\"\n", "CONFIGS = [\n", " {\n", " \"clusters\": 1024,\n", " \"step\": 20,\n", " \"random\": True,\n", " },\n", " {\n", " \"clusters\": 2048,\n", " \"step\": 20,\n", " \"random\": True,\n", " },\n", " {\n", " \"clusters\": 4096,\n", " \"step\": 20,\n", " \"random\": True,\n", " },\n", " {\n", " \"clusters\": 512,\n", " \"random\": True,\n", " },\n", " {\n", " \"clusters\": 1024,\n", " \"random\": True,\n", " },\n", " {\n", " \"clusters\": 2048,\n", " \"random\": True,\n", " },\n", " {\n", " \"clusters\": 4096,\n", " \"random\": True,\n", " },\n", " {\n", " \"clusters\": 8192,\n", " \"random\": True,\n", " },\n", " {\n", " \"clusters\": 1024,\n", " \"step\": 40,\n", " \"random\": True,\n", " },\n", " {\n", " \"clusters\": 2048,\n", " \"step\": 40,\n", " \"random\": True,\n", " },\n", " {\n", " \"clusters\": 4096,\n", " \"step\": 40,\n", " \"random\": True,\n", " },\n", "]" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 3 sessions\n", "Session 'Beaver_01' at folder: /home/kleinsteuber/vscode/ResizedSessions_NoBackup/VIELAAS_Spring_Session01-VIELAAS_Beaver_01\n", "Loaded scans.\n" ] } ], "source": [ "ds = Dataset(DIR)\n", "session = ds.create_session(SESSION_NAME)\n", "\n", "def read_results(clusters: int, step: int = 30, size: int = None, random: bool = False, motion: bool = False):\n", " # size = step by default\n", " if size is None:\n", " size = step\n", " \n", " # Get filename suffix\n", " suffix = \"\"\n", " if random:\n", " suffix += \"_random\"\n", " if motion:\n", " suffix += \"_motion\"\n", "\n", " # Read CSV\n", " test_labels = []\n", " test_df = []\n", " with open(f\"./bow_train_NoBackup/{session.name}/bow_eval_{step}_{size}_{clusters}{suffix}.csv\", \"r\") as f:\n", " for line in f:\n", " entries = line.split(\",\")\n", " # Get label\n", " filename = entries[0]\n", " img_number = int(filename[-9:-4])\n", " if img_number > LABELS[session.name][\"max\"] or img_number in LABELS[session.name][\"not_annotated\"]:\n", " continue\n", " is_normal = (img_number in LABELS[session.name][\"normal\"])\n", " test_labels.append(1 if is_normal else -1)\n", " # Get decision function values\n", " test_df.append([float(df) for df in entries[1:]])\n", " test_labels = np.array(test_labels)\n", " test_df = np.array(test_df)\n", " print(f\"{len(test_df)} test results with {len(test_labels)} labels\")\n", " return test_labels, test_df" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "def get_aucs(test_labels, test_dfs):\n", " aucs = []\n", " for i in range(test_dfs.shape[1]):\n", " fpr, tpr, thresholds = roc_curve(test_labels, test_dfs[:,i])\n", " aucs.append(auc(fpr, tpr))\n", " return aucs\n", "\n", "def plot_aucs(configs, savefile=None):\n", " aucs_list = [get_aucs(*read_results(**config)) for config in configs]\n", " plt.figure(figsize=(15, 10))\n", " bp_dict = plt.boxplot(aucs_list, medianprops={\"linewidth\": 1.5, \"color\": \"darkgoldenrod\"})\n", "\n", " for line in bp_dict['medians']:\n", " # get position data for median line\n", " x, y = line.get_xydata()[1] # top of median line\n", " # overlay median value\n", " plt.text(x - 0.25, y + 0.0005, f\"{y:.3f}\", verticalalignment=\"bottom\", horizontalalignment=\"center\", color=\"darkgoldenrod\") # draw above, centered\n", "\n", " plt.xticks(np.arange(1, len(configs) + 1), [f\"k={config['clusters']},s={config['step'] if 'step' in config else 30}\" for config in configs])\n", " plt.grid(True, ls=\"dotted\", lw=0.5)\n", " # plt.ylim((0.7, 0.9))\n", " # plt.legend()\n", " if savefile is not None:\n", " plt.savefig(savefile, bbox_inches=\"tight\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3AAAAI/CAYAAAA2kzvaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABxVElEQVR4nO3de5ycVYHn/+/p9L07gW4TbglKkAgJDKBEbkYF/SEoM4qzOsqIg25YdUYdb7OsbmZmnXGzzuLi6ozuMI447M4iMKCjKIwCCq4woAQGRGgg3OQSNOkkJOmuvlXX+f3R1Z1Op5PUt6knT52qz/v16hep6qrKeT51noecrqerQoxRAAAAAIDa15T3AAAAAAAAlWEBBwAAAACJYAEHAAAAAIlgAQcAAAAAiWABBwAAAACJYAEHAAAAAIloznsAs1m4cGE84ogj8h7GbkqlkpqaWPNWil4eenno5aGXh14eenno5aGXh16+Wm12zz339McYF828viYXcEcccYTWrVuX9zB2UygU1NnZmfcwkkEvD7089PLQy0MvD7089PLQy0MvX602CyH8arbra2+pWcMKhULeQ0gKvTz08tDLQy8PvTz08tDLQy8PvXypNWMBBwAAAACJYAFn6OjoyHsISaGXh14eenno5aGXh14eenno5aGXL7VmLOAMtfjLjbWMXh56eejloZeHXh56eejloZeHXr7UmqU12pwNDg7mPYSk0MtDLw+9PPTy0MtDLw+9PPTy0MuXWjMWcAAAAACQCBZwhra2tryHkBR6eejloZeHXh56eejloZeHXh56+VJrxgLO0Nxckx+bV7Po5aGXh14eenno5aGXh14eenno5UutGQs4Q2rnx+aNXh56eejloZeHXh56eejloZeHXr7UmrGAAwAAAIBEsIAztLa25j2EpNDLQy8PvTz08tDLQy8PvTz08tDLl1ozFnCG1J7cvNHLQy8PvTz08tDLQy8PvTz08tDLl1ozFnCGgYGBvIeQFHp56OWhl4deHnp56OWhl4deHnr5UmvGAg4AAAAAEsECzpDay6t5o5eHXh56eejloZeHXh56eejloZcvtWYs4Aypfchf3ujloZeHXh56eejloZeHXh56eejlS60ZCzhDaufH5o1eHnp56OWhl4deHnp56OWhl4devtSasYAzxBjzHkJS6OWhl4deHnp56OWhl4deHnp56OVLrRkLOENLS0veQ0gKvTz08tDLQy8PvTz08tDLQy8PvXypNWMBZ0jt/Ni80ctDLw+9PPTy0MtDLw+9PPTy0MuXWjMWcIZCoZD3EJJCLw+9PPTy0MtDLw+9KnPVVVfpuOOOU1dXl4477jhdddVVeQ8pCcwvD718qTVrznsAKSmVSnkPISn08tDLQy8PvTz08tBr36666iqtWbNGl19+uY455hg9/PDDWr16tSTp/PPPz3l0tY355aGXL7VmvAJnaG5mveugl4deHnp56OWhl4de+7Z27VpdfvnlOvPMM9XR0aEzzzxTl19+udauXZv30Goe88tDL19qzVjAGdrb2/MeQlLo5aGXh14eenno5aHXvvX19WnVqlWSdvZatWqV+vr68hxWEphfHnr5UmvGAs6Q2vmxeaOXh14eenno5aGXh177tnz5ct1+++2Sdva6/fbbtXz58jyHlQTml4devtSasYAzpHZ+bN7o5aGXh14eenno5aHXvq1Zs0arV6/WrbfeqpGREd16661avXq11qxZk/fQah7zy0MvX2rN0jrhM2dNTax3HfTy0MtDLw+9PPTy0GvfJt+o5KMf/aj6+vq0fPlyrV27ljcwqQDzy0MvX2rNWMAZOjs78x5CUujloZeHXh56eejloVdlzj//fJ1//vkaHh5O7ndu8sT88tDLl1qztJabORseHs57CEmhl4deHnp56OWhl4deHnp56OWhly+1ZizgDMViMe8hJIVeHnp56OWhl4deHnp56OWhl4devtSasYAzpHZ+bN7o5aGXh14eenno5aGXh14eenno5UutWVqjzVlq58fmjV4eenno5aGXh14eenno5aGXh16+1JqxgDOMjIzkPYSk0MtDLw+9PPTy0MtDLw+9PPTy0MuXWjPehdIwNjaW9xCSQq8JIYSqPl6MsaqPlyrml4deHnp56OWhl4deHnr5UmvGAs5Q7X+I1zt6Tah0wRVCYHFmYH556OWhl4deHnp56OWhly+1ZpxCaeju7s57CEmhF7LE/PLQy0MvD7089PLQy0MvX2rNWMAZUjs/Nm/0QpaYXx56eejloZeHXh56eejlS60ZCzjD6Oho3kNICr2QJeaXh14eenno5aGXh14eevlSa8YCDgAAAAASwQLOkNr5sXmjF7LE/PLQy0MvD7089PLQy0MvX2rNWMAZUnt5NW/0QpaYXx56eejloZeHXh56eejlS60ZCzhDak9u3uiFLDG/PPTy0MtDLw+9PPTy0MuXWjMWcAAAAACQCBZwhq6urryHkBR6IUvMLw+9PPTy0MtDLw+9PPTypdaMBZyhWCzmPYSk0AtZYn556OWhl4deHnp56OWhly+1ZizgDKl9yF/e6IUsMb889PLQy0MvD7089PLQy5daMxZwAAAAAJAIFnCG1M6PzRu9kCXml4deHnp56OWhl4deHnr5UmtW0QIuhHBOCOGREMJjIYRPz/L9A0II3wsh3B9CeDCE8P7y9YeHEG4NIfSVr/9YtTdgfyqVSnkPISn0QpaYXx56eejloZeHXh56eejlS63ZPhdwIYR5kr4q6c2SVkg6P4SwYsbNPizpoRjjCZLOkHRpCKFVUlHSp2KMyyWdKunDs9w3GUNDQ3kPISn0QpaYXx56eejloZeHXh56eejlS61ZJa/AnSzpsRjjEzHGUUlXS3rbjNtESfNDCEFSt6QtkooxxudjjPdKUoxxh6Q+SYurNnoAAAAAaCCVLOAWS3pm2uVntfsi7CuSlkvaIOkBSR+LMe7yWmQI4QhJr5T0s7kONm+dnZ15DyEp9EKWmF8eenno5aGXh14eenno5UutWXMFtwmzXBdnXD5b0n2S3iDp5ZJuDiH8NMa4XZJCCN2SviXp45PX7faXhPABSR+QpCVLlmh4eFijo6MaHR2VNPHLhcViceptPru6ulQqlaZe8pwMXygUJEkdHR1qamrS4OCgJKmtrU3Nzc1Tl1tbW9Xa2qqBgYGpy21tbRoYGFCMUS0tLWpra1OhUFCpVFJzc7NijBoeHlapVFJTU5M6Ozs1PDysYrE4dXlkZERjY2MKIai7u1sjIyNT29Dd3V1z29Te3j51udrbNDw8rBBCXW1Tls+TJPX399fVNmX5PM2bN0/FYrGutinL52lyHPW0TVk+Tzt27FChUKirbcryeZKkEEJdbVOWz1OhUNDw8HBdbVOWz9Nks3rapiyfp/HxcTU1NdXVNmX9PE3+m7XWtmlPQowz12IzbhDCaZI+G2M8u3z5M5IUY/z8tNvcIOmvYow/LV/+saRPxxh/HkJokfR9ST+MMX5xr39Z2cqVK+O6desquel+1d/fr4ULF+Y9jGTQyxNC0L72R+zE/PLQy0MvD7089PLQy0MvX602CyHcE2NcOfP6Sk6hvFvSshDC0vIbk7xb0vUzbvO0pDeW/6KDJR0t6Yny78RdLqmv0sUbAAAAAGB2+1zAxRiLkj4i6YeaeBOSf4oxPhhC+FAI4UPlm31O0ukhhAck/UjSf4ox9kt6jaT3SnpDCOG+8tdbMtmS/aCjoyPvISSFXsgS88tDLw+9PPTy0MtDLw+9fKk1q+R34BRjvFHSjTOuu2zanzdIetMs97tds/8OXZL2di4qdkcvZIn55aGXh14eenno5aGXh16+1JqlNdqcTf5SIipDL2SJ+eWhl4deHnp56OWhl4devtSasYADAAAAgESwgDNMvtU7KkMvZIn55aGXh14eenno5aGXh16+1JqxgDM0N1f0K4MooxeyxPzy0MtDLw+9PPTy0MtDL19qzVjAGVI7PzZv9EKWmF8eenno5aGXh14eenno5UutGQs4AAAAAEgECzhDa2tr3kNICr2QJeaXh14eenno5aGXh14eevlSa8YCzpDak5s3eiFLzC8PvTz08tDLQy8PvTz08qXWjAWcYWBgIO8hJIVeyBLzy0MvD7089PLQy0MvD718qTVjAQcAAAAAiWABZ0jt5dW80QtZYn556OWhl4deHnp56OWhly+1ZizgDKl9yF/e6IUsMb889PLQy0MvD7089PLQy5daMxZwhtTOj80bvZAl5peHXh56eejloZeHXh56+VJrxgLOEGPMewhJoReyxPzy0MtDLw+9PPTy0MtDL19qzZrzHkBKWlpa8h5CUuiFLDG/PPTy0GunEEJVHy+1fyhlgfnloZeHXr7UmrGAM6R2fmze6IUsMb889PLQa6dKFlwhBBZmBuaXh14eevlSa8YplIZCoZD3EJJCL2SJ+eWhl4deyBLzy0MvD718qTVjAWcolUp5DyEp9EKWmF8eennohSwxvzz08tDLl1ozFnCG5mbOOHXQC1lifnno5aEXssT88tDLQy9fas1YwBna29vzHkJS6IUsMb889PLQC1lifnno5aGXL7VmLOAMqZ0fmzd6IUvMLw+9PPRClphfHnp56OVLrRkLOENq58fmjV7IEvPLQy8PvZAl5peHXh56+VJrltYJnzlramK962jkXpsev1kP33KxYmlcS068UEee9qldvj82vE0PfO8iDW1/RrFU1NJTPjb1vV/e8Ifa9Ni/qLVzkV7zH+6eun79T/5SG9ffoBCa1Nq5SMf99t+p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hKB99cJO/f39WrhwYd7DSEYj9KrmPlTNXo2wbzfC/Komenno5aGXh14eevlqtVkI4Z4Y48qZ11dyCuXdkpaFEJaGEFolvVvS9bP8BQdIer2k705eF2P8taRnQghHl696o6SH5jB+JKi1tTXvISSFXh56eejloZeHXh56eejloZcvtWb7PIUyxlgMIXxE0g8lzZP0jRjjgyGED5W/f1n5pm+XdFOMceb7cH5U0pXlxd8Tkt5ftdGjpqW2M+SNXh56eejloZeHXh56eejloZcvtWYV/cZejPFGSTfOuO6yGZevkHTFLPe9T9JuL/2h/g0MDKi9vT3vYSSDXh56eejloZeHXh56eejloZcvtWZpfew4AAAAADQwFnDITGovR+eNXh56eejloZeHXh56eejloZcvtWYs4JCZ1D4UMW/08tDLQy8PvTz08tDLQy8PvXypNWMBh8xMfu4FKkMvD7089PLQy0MvD7089PLQy5daMxZwyEy9f65WtdHLQy8PvTz08tDLQy8PvTz08qXWjAUcMtPS0pL3EJJCLw+9PPTy0MtDLw+9PPTy0MuXWjMWcMhMaucT541eHnp56OWhl4deHnp56OWhly+1ZizgJIUQKvqq9LaYUCgU8h5CUujloZeHXh56eejloZeHXh56+VJrxgJOE+e9VvK1adOmim6HCaVSKe8hJIVeHnp56OWhl4deHnp56OWhly+1ZizgDM3NzXkPISn08tDLQy8PvTz08tDLQy8PvTz08qXWjAWcob29Pe8hJIVeHnp56OWhl4deHnp56OWhl4devtSasYAzpHZ+bN7o5aGXh14eenno5aGXh14eenno5UutGQs4Q2rnx+aNXh56eejloZeHXh56eejloZeHXr7UmrGAMzQ1kctBLw+9PPTy0MtDLw+9PPTy0MtDL19qzdIabc46OzvzHkJS6OWhl4deHnp56OWhl4deHnp56OVLrRkLOMPw8HDeQ0gKvTz08tDLQy8PvTz08tDLQy8PvXypNWMBZygWi3kPISn08tDLQy8PvTz08tDLQy8PvTz08qXWjAWcIbXzY/NGLw+9PPTy0MtDLw+9PPTy0MtDL19qzdIabc5SOz82b/Ty0MtDLw+9PPTy0MtDLw+9PPTypdaMBZxhZGQk7yEkhV4eenno5aGXh14eenno5aGXh16+1JqxgDOMjY3lPYSk0MtDLw+9PPTy0MtDLw+9PPTy0MuXWjMWcIYQQt5DSAq9PPTy0MtDLw+9PPTy0MtDLw+9fKk1YwFn6O7uznsISaGXh14eenno5aGXh14eenno5aGXL7VmLOAMqZ0fmzd6eejloZeHXh56eejloZeHXh56+VJrxgLOMDo6mvcQkkIvD7089PLQy0MvD7089PLQy0MvX2rNWMABAAAAQCJYwBlSOz82b/Ty0MtDLw+9PPTy0MtDLw+9PPTypdaMBZwhtZdX80YvD7089PLQy0MvD7089PLQy0MvX2rNWMAZUnty80YvD7089PLQy0MvD7089PLQy0MvX2rNWMABAAAAQCJYwBm6urryHkJS6OWhl4deHnp56OWhl4deHnp56OVLrRkLOEOxWMx7CEmhl4deHnp56OWhl4deHnp56OWhly+1ZizgDKl9yF/e6OWhl4deHnp56OWhl4deHnp56OVLrRkLOAAAAABIBAs4Q2rnx+aNXh56eejloZeHXh56eejloZeHXr7UmrGAM5RKpbyHkBR6eejloZeHXh56eejloZeHXh56+VJrxgLOMDQ0lPcQkkIvD7089PLQy0MvD7089PLQy0MvX2rNWMABAAAAQCJYwBk6OzvzHkJS6OWhl4deHnp56OWhl4deHnp56OVLrRkLOAAAAABIBAs4Q6FQyHsISaGXh14eenno5aGXh14eenno5aGXL7VmLOAAAAAAIBEs4AwdHR15DyEp9PLQy0MvD7089PLQy0MvD7089PKl1owFnKGpiVwOenno5aGXh14eenno5aGXh14eevlSa5bWaHM2ODiY9xCSQi8PvTz08tDLQy8PvTz08tDLQy9fas1YwAEAAABAIljAGdra2vIeQlLo5aGXh14eenno5aGXh14eenno5UutGQs4Q3Nzc95DSAq9PPTy0MtDLw+9PPTy0MtDLw+9fKk1YwFnSO382LzRy0MvD7089PLQy0MvD7089PLQy5daMxZwAAAAAJAIFnCG1tbWvIeQFHp56OWhl4deHnp56OWhl4deHnr5UmvGAs6Q2pObN3p56OWhl4deHnp56OWhl4deHnr5UmvGAs4wMDCQ9xCSQi9Po/QKIVTlq6Ojo2qP1dPTk3eWzDXK/KoWenno5aGXh14eevlSa5bWW64ASFqMsWqPFUKo6uMBAACkgFfgDKm9vJo3ennohSwxvzz0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Smptba2rbcr6eZr891etbdOehH39kn8I4TRJn40xnl2+/BlJijF+fpbb/rOka2OM3yxf/ryk90oqSmqXtEDSt2OMF+zt71y5cmVct27dXseVh/7+fi1cuDDvYSSDXh56eejloZeHXh56eejloZeHXr5abRZCuCfGuHLm9ZWcQnm3pGUhhKUhhFZJ75Z0/Sx/wQGSXi/pu5PXxRg/E2NcEmM8ony/H+9r8QYAAAAAmN0+T6GMMRZDCB+R9ENJ8yR9I8b4YAjhQ+XvX1a+6dsl3RRjTOttXAypnR+bN3p56OWhl4deHnp56OWhl4deHnr5UmtW0YcexBhvlHTjjOsum3H5CklX7OUxbpN0mzm+mpLah/zljV4eenno5aGXh14eenno5aGXh16+1JpV9EHemDD5S4ioDL089PLQy0MvD7089PLQy0MvD718qTVjAWfY1xu+YFf08tDLQy8PvTz08tDLQy8PvTz08qXWjAWcoaWlJe8hJIVeHnp56OWhl4deHnp56OWhl4devtSasYAzpHZ+bN7o5aGXh14eenno5aGXh14eenno5UutGQs4w+QH96Ey9PLQy0MvD7089PLQy0MvD7089PKl1owFnKFUKuU9hKTQy0MvD7089PLQy0MvD7089PLQy5daMxZwhubmij51AWX08tDLQy8PvTz08tDLQy8PvTz08qXWjAWcob29Pe8hJIVeHnp56OWhl4deHnp56OWhl4devtSasYAzpHZ+bN7o5aGXh14eenno5aGXh14eenno5UutGQs4Q2rnx+aNXh56eejloZeHXh56eejloZeHXr7UmrGAMzQ1kctBLw+9PPTy0MtDLw+9PPTy0MtDL19qzdIabc46OzvzHkJS6OWhl4deHnp56OWhl4deHnp56OVLrRkLOMPw8HDeQ0gKvTz08tDLQy8PvTz08tDLQy8PvXypNWMBZygWi3kPISn08tDLQy8PvTz08tDLQy8PvTz08qXWjAWcIbXzY/NGLw+9PPTy0MtDLw+9PPTy0MtDL19qzdIabc5SOz82b/Ty0MtDLw+9PPTy0MtDLw+9PPTypdaMBZxhZGQk7yEkhV4eenno5aGXh14eenno5aGXh16+1JqxgDOMjY3lPYSk0MtDLw+9PPTy0MtDLw+9PPTy0MuXWjMWcIYQQt5DSAq9PPTy0MtDLw+9PPTy0MtDLw+9fKk1YwFn6O7uznsISaGXh14eenno5aGXh14eenno5aGXL7VmLOAMqZ0fmzd6eejloZeHXh56eejloZeHXh56+VJrxgKuAldddZWOO+449fT06LjjjtNVV12V95CSMDo6mvcQkkIvD7089PLQy0MvD7089PLQy5das+a8B1DrrrrqKq1Zs0aXX365jjnmGD388MNavXq1JOn888/PeXQAAAAAGgmvwO3D2rVrdfnll+vMM89UT0+PzjzzTF1++eVau3Zt3kOreamdT5w3enno5aGXh14eenno5aGXh16+1JqxgNuHvr4+rVq1StLOl1dXrVqlvr6+PIeVhNRejs4bvTz08tDLQy8PvTz08tDLQy9fas1YwO3D8uXLdfvtt0va+eTefvvtWr58eZ7DSkJqO0Pe6OWhl4deHnp56OWhl4deHnr5UmvGAm4f1qxZo9WrV+vWW2/V2NiYbr31Vq1evVpr1qzJe2gAAAAAGgxvYrIPk29U8tGPflR9fX1avny51q5dyxuYVKCrqyvvISSFXh56eejloZeHXh56eejloZcvtWYs4Cpw/vnn6/zzz9eOHTs0f/78vIeTjGKxmPcQkkIvD7089PLQy0MvD7089PLQy5daM06hNKT2IX95o5eHXh56eejloZeHXh56eejloZcvtWYs4AAAAAAgESzgDKmdH5s3enno5aGXh14eenno5aGXh14eevlSa8YCzlAqlfIeQlLo5aGXh14eenno5aGXh14eenno5UutGQs4w9DQUN5DSAq9PPTy0MtDLw+9PPTy0MtDLw+9fKk1YwEHAAAAAIlgAWfo7OzMewhJoZeHXh56eejloZeHXh56eejloZcvtWYs4AAAAAAgESzgDIVCIe8hJIVeHnp56OWhl4deHnp56OWhl4devtSasYADAAAAgESwgDN0dHTkPYSk0MtDLw+9PPTy0MtDLw+9PPTy0MuXWjMWcIamJnI56OWhl4deHnp56OWhl4deHnp56OVLrVlao83Z4OBg3kNICr089PLQy0MvD7089PLQy0MvD718qTVjAQcAAAAAiWABZ2hra8t7CEmhl4deHnp56OWhl4deHnp56OWhly+1ZizgDM3NzXkPISn08tDLQy8PvTz08tDLQy8PvTz08qXWjAWcIbXzY/NGLw+9PPTy0MtDLw+9PPTy0MtDL19qzVjAAQAAAEAi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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_aucs(CONFIGS, savefile=\"plots/approach3/boxplot_random.pdf\")" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "def get_percentile_vals(test_labels, test_dfs, percentile=0.95):\n", " percentiles = []\n", " for i in range(test_dfs.shape[1]):\n", " fpr, tpr, thresholds = roc_curve(test_labels, test_dfs[:,i])\n", " percentiles.append(get_percentiles(fpr, tpr, thresholds, percentiles=[percentile], verbose = False)[0])\n", " return percentiles\n", "\n", "def plot_percentiles(configs, savefile=None):\n", " percentiles_list = [get_percentile_vals(*read_results(**config)) for config in configs]\n", " plt.figure(figsize=(15, 10))\n", " bp_dict = plt.boxplot(percentiles_list, medianprops={\"linewidth\": 1.5, \"color\": \"blue\"})\n", "\n", " for line in bp_dict['medians']:\n", " # get position data for median line\n", " x, y = line.get_xydata()[1] # top of median line\n", " # overlay median value\n", " plt.text(x - 0.25, y + 0.0005, f\"{y:.3f}\", verticalalignment=\"bottom\", horizontalalignment=\"center\", color=\"blue\") # draw above, centered\n", "\n", " plt.xticks(np.arange(1, len(configs) + 1), [f\"k={config['clusters']},s={config['step'] if 'step' in config else 30}\" for config in configs])\n", " plt.grid(True, ls=\"dotted\", lw=0.5)\n", " # plt.ylim((0.7, 0.9))\n", " # plt.legend()\n", " if savefile is not None:\n", " plt.savefig(savefile, bbox_inches=\"tight\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n", "695 test results with 695 labels\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2oAAAI/CAYAAAAGHyr7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABlPElEQVR4nO3dfXwd9WHn++9P1oMtKwYLhzQgUkJJwMEYltrk4VLWfvUmFJJNmodSvLndZjGbpSF0TW+bh5c3TZbWG/LQBRbSst3rbHKzwaRNSuG2QJImJlteJTUmBQo4BIjT2DRsEFYA61k+c/+YI0saS/L5ynM08zvzeb9eelkP54x/89HMSD/NnHNCkiQCAAAAAJRHW9EDAAAAAADMxEQNAAAAAEqGiRoAAAAAlAwTNQAAAAAoGSZqAAAAAFAyTNQAAAAAoGTai/qPV61alZx66qlF/fdzqtVqamtj/tooenno5aOZh14eenno5aGXh14eennK2uvBBx/sT5Lk5bN9rbCJ2qmnnqrdu3cX9d/PaWhoSN3d3UUPIxr08tDLRzMPvTz08tDLQy8PvTz08pS1Vwjhn+b6WvmmlQUbGhoqeghRoZeHXj6aeejloZeHXh56eejloZcnxl5M1AAAAACgZJioZSxbtqzoIUSFXh56+WjmoZeHXh56eejloZeHXp4YezFRyyjjgwzLjF4eevlo5qGXh14eenno5aGXh16eGHvFN+ImGxwcLHoIUaGXh14+mnno5aGXh14eenno5aGXJ8ZeTNQAAAAAoGSYqGV0dXUVPYSo0MtDLx/NPPTy0MtDLw+9PPTy0MsTYy8mahnt7YW9tFyU6OWhl49mHnp56OWhl4deHnp56OWJsRcTtYwYr18tEr089PLRzEMvD7089PLQy0MvD708MfZiogYAAAAAJcNELaOzs7PoIUSFXh56+WjmoZeHXh56eejloZeHXp4YezFRy4jxm1gkenno5aOZh14eenno5aGXh14eenli7MVELePgwYNFDyEq9PLQy0czD7089PLQy0MvD7089PLE2IuJGgAAAACUDBO1jBhPixaJXh56+WjmoZeHXh56eejloZeHXp4YezFRy4jxxfCKRC8PvXw089DLQy8PvTz08tDLQy9PjL2YqGXEeP1qkejloZePZh56eejloZeHXh56eejlibEXE7WMJEmKHkJU6OWh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xSZt2SJ96lPp49MmTfZasiS97HH//vTs3KOPpl///Oelz31O+sVflF56KT1bV2VV3b4AxI/jV+vj6WIAoIT6+mae7dq/XzrppJm32b07vSRSkvr7pbvukj772U79m38zdZvjj5c2bEgfp7ZmjXTmmdI3vpF+7Qc/kP76r5u5FiiD3t5eDQwM5La8kP2LwQKtXLlSBw4cyGVZANCKmKhlcBrZQy8PvXxVbbZ+vfTkk9LevdLJJ0u33SbdeuvM2+zdO/X++94nve1t0lveIj33nNTRkU7Shoelv/mb9AlHJOmnP00vh6zVpD/8w5mXTVZRFbavgYEBJbOdol2AF198UStWrMhlWXlN+ICqqsLxq+q49DGDFw/00MtDL19Vm7W3SzffnD6b4+rV0qWXpk+1f8st6dtcurq69JOfSBs3SmvXphO+N785ncRJ6bNHvva16Zm1k06S/u2/XZz1Kauqbl8LRS+gPNgfW1/I669srnXr1iW7d+8u5P+ez/PPP68TTjih6GFEg16eKvQKIeT213sp32Z5jy0veY6LXh56earQK09VWMc80ctThd8p8lTW7SuE8GCSJOtm+xpn1DLK+A0sM3p56OWjmYdeHnp56AWUB/tj6+MxahkdHR1FDyEq9PLQy9fqzbZskaSd2rAhn+VNTByv9tyO7NfntaDSavXtK2/0AsqD/bH1cUYtg+t9PfTy0MtHM09bG4d1B9uXh15AebA/tj7OqGUMDQ1p6dKlRQ8jGvTy0MvX6s1uuEG68caNuvfefC5hOXDgZ+rt7c1lWSFcI2lLLssqq1bfvvJGL6A82B9bH396zajVakUPISr08tDLRzNPlXvdc490xhnS6adL11039+0eeCB9QfCvfjXttW9f+iyZq1enz6x5441Tt33oIekNb5DOPVdaty598fAqq/L2BZQN+2PrY6KW0Z7fgzsqgV4eevlo5qlqr0OHpKuuku6+W3r88fRlCB5/fPbbffjD6cseSGmv9nbpj/5I2rNH+u53pc99buq+H/qQ9PGPpxO2a69NP66yqm5fQBmxP7Y+JmoZnEL20MtDLx/NPFXttWtXeibttNOkzk7pssukO+448nY33SS9+93pi35Laa9XvlI677z045e9LD2z9swz6cchSC++mL7/wgvpa89VWVW3L6CM2B9bHxO1jKGhoaKHEBV6eejlo5mnqr2e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WNFDiAq9PPTy0cxDLw+9PPTy0AvNxPbV+tqLHgAAAACAKXk//ixJklyXh8XBRC2D63099PLQy0czD7089PLQy0MvLFQjE6sQAhOwFseljxmcRvbQy0MvH8089PLQy0MvD70AHAsmahkcVD308tDLRzMPvTz08tDLQy8Ax4KJGgAAAACUDBO1jOXLlxc9hKjQy0MvH8089PLQy0MvD70AHAsmahkTExNFDyEq9PLQy0czD7089PLQy0MvAMeCiVoGLx7ooZeHXj6aeejloZeHXh56ATgWTNQAAAAAoGSYqGVwPbmHXh56+WjmoZeHXh56eegF4FgwUcuo1WpFDyEq9PLQy0czD7089PLQy0MvAMeCiVrG8PBw0UOICr089PLRzEMvD7089PLQC8CxYKIGAAAAACXDRC2ju7u76CFEhV4eevlo5qGXh14eennoBeBYMFEDAAAAgJJhopYxNDRU9BCiQi8PvXw089DLQy8PvTz0AnAsmKgBAAAAQMkwUctYtmxZ0UOICr089PLRzEMvD7089PLQC8CxaC96AGXT1sbc1UEvD718NPPQy0MvD708VejV29urgYGB3JYXQshlOStXrtSBAwdyWRZQlNY/gpgGBweLHkJU6OWhl49mHnp56OWhl6cKvQYGBpQkSS5vzz33XG7LynPyCBSFiRoAAAAAlAwTtYyurq6ihxAVenno5aOZh14eenno5aGXh17ATEzUMtrbedieg14eevlo5qGXh14eenno5aEXMBMTtYwqXE+eJ3p56OWjmYdeHnp56OWhl4dewExM1AAAAACgZJioZXR2dhY9hKjQy0MvH8089PLQy0MvD7089AJmYqKWwUHCQy8PvXw089DLQy8PvTz08tALmImJWsbBgweLHkJU6OWhl49mHnp56OWhl4deHnoBMzFRq9uxY4fWrFmjV7ziFVqzZo127NhR9JAAAAAAVBTPg6p0krZ161Zt375da9eu1SOPPKLNmzdLkjZt2lTw6MqNyxQ89PLRzEMvD7089PLQy0MvYCbOqEnatm2btm/fro0bN6qnp0cbN27U9u3btW3btqKHVnq8OKWHXj6aeejloZeHXh56eegFzMRETdKePXt0wQUXSJq6PvqCCy7Qnj17ihxWFLie3EMvH8089PLQy0MvD7089AJmYqImafXq1brvvvskSUmSSJLuu+8+rV69ushhRWGyFxpDLx/NPPTy0MtDLw+9PPQCZmKiJmnr1q3avHmzdu7cKUnauXOnNm/erK1btxY8svLr6OgoeghRoZePZh56eejloZeHXh56ATPxZCKaesKQq6++Wnv27NHq1au1bds2nkikAVxP7qGXj2Yeenno5aGXh14eegEzMVGr27RpkzZt2qQDBw6ot7e36OFEY2hoSEuXLi16GNGgl49mHnp56OWhl4deHnoBM3HpY0atVit6CFGhl4dePpp56OWhl4deHnp56AXMxEQto72dk4wOenno5aOZh14eenno5aGXh17ATEzUMjjl7qGXh14+mnno5aGXh14eennoBczERC1jaGio6CFEhV4eevlo5qGXh14eenno5aEXMBMTtQyuj/bQy0MvH8089PLQy0MvD7089AJmYqKW0dZGEge9PPTy0cxDLw+9PPTy0MtDL2Am9oiM7u7uoocQFXp56OWjmYdeHnp56OWhl4dewExM1DJGRkaKHkJU6OWhl49mHnp56OWhl4deHnoBM/E8qBkTExNFDyEq9PLQy0czD7089PLQy0MvD72Q1dvbq4GBgdyWF0LIZTkrV67UgQMHclnWfJioZXB9tIdeHnr5aOahl4deHnp56OWhF7IGBgaUJEkuyzpw4IB6e3tzWVZeE76jYY/I4PpoD7089PLRzEMvD7089PLQy0MvNFOM2xcTtYzR0dGihxAVenno5aOZh14eenno5aGXh15ophi3LyZqGePj40UPISr08tDLRzMPvTz08tDLQy8PvdBMMW5fTNQyFuua01ZBLw+9fDTz0MtDLw+9PPTy0AvNFOP2xUQto6enp+ghRIVeHnr5aOahl4deHnp56OWhF5opxu2LiVpGjNevFoleHnr5aOahl4deHnp56OWhF5opxu2LiVrG2NhY0UOICr089PLRzEMvD7089PLQy0MvNFOM2xcTNQAAAAAoGSZqGTFev1okenno5aOZh14eenno5aGXh15ophi3LyZqGTGeFi0SvTz08tHMQy8PvTz08tDLQy80U4zbFxO1jBi/iUWil4dePpp56OWhl4deHnp56IVminH7YqIGAAAAACXDRC1j+fLlRQ8hKvTy0MtHMw+9PPTy0MtDLw+90Ewxbl9M1DImJiaKHkJU6OWhl49mHnp56OWhl4deHnqhmWLcvpioZcT4YnhFopeHXj6aeejloZeHXh56eeiFZopx+2KiVrdjxw6tWbNGr3jFK7RmzRrt2LGj6CEBAAAAqKj2ogdQBjt27NDWrVu1fft2/eIv/qIefPBBbd68WZK0adOmgkdXbjFe71skevlo5qGXh14eenno5aEXminG7YszapK2bdum7du3a+PGjVqyZIk2btyo7du3a9u2bUUPrfRqtVrRQ4gKvXw089DLQy8PvTz08tALjbrnHumMM6TTT5euu+7Ir99xh7R2rXTuudK6ddJ9901tX5dfLp14orRmzcz7/PmfS2edJbW1Sbt3N38dGsFETdKePXt0wQUXSJKGh4clSRdccIH27NlT5LCiMNkLjaGXj2Yeenno5aGXh14eeqERhw5JV10l3X239Pjj0o4d6b/T/fIvSw8/LD30kPT5z0tXXDG1fb3vfelEL2vNGukv/kK68MKmr0LDmKhJWr16te67774Zn7vvvvu0evXqgkYEAAAAIGvXrvRM2mmnSZ2d0mWXpWfQpuvpkUJI3x8cnHpfSidivb1HLnf16vQsXZkwUZO0detWbd68WTt37lRHR4d27typzZs3a+vWrUUPrfS6u7uLHkJU6OWjmYdeHnp56OWhl4deaMQzz0innDL1cV9f+rms22+XzjxTeutb07NqMW5fPJmIpp4w5Oqrr9aePXu0evVqbdu2jScSAQAAAEokSY783PQzZpPe+c707X/9L+ljH5PuvLP5Y8sbE7W6TZs2adOmTerv79eqVauKHk40hoaGovwLRVHo5atKszDbT5mCrVy5sughNF1Vtq+80MtDLw+90Ii+PmnfvqmP9++XTjpp7ttfeKH09NPSvn3DOuOMuLYvJmoAULBktj8PLlAIIdflAQBQJuvXS08+Ke3dK518snTbbdKtt868zVNPSb/wC+mZtu99Txobk3p74/vZyGPUMpYtW1b0EKJCLw+9fDRDM7F9eejloZeHXmhEe7t0883SRRelTwBy6aXp0+rfckv6Jklf+1r6LI7nnps+Q+RXviJ1d6fb16ZN0hvfKD3xRHp2bvv29D63355+fP/96ePaLrqomPWbLhT1l9d169Ylu8vyIgXTDA8Pc6Aw0MtThV55n9HJs1kVzjaxjp4qbF/08tDLQ6/isI6esm5fIYQHkyRZN9vXuPQxY3BwsOV/kc4TvTz08tEMzcT25aGXh14eemG6LVskaac2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Y8FELePgwYNFDyEq9PLQy0czD73QTGxfHnoBOBZM1AAAAACgZHiMWgaXKXjo5aGXj2YeeqGZ2L489AIWR6NP8NPo7cryBD9M1DJ4MU8PvTz08tHMQy80E9uXh17A4mhkYjU6OhrdPsmljxlcT+6hl4dePpp56JUKITT01uhtkWL78tALC5Xn8YtjWCrG/ZGJWkZZTnXGgl4eevlo5qFXKkmSht6ee+65hm6HFC089MJC5Xn8YjtMxdiBiVpGR0dH0UOICr089PLRzEMvD7089PLQC83E9uWJsRcTtYzYrl0tGr089PLRzEMvD7089PLQC83E9uWJsRcTtYyhoaGihxAVenno5aOZh14eenno5aEXmontyxNjLyZqGbVareghRIVeHnr5aOahl4deHnp56IVmYvvyxNiLiVpGezuvWOCgl4dePpp56OWhl4deHnqhmdi+PDH2YqKWsXTp0qKHEBV6eejlo5mHXh56eejloReaie3LE2MvJmoZMV6/WiR6eejlo5mHXh56eejloReaie3LE2MvJmoZMV6/WiR6eejlo5mHXh56eejloReaie3LE2MvJmoZbW0kcdDLQy8fzTz08tDLQy8PvdBMbF+eGHvFN+Im6+7uLnoIUaGXh14+mnno5aGXh14eeqGZ2L48MfZiopYxMjJS9BCiQi8PvXw089DLQy8PvTz0QjOxfXli7MVELWNiYqLoIUSFXh56+WjmoZeHXh56eeiFZmL78sTYi4laRozXrxaJXh56+WjmoZeHXh56eeiFZmL78sTYK74RN1mM168WiV4eevlo5qGXh14eennohWZi+/LE2IuJWsbo6GjRQ4gKvTz08tHMQy8PvTz08tALzcT25YmxFxO1jPHx8aKHEBV6eejlo5mHXh56eejloReaie3LE2MvJmoZIYSihxAVenno5aOZh14eenno5aEXmontyxNjLyZqGT09PUUPISr08tDLRzMPvTz08tDLQy80E9uXJ8ZeTNQyYrx+tUj08tDLRzMPvTz08tDLQy80E9uXJ8ZeTNQyxsbGih5CVOjloZePZh56eejloZeHXmgmti9PjL2YqAEAAABAyTBRy4jx+tUi0ctDLx/NPPTy0MtDLw+90ExsX54YezFRy4jxtGiR6OWhl49mHnp56OWhl4deqRBCQ2+N3hYpti9PjL2YqGXE+E0sEr089PLR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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_percentiles(CONFIGS, savefile=\"plots/approach3/boxplot_random_tnr95.pdf\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3.10.4 ('pytorch-gpu')", "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.10.4" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "17cd5c528a3345b75540c61f907eece919c031d57a2ca1e5653325af249173c9" } } }, "nbformat": 4, "nbformat_minor": 2 }