bar_plot.ipynb 138 KB
Newer Older
Paul Primus's avatar
Paul Primus committed
1
2
3
4
{
 "cells": [
  {
   "cell_type": "code",
Paul Primus's avatar
Paul Primus committed
5
   "execution_count": 207,
Paul Primus's avatar
Paul Primus committed
6
7
8
9
10
11
   "outputs": [],
   "source": [
    "from pymongo import MongoClient\n",
    "from matplotlib import pyplot as plt\n",
    "import numpy as np\n",
    "from dcase2020_task2.data_sets.mcm_dataset import INVERSE_CLASS_MAP, TRAINING_ID_MAP, CLASS_MAP\n",
Paul Primus's avatar
Paul Primus committed
12
    "from scipy.stats import rankdata\n",
Paul Primus's avatar
Paul Primus committed
13
    "\n",
Paul Primus's avatar
Paul Primus committed
14
    "baseline_auc = {\n",
Paul Primus's avatar
Paul Primus committed
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
    "    'name': 'baseline',\n",
    "    0: {0: 0.5441, 2: 0.7340, 4: 0.6161, 6: 0.7392},\n",
    "    1: {0: 0.6715, 2: 0.6153, 4: 0.8833, 6: 0.7455},\n",
    "    2: {0: 0.9619, 2: 0.7897, 4: 0.9430, 6: 0.6959},\n",
    "    3: {1: 0.8136, 2: 0.8597, 3: 0.6330, 4: 0.8445},\n",
    "    4: {1: 0.7807, 2: 0.6416, 3: 0.7535},\n",
    "    5: {0: 0.6876, 2: 0.6818, 4: 0.7430, 6: 0.5390}\n",
    "    }\n",
    "    \n",
    "baseline_pauc = {\n",
    "    'name': 'baseline',\n",
    "    0: {0: 0.4937, 2: 0.5481, 4: 0.5326, 6: 0.5235},\n",
    "    1: {0: 0.5674, 2: 0.5810, 4: 0.6710, 6: 0.5802},\n",
    "    2: {0: 0.8144, 2: 0.6368, 4: 0.7198, 6: 0.4902},\n",
    "    3: {1: 0.6840, 2: 0.7772, 3: 0.5521, 4: 0.6897},\n",
    "    4: {1: 0.6425, 2: 0.5601, 3: 0.6103},\n",
    "    5: {0: 0.5170, 2: 0.5183, 4: 0.5197, 6: 0.4843}\n",
    "}\n",
    "\n",
34
35
36
37
38
39
40
41
42
43
    "baseline_both = {}\n",
    "for t in baseline_auc:\n",
    "    if t == 'name':\n",
    "        baseline_both[t] = 'baseline'\n",
    "        continue\n",
    "    else:\n",
    "        baseline_both[t] = {}\n",
    "    for i in baseline_auc[t]:\n",
    "        baseline_both[t][i] = np.array([baseline_auc[t][i], baseline_pauc[t][i]])\n",
    "\n",
Paul Primus's avatar
Paul Primus committed
44
    "\n",
45
    "def get_experiment(runs, name):\n",
Paul Primus's avatar
Paul Primus committed
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
    "    experiment_dict = dict()\n",
    "    for i in range(6):\n",
    "        experiment_dict[i] = dict()\n",
    "    \n",
    "    experiment_dict['name'] = name\n",
    "    \n",
    "    for experiment in runs:\n",
    "        if experiment['config'].get('descriptor') == name:\n",
    "            machine_dict = experiment_dict.get(experiment['config']['machine_type'])\n",
    "            result = experiment.get('result')\n",
    "            machine_type = INVERSE_CLASS_MAP[experiment['config']['machine_type']]\n",
    "            machine_id = experiment['config']['machine_id']\n",
    "            \n",
    "            if result:\n",
    "                machine_dict[experiment['config']['machine_id']] = result.get(\n",
    "                    machine_type, {}\n",
    "                ).get(\n",
Paul Primus's avatar
Paul Primus committed
63
    "                    f'json://{machine_id}', -1\n",
64
    "                ).get('py/tuple', [0, 0])[:2]\n",
Paul Primus's avatar
Paul Primus committed
65
    "            else:\n",
66
    "                machine_dict[experiment['config']['machine_id']] = np.array([0, 0])\n",
Paul Primus's avatar
Paul Primus committed
67
68
69
70
    "    return experiment_dict\n",
    "\n",
    "\n",
    "def get_record(experiment):\n",
71
    "    record = []\n",
Paul Primus's avatar
Paul Primus committed
72
73
74
75
    "    for i in range(6):\n",
    "        for j in TRAINING_ID_MAP[i]:\n",
    "                v = experiment.get(i)\n",
    "                if v:\n",
76
    "                    v = v.get(j, [0, 0])\n",
Paul Primus's avatar
Paul Primus committed
77
    "                else:\n",
78
79
80
81
    "                    v = np.array([0, 0])\n",
    "                record.append(np.array(v))\n",
    "    assert len(record) == 23\n",
    "    return  experiment['name'], record"
Paul Primus's avatar
Paul Primus committed
82
83
84
85
86
87
88
89
90
91
92
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n",
     "is_executing": false
    }
   }
  },
  {
   "cell_type": "code",
Paul Primus's avatar
Paul Primus committed
93
   "execution_count": 208,
Paul Primus's avatar
Paul Primus committed
94
95
   "outputs": [],
   "source": [
Paul Primus's avatar
Paul Primus committed
96
    "client = MongoClient('mongodb://student2.cp.jku.at:27017/')"
Paul Primus's avatar
Paul Primus committed
97
98
99
100
101
102
103
104
105
106
107
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n",
     "is_executing": false
    }
   }
  },
  {
   "cell_type": "code",
Paul Primus's avatar
Paul Primus committed
108
   "execution_count": 216,
Paul Primus's avatar
Paul Primus committed
109
110
   "outputs": [],
   "source": [
Paul Primus's avatar
Paul Primus committed
111
    "# experiments_made = [r for r in client.dcase2020_2_madog.runs.find({\"experiment.name\": \"dcase2020_task2_BaselineExperiment\"})]\n",
Paul Primus's avatar
Paul Primus committed
112
113
    "# experiments_baseline = [r for r in client.dcase2020_task2_ae_baseline_gridsearch.runs.find({\"experiment.name\": \"dcase2020_task2_BaselineExperiment\"})]\n",
    "# experiments_classification = [r for r in client.dcase2020_task2_complement_classification_gridsearch.runs.find({\"experiment.name\": \"dcase2020_task2_ClassificationExperiment\"})]\n",
Paul Primus's avatar
Paul Primus committed
114
    "experiments_conv_class = [r for r in client.dcase2020_task2_conv_complement_classification_gridsearch.runs.find({\"experiment.name\": \"dcase2020_task2_ClassificationExperiment\"})]"
Paul Primus's avatar
Paul Primus committed
115
116
117
118
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
Paul Primus's avatar
Paul Primus committed
119
     "name": "#%%\n",
Paul Primus's avatar
Paul Primus committed
120
121
122
123
124
125
     "is_executing": false
    }
   }
  },
  {
   "cell_type": "code",
Paul Primus's avatar
Paul Primus committed
126
   "execution_count": 217,
Paul Primus's avatar
add    
Paul Primus committed
127
   "outputs": [],
Paul Primus's avatar
Paul Primus committed
128
   "source": [
Paul Primus's avatar
Paul Primus committed
129
    "# print(len(experiments_classification))\n",
Paul Primus's avatar
add    
Paul Primus committed
130
131
    "# print(len(experiments_classification))\n",
    "# print(len(experiments_classification))"
Paul Primus's avatar
Paul Primus committed
132
133
134
135
136
137
138
139
140
141
142
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n",
     "is_executing": false
    }
   }
  },
  {
   "cell_type": "code",
Paul Primus's avatar
Paul Primus committed
143
   "execution_count": 218,
Paul Primus's avatar
Paul Primus committed
144
145
146
   "outputs": [
    {
     "data": {
Paul Primus's avatar
Paul Primus committed
147
      "text/plain": "8"
Paul Primus's avatar
Paul Primus committed
148
149
150
     },
     "metadata": {},
     "output_type": "execute_result",
Paul Primus's avatar
Paul Primus committed
151
     "execution_count": 218
Paul Primus's avatar
Paul Primus committed
152
153
154
    }
   ],
   "source": [
Paul Primus's avatar
Paul Primus committed
155
    "experiments = experiments_conv_class # experiments_conv_class # experiments_conv_class # experiments_classification + experiments_baseline + \n",
Paul Primus's avatar
Paul Primus committed
156
157
158
    "descriptors = set()\n",
    "for experiment in experiments:\n",
    "    descriptors = descriptors.union(set([experiment['config']['descriptor']]))\n",
Paul Primus's avatar
Paul Primus committed
159
160
    "\n",
    "descriptors = list(descriptors)\n",
Paul Primus's avatar
Paul Primus committed
161
162
163
164
165
166
167
168
169
170
171
172
    "len(descriptors)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n",
     "is_executing": false
    }
   }
  },
  {
   "cell_type": "code",
Paul Primus's avatar
Paul Primus committed
173
   "execution_count": 219,
174
   "outputs": [],
Paul Primus's avatar
Paul Primus committed
175
   "source": [
176
177
178
    "n, m = get_record(baseline_both)\n",
    "names = [n]\n",
    "metrics = [np.array(m)]\n",
Paul Primus's avatar
Paul Primus committed
179
    "\n",
Paul Primus's avatar
Paul Primus committed
180
    "for descriptor in descriptors:\n",
181
    "    n, m = get_record(\n",
Paul Primus's avatar
Paul Primus committed
182
183
    "            get_experiment(\n",
    "                experiments, \n",
184
    "                descriptor\n",
Paul Primus's avatar
Paul Primus committed
185
    "            )\n",
Paul Primus's avatar
Paul Primus committed
186
    "        )\n",
187
188
    "    names.append(n)\n",
    "    metrics.append(np.array(m))\n"
Paul Primus's avatar
Paul Primus committed
189
190
191
192
193
194
195
196
197
198
199
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n",
     "is_executing": false
    }
   }
  },
  {
   "cell_type": "code",
Paul Primus's avatar
Paul Primus committed
200
   "execution_count": 220,
201
202
203
204
   "outputs": [
    {
     "name": "stdout",
     "text": [
Paul Primus's avatar
Paul Primus committed
205
      "(9, 23, 2)\n(9,)\n"
206
207
208
209
     ],
     "output_type": "stream"
    }
   ],
Paul Primus's avatar
Paul Primus committed
210
   "source": [
211
212
213
    "data = np.array(metrics)\n",
    "print(data.shape)\n",
    "\n",
Paul Primus's avatar
Paul Primus committed
214
    "auc_ranks = []\n",
215
    "pauc_ranks = []\n",
Paul Primus's avatar
Paul Primus committed
216
217
    "idxes = [0, 4, 8, 12, 16, 19, 23]\n",
    "for i, j in zip(idxes[:-1], idxes[1:]):\n",
218
219
    "    average_auc = data[:, i:j, 0].mean(axis=1)\n",
    "    average_pauc = data[:, i:j, 1].mean(axis=1)\n",
Paul Primus's avatar
Paul Primus committed
220
    "    auc_ranks.append(rankdata(-average_auc))\n",
221
    "    pauc_ranks.append(rankdata(-average_pauc))\n",
Paul Primus's avatar
Paul Primus committed
222
223
224
225
    "\n",
    "# print(np.array(list(zip(*auc_ranks))).shape)\n",
    "# print(np.stack([np.array(list(zip(*auc_ranks))), np.array(list(zip(*pauc_ranks)))], axis=-1).shape)\n",
    "\n",
226
227
228
229
    "ranks = np.stack([np.array(list(zip(*auc_ranks))), np.array(list(zip(*pauc_ranks)))], axis=-1).mean(axis=-1).mean(axis=-1)\n",
    "\n",
    "print(ranks.shape)\n",
    "#average_auc_ranks = auc_ranks.mean(axis=1)"
Paul Primus's avatar
Paul Primus committed
230
231
232
233
234
235
236
237
238
239
240
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n",
     "is_executing": false
    }
   }
  },
  {
   "cell_type": "code",
Paul Primus's avatar
Paul Primus committed
241
   "execution_count": 221,
Paul Primus's avatar
Paul Primus committed
242
243
   "outputs": [
    {
Paul Primus's avatar
Paul Primus committed
244
245
     "name": "stdout",
     "text": [
Paul Primus's avatar
Paul Primus committed
246
      "0: ID-5 ClassificationExperiment_Model:[dcase2020_task2.models.CNN_256_3_0.0]_Training:[dcase2020_task2.losses.AUC_512_0.0001_0]_Features:[True_128_32_1024_512_2.0_0]_Complement:[True]1220\n1: ID-1 ClassificationExperiment_Model:[dcase2020_task2.models.CNN_256_3_0.0]_Training:[dcase2020_task2.losses.BCE_512_0.0001_0]_Features:[True_128_32_1024_512_2.0_0]_Complement:[True]1220\n2: ID-3 ClassificationExperiment_Model:[dcase2020_task2.models.CNN_256_3_0.0]_Training:[dcase2020_task2.losses.AUC_512_0.0001_1e-05]_Features:[True_128_32_1024_512_2.0_0]_Complement:[True]1220\n3: ID-8 ClassificationExperiment_Model:[dcase2020_task2.models.CNN_256_3_0.0]_Training:[dcase2020_task2.losses.BCE_512_0.0001_1e-05]_Features:[True_128_32_1024_512_2.0_0]_Complement:[True]1220\n4: ID-2 ClassificationExperiment_Model:[dcase2020_task2.models.CNN_256_3_0.0]_Training:[dcase2020_task2.losses.AUC_512_1e-05_0]_Features:[True_128_32_1024_512_2.0_0]_Complement:[True]1220\n5: ID-0 baseline\n6: ID-6 ClassificationExperiment_Model:[dcase2020_task2.models.CNN_256_3_0.0]_Training:[dcase2020_task2.losses.BCE_512_1e-05_1e-05]_Features:[True_128_32_1024_512_2.0_0]_Complement:[True]1220\n7: ID-4 ClassificationExperiment_Model:[dcase2020_task2.models.CNN_256_3_0.0]_Training:[dcase2020_task2.losses.AUC_512_1e-05_1e-05]_Features:[True_128_32_1024_512_2.0_0]_Complement:[True]1220\n8: ID-7 ClassificationExperiment_Model:[dcase2020_task2.models.CNN_256_3_0.0]_Training:[dcase2020_task2.losses.BCE_512_1e-05_0]_Features:[True_128_32_1024_512_2.0_0]_Complement:[True]1220\n"
Paul Primus's avatar
Paul Primus committed
247
248
     ],
     "output_type": "stream"
Paul Primus's avatar
Paul Primus committed
249
250
    }
   ],
Paul Primus's avatar
Paul Primus committed
251
   "source": [
252
    "indices = list(np.argsort(ranks))\n",
Paul Primus's avatar
Paul Primus committed
253
    "names = np.array(names)\n",
Paul Primus's avatar
Paul Primus committed
254
    "for i, (n, r, j) in enumerate(zip(names[indices], ranks[indices], indices)):\n",
Paul Primus's avatar
add    
Paul Primus committed
255
256
257
258
259
260
261
262
263
264
265
266
    "    print(f'{i}: ID-{j} {n}')"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n",
     "is_executing": false
    }
   }
  },
  {
   "cell_type": "code",
Paul Primus's avatar
Paul Primus committed
267
   "execution_count": 223,
Paul Primus's avatar
add    
Paul Primus committed
268
269
270
   "outputs": [
    {
     "data": {
Paul Primus's avatar
Paul Primus committed
271
      "text/plain": "array([ 0.10833243,  0.26198886,  0.23243448,  0.25764211,  0.08164685,\n        0.0974027 ,  0.1125    ,  0.17763725,  0.02885843,  0.01153596,\n        0.057     ,  0.3041    , -0.29644632, -0.13366226,  0.30243935,\n        0.13261051,  0.02420937, -0.6416    , -0.7535    , -0.6876    ,\n       -0.6818    , -0.743     , -0.539     ])"
Paul Primus's avatar
add    
Paul Primus committed
272
273
274
     },
     "metadata": {},
     "output_type": "execute_result",
Paul Primus's avatar
Paul Primus committed
275
     "execution_count": 223
Paul Primus's avatar
add    
Paul Primus committed
276
277
278
    }
   ],
   "source": [
Paul Primus's avatar
Paul Primus committed
279
    " data[5, :, 0] - data[0, :, 0]"
Paul Primus's avatar
Paul Primus committed
280
281
282
283
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
Paul Primus's avatar
Paul Primus committed
284
285
     "name": "#%%\n",
     "is_executing": false
Paul Primus's avatar
Paul Primus committed
286
287
288
289
290
    }
   }
  },
  {
   "cell_type": "code",
Paul Primus's avatar
add    
Paul Primus committed
291
   "execution_count": 192,
Paul Primus's avatar
Paul Primus committed
292
293
   "outputs": [
    {
294
295
     "data": {
      "text/plain": "<Figure size 1440x720 with 1 Axes>",
Paul Primus's avatar
add    
Paul Primus committed
296
      "image/png": "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\n"
297
298
299
300
301
302
303
304
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
Paul Primus's avatar
add    
Paul Primus committed
305
      "text/plain": "(92, 23, 2)"
306
307
308
     },
     "metadata": {},
     "output_type": "execute_result",
Paul Primus's avatar
add    
Paul Primus committed
309
     "execution_count": 192
310
311
312
    }
   ],
   "source": [
Paul Primus's avatar
add    
Paul Primus committed
313
    "\n",
314
315
316
    "metric = 'auroc_mean'\n",
    "bar_width = 0.6\n",
    "bar_spacing=0.00\n",
Paul Primus's avatar
Paul Primus committed
317
    "top = 4\n",
318
319
320
    "\n",
    "top_k_data = data[indices, :, 0 if metric == 'auroc_mean' else 1][:top]\n",
    "baseline_data = data[0:1, :, 0 if metric == 'auroc_mean' else 1]\n",
Paul Primus's avatar
Paul Primus committed
321
    "to_visualize = np.concatenate([baseline_data, top_k_data])\n",
322
323
324
325
326
327
328
329
330
331
    "\n",
    "plt.figure(figsize=(20,10))\n",
    "plt.rcParams.update({'font.size': 22})\n",
    "plt.title(f'{metric}')\n",
    "labels = []\n",
    "\n",
    "for i in range(6):\n",
    "    for j in TRAINING_ID_MAP[i]:\n",
    "        labels.append(\"{}, {}\".format(INVERSE_CLASS_MAP[i][:6], j))\n",
    "\n",
Paul Primus's avatar
Paul Primus committed
332
    "for i, d in enumerate(to_visualize):\n",
333
    "    plt.bar(\n",
Paul Primus's avatar
Paul Primus committed
334
    "        np.arange(len(labels)) + i * (bar_width / len(to_visualize) + bar_spacing), \n",
335
    "        d,\n",
Paul Primus's avatar
Paul Primus committed
336
    "        bar_width/ len(to_visualize),\n",
337
338
339
340
341
342
343
344
    "    )\n",
    "\n",
    "plt.xticks(np.arange(len(labels)), labels, rotation='vertical')\n",
    "plt.yticks(np.arange(0, 1., 0.1))\n",
    "plt.grid()\n",
    "plt.savefig(f'top_{top}_auc.png')\n",
    "plt.show()\n",
    "\n",
Paul Primus's avatar
Paul Primus committed
345
    "data.shape"
346
347
348
349
350
351
352
353
354
355
356
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n",
     "is_executing": false
    }
   }
  },
  {
   "cell_type": "code",
Paul Primus's avatar
Paul Primus committed
357
   "execution_count": 224,
358
359
360
361
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 1440x720 with 1 Axes>",
Paul Primus's avatar
Paul Primus committed
362
      "image/png": "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\n"
363
364
365
366
367
368
369
370
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
Paul Primus's avatar
Paul Primus committed
371
      "text/plain": "(9, 23, 2)"
372
373
374
     },
     "metadata": {},
     "output_type": "execute_result",
Paul Primus's avatar
Paul Primus committed
375
     "execution_count": 224
Paul Primus's avatar
Paul Primus committed
376
377
378
    }
   ],
   "source": [
Paul Primus's avatar
Paul Primus committed
379
380
381
    "metric = 'auroc_mean'\n",
    "bar_width = 0.6\n",
    "bar_spacing=0.00\n",
Paul Primus's avatar
add    
Paul Primus committed
382
    "top = 4\n",
383
384
385
    "\n",
    "top_k_data = data[indices, :, 0 if metric == 'auroc_mean' else 1][:top]\n",
    "baseline_data = data[0:1, :, 0 if metric == 'auroc_mean' else 1]\n",
Paul Primus's avatar
add    
Paul Primus committed
386
    "to_visualize = np.concatenate([baseline_data, top_k_data])\n",
387
388
389
390
391
392
393
394
395
396
    "\n",
    "plt.figure(figsize=(20,10))\n",
    "plt.rcParams.update({'font.size': 22})\n",
    "plt.title(f'{metric}')\n",
    "labels = []\n",
    "\n",
    "for i in range(6):\n",
    "    for j in TRAINING_ID_MAP[i]:\n",
    "        labels.append(\"{}, {}\".format(INVERSE_CLASS_MAP[i][:6], j))\n",
    "\n",
Paul Primus's avatar
Paul Primus committed
397
    "for i, d in enumerate(to_visualize):\n",
398
    "    plt.bar(\n",
Paul Primus's avatar
Paul Primus committed
399
    "        np.arange(len(labels)) + i * (bar_width / len(to_visualize) + bar_spacing), \n",
400
    "        d,\n",
Paul Primus's avatar
Paul Primus committed
401
    "        bar_width/ len(to_visualize),\n",
402
403
404
405
406
    "    )\n",
    "\n",
    "plt.xticks(np.arange(len(labels)), labels, rotation='vertical')\n",
    "plt.yticks(np.arange(0, 1., 0.1))\n",
    "plt.grid()\n",
Paul Primus's avatar
Paul Primus committed
407
    "plt.savefig(f'top_{top}_auc.png')\n",
408
409
    "plt.show()\n",
    "\n",
Paul Primus's avatar
add    
Paul Primus committed
410
    "data.shape"
Paul Primus's avatar
Paul Primus committed
411
412
413
414
415
416
417
418
419
420
421
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n",
     "is_executing": false
    }
   }
  },
  {
   "cell_type": "code",
Paul Primus's avatar
add    
Paul Primus committed
422
   "execution_count": 174,
Paul Primus's avatar
Paul Primus committed
423
424
425
426
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 1440x720 with 1 Axes>",
Paul Primus's avatar
add    
Paul Primus committed
427
      "image/png": "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\n"
Paul Primus's avatar
Paul Primus committed
428
429
430
431
432
433
434
435
436
437
438
439
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": "(9, 23, 2)"
     },
     "metadata": {},
     "output_type": "execute_result",
Paul Primus's avatar
add    
Paul Primus committed
440
     "execution_count": 174
Paul Primus's avatar
Paul Primus committed
441
442
    }
   ],
Paul Primus's avatar
Paul Primus committed
443
   "source": [
Paul Primus's avatar
add    
Paul Primus committed
444
445
446
447
    "metric = 'auroc_mean'\n",
    "bar_width = 0.6\n",
    "bar_spacing=0.00\n",
    "top = 8\n",
Paul Primus's avatar
Paul Primus committed
448
449
450
    "\n",
    "top_k_data = data[indices, :, 0 if metric == 'auroc_mean' else 1][:top]\n",
    "baseline_data = data[0:1, :, 0 if metric == 'auroc_mean' else 1]\n",
Paul Primus's avatar
add    
Paul Primus committed
451
    "to_visualize = np.concatenate([top_k_data])\n",
Paul Primus's avatar
Paul Primus committed
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
    "\n",
    "plt.figure(figsize=(20,10))\n",
    "plt.rcParams.update({'font.size': 22})\n",
    "plt.title(f'{metric}')\n",
    "labels = []\n",
    "\n",
    "for i in range(6):\n",
    "    for j in TRAINING_ID_MAP[i]:\n",
    "        labels.append(\"{}, {}\".format(INVERSE_CLASS_MAP[i][:6], j))\n",
    "\n",
    "for i, d in enumerate(to_visualize):\n",
    "    plt.bar(\n",
    "        np.arange(len(labels)) + i * (bar_width / len(to_visualize) + bar_spacing), \n",
    "        d,\n",
    "        bar_width/ len(to_visualize),\n",
    "    )\n",
    "\n",
    "plt.xticks(np.arange(len(labels)), labels, rotation='vertical')\n",
    "plt.yticks(np.arange(0, 1., 0.1))\n",
    "plt.grid()\n",
Paul Primus's avatar
add    
Paul Primus committed
472
    "plt.savefig(f'top_{top}_auc.png')\n",
Paul Primus's avatar
Paul Primus committed
473
474
    "plt.show()\n",
    "\n",
Paul Primus's avatar
add    
Paul Primus committed
475
    "data.shape"
Paul Primus's avatar
Paul Primus committed
476
477
478
479
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
Paul Primus's avatar
Paul Primus committed
480
481
     "name": "#%%\n",
     "is_executing": false
Paul Primus's avatar
Paul Primus committed
482
483
    }
   }
Paul Primus's avatar
Paul Primus committed
484
485
486
487
  }
 ],
 "metadata": {
  "kernelspec": {
Paul Primus's avatar
Paul Primus committed
488
   "name": "python3",
Paul Primus's avatar
Paul Primus committed
489
   "language": "python",
Paul Primus's avatar
Paul Primus committed
490
   "display_name": "Python 3"
Paul Primus's avatar
Paul Primus committed
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  },
  "pycharm": {
   "stem_cell": {
    "cell_type": "raw",
    "source": [],
    "metadata": {
     "collapsed": false
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}