Commit 403093e7 authored by Paul Primus's avatar Paul Primus
Browse files

add submission package

parent 22ba67a4
%% Cell type:code id: tags:
``` python
from pymongo import MongoClient
from matplotlib import pyplot as plt
import numpy as np
from dcase2020_task2.data_sets.mcm_dataset import INVERSE_CLASS_MAP, TRAINING_ID_MAP, CLASS_MAP
from scipy.stats import rankdata
baseline_auc = {
'name': 'baseline',
0: {0: 0.5441, 2: 0.7340, 4: 0.6161, 6: 0.7392},
1: {0: 0.6715, 2: 0.6153, 4: 0.8833, 6: 0.7455},
2: {0: 0.9619, 2: 0.7897, 4: 0.9430, 6: 0.6959},
3: {1: 0.8136, 2: 0.8597, 3: 0.6330, 4: 0.8445},
4: {1: 0.7807, 2: 0.6416, 3: 0.7535},
5: {0: 0.6876, 2: 0.6818, 4: 0.7430, 6: 0.5390}
}
baseline_pauc = {
'name': 'baseline',
0: {0: 0.4937, 2: 0.5481, 4: 0.5326, 6: 0.5235},
1: {0: 0.5674, 2: 0.5810, 4: 0.6710, 6: 0.5802},
2: {0: 0.8144, 2: 0.6368, 4: 0.7198, 6: 0.4902},
3: {1: 0.6840, 2: 0.7772, 3: 0.5521, 4: 0.6897},
4: {1: 0.6425, 2: 0.5601, 3: 0.6103},
5: {0: 0.5170, 2: 0.5183, 4: 0.5197, 6: 0.4843}
}
baseline_both = {}
for t in baseline_auc:
if t == 'name':
baseline_both[t] = 'baseline'
continue
else:
baseline_both[t] = {}
for i in baseline_auc[t]:
baseline_both[t][i] = np.array([baseline_auc[t][i], baseline_pauc[t][i]])
def get_experiment(runs, name):
experiment_dict = dict()
for i in range(6):
experiment_dict[i] = dict()
experiment_dict['name'] = name
for experiment in runs:
if experiment['config'].get('id') == name:
machine_dict = experiment_dict.get(experiment['config']['machine_type'])
result = experiment.get('result')
machine_type = INVERSE_CLASS_MAP[experiment['config']['machine_type']]
machine_id = experiment['config']['machine_id']
if result:
machine_dict[experiment['config']['machine_id']] = result.get(
machine_type, {}
).get(
f'json://{machine_id}', -1
).get('py/tuple', [0, 0])[:2]
else:
machine_dict[experiment['config']['machine_id']] = np.array([0, 0])
return experiment_dict
def get_record(experiment):
record = []
for i in range(6):
for j in TRAINING_ID_MAP[i]:
v = experiment.get(i)
if v:
v = v.get(j, [0, 0])
else:
v = np.array([0, 0])
record.append(np.array(v))
assert len(record) == 23
return experiment['name'], record
```
%% Cell type:code id: tags:
``` python
client = MongoClient('mongodb://student2.cp.jku.at:27017/')
experiments = [r for r in client.resnet_gridsearch.runs.find({"experiment.name": "dcase2020_task2_ClassificationExperiment"})]
print(f'Loaded {len(experiments)} runs.')
```
%%%% Output: stream
Loaded 492 runs.
Loaded 552 runs.
%% Cell type:code id: tags:
``` python
descriptors = set()
for experiment in experiments:
descriptors = descriptors.union(set([experiment['config']['id']]))
descriptors = list(descriptors)
print(f'Loaded {len(descriptors)} distinct experiments.')
```
%%%% Output: stream
Loaded 12 distinct experiments.
Loaded 24 distinct experiments.
%% Cell type:code id: tags:
``` python
# Extract Results
# Concatenate Baseline Results
n, m = get_record(baseline_both)
names = [n]
metrics = [np.array(m)]
for descriptor in descriptors:
n, m = get_record(
get_experiment(
experiments,
descriptor
)
)
names.append(n)
metrics.append(np.array(m))
```
%% Cell type:code id: tags:
``` python
data = np.array(metrics)
auc_ranks = []
pauc_ranks = []
idxes = [0, 4, 8, 12, 16, 19, 23]
for type_, (i, j) in enumerate(zip(idxes[:-1], idxes[1:])):
average_auc = data[:, i:j, 0].mean(axis=1)
average_pauc = data[:, i:j, 1].mean(axis=1)
print(f'Best Model for Machine Type {type_}: {np.argsort(average_auc + average_pauc)[::-1]}')
auc_ranks.append(rankdata(-average_auc))
pauc_ranks.append(rankdata(-average_pauc))
```
%%%% Output: stream
Best Model for Machine Type 0: [10 12 1 11 8 7 5 6 2 9 3 4 0]
Best Model for Machine Type 1: [ 5 10 8 6 12 9 7 11 1 2 4 3 0]
Best Model for Machine Type 2: [ 5 12 1 11 6 7 9 8 10 3 4 2 0]
Best Model for Machine Type 3: [ 7 1 3 12 11 10 5 6 9 8 4 2 0]
Best Model for Machine Type 4: [ 9 6 1 11 5 8 2 10 4 3 12 7 0]
Best Model for Machine Type 5: [ 3 4 7 2 5 12 8 10 9 11 1 6 0]
Best Model for Machine Type 0: [ 2 11 9 22 20 16 4 18 5 13 24 6 15 0 10 23 8 7 14 17 19 3 21 1
12]
Best Model for Machine Type 1: [ 2 18 11 16 5 9 24 4 20 22 13 15 6 0 10 23 8 7 14 17 19 3 21 1
12]
Best Model for Machine Type 2: [18 9 22 2 20 5 4 24 16 11 6 15 13 0 10 23 8 7 14 17 19 3 21 1
12]
Best Model for Machine Type 3: [ 4 22 6 9 20 11 18 5 24 16 15 13 0 23 10 14 8 7 17 19 21 3 2 1
12]
Best Model for Machine Type 4: [24 5 22 20 18 16 13 11 15 6 9 4 0 23 10 14 8 7 17 19 21 3 2 1
12]
Best Model for Machine Type 5: [ 6 15 4 13 18 9 16 11 24 20 22 5 0 23 10 14 8 7 17 19 21 3 2 1
12]
%% Cell type:code id: tags:
``` python
ranks = np.stack([np.array(list(zip(*auc_ranks))), np.array(list(zip(*pauc_ranks)))], axis=-1).mean(axis=-1).mean(axis=-1)
indices = list(np.argsort(ranks))
names = np.array(names)
for i, (n, r, j) in enumerate(zip(names[indices], ranks[indices], indices)):
print(f'{i}: ID-{j} {n}')
```
%%%% Output: stream
0: ID-5 resnet_gridsearch_a_bit_larger_loose_1e-4_100_BCE
1: ID-12 resnet_gridsearch_a_bit_larger_loose_1e-4_100_AUC
2: ID-1 resnet_gridsearch_a_bit_larger_loose_1e-5_100_BCE
3: ID-7 resnet_gridsearch_a_bit_smaller_loose_1e-4_100_BCE
4: ID-11 resnet_gridsearch_a_bit_larger_loose_1e-5_100_AUC
5: ID-10 resnet_gridsearch_normal_loose_1e-4_100_BCE
6: ID-6 resnet_gridsearch_normal_loose_1e-5_100_BCE
7: ID-8 resnet_gridsearch_normal_loose_1e-4_100_AUC
8: ID-9 resnet_gridsearch_normal_loose_1e-5_100_AUC
9: ID-3 resnet_gridsearch_a_bit_smaller_loose_1e-4_100_AUC
10: ID-2 resnet_gridsearch_a_bit_smaller_loose_1e-5_100_AUC
11: ID-4 resnet_gridsearch_a_bit_smaller_loose_1e-5_100_BCE
12: ID-0 baseline
0: ID-18 resnet_gridsearch_a_bit_larger_loose_1e-4_100_BCE
1: ID-9 resnet_gridsearch_a_bit_larger_loose_1e-4_100_AUC
2: ID-22 resnet_gridsearch_a_bit_larger_loose_1e-5_100_BCE
3: ID-4 resnet_gridsearch_a_bit_smaller_loose_1e-4_100_BCE
4: ID-20 resnet_gridsearch_a_bit_larger_loose_1e-5_100_AUC
5: ID-11 resnet_gridsearch_normal_loose_1e-4_100_BCE
6: ID-5 resnet_gridsearch_normal_loose_1e-5_100_BCE
7: ID-16 resnet_gridsearch_normal_loose_1e-4_100_AUC
8: ID-24 resnet_gridsearch_normal_loose_1e-5_100_AUC
9: ID-6 resnet_gridsearch_a_bit_smaller_loose_1e-4_100_AUC
10: ID-13 resnet_gridsearch_a_bit_smaller_loose_1e-5_100_AUC
11: ID-15 resnet_gridsearch_a_bit_smaller_loose_1e-5_100_BCE
12: ID-2 resnet_gridsearch_2_a_bit_larger_loose_1e-4_0.99_100_BCE
13: ID-0 baseline
14: ID-14 resnet_gridsearch_normal_loose_1e-4_100_AUC_rerun
15: ID-10 resnet_gridsearch_a_bit_larger_loose_1e-5_100_AUC_rerun
16: ID-8 resnet_gridsearch_a_bit_smaller_loose_1e-4_100_BCE_rerun
17: ID-17 resnet_gridsearch_a_bit_larger_loose_1e-5_100_BCE_rerun
18: ID-7 resnet_gridsearch_a_bit_larger_loose_1e-4_100_AUC_rerun
19: ID-19 resnet_gridsearch_normal_loose_1e-5_100_BCE_rerun
20: ID-3 resnet_gridsearch_a_bit_smaller_loose_1e-5_100_AUC_rerun
21: ID-21 resnet_gridsearch_normal_loose_1e-5_100_AUC_rerun
22: ID-1 resnet_gridsearch_a_bit_smaller_loose_1e-4_100_AUC_rerun
23: ID-23 resnet_gridsearch_normal_loose_1e-4_100_BCE_rerun
24: ID-12 resnet_gridsearch_a_bit_larger_loose_1e-4_100_BCE_rerun
%% Cell type:code id: tags:
``` python
metric = 'auroc_mean'
bar_width = 0.6
bar_spacing=0.00
top = 10
top_k_data = data[indices, :, 0 if metric == 'auroc_mean' else 1][:top]
baseline_data = data[0:1, :, 0 if metric == 'auroc_mean' else 1]
to_visualize = np.concatenate([baseline_data, top_k_data])
plt.figure(figsize=(20,10))
plt.rcParams.update({'font.size': 22})
plt.title(f'{metric}')
labels = []
for i in range(6):
for j in TRAINING_ID_MAP[i]:
labels.append("{}, {}".format(INVERSE_CLASS_MAP[i][:6], j))
for i, d in enumerate(to_visualize):
plt.bar(
np.arange(len(labels)) + i * (bar_width / len(to_visualize) + bar_spacing),
d,
bar_width/ len(to_visualize),
)
plt.xticks(np.arange(len(labels)), labels, rotation='vertical')
plt.ylim(0.5, 1.)
plt.yticks(np.arange(0.5, 1., 0.1))
plt.grid()
plt.savefig(f'top_{top}_auc.png')
plt.show()
data.shape
```
%%%% Output: display_data
![](data:image/png;base64,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)
%%%% Output: execute_result
(11, 23, 2)
%% Cell type:code id: tags:
``` python
metric = 'pauroc_mean'
bar_width = 0.6
bar_spacing=0.00
top = 10
top_k_data = data[indices, :, 0 if metric == 'auroc_mean' else 1][:top]
baseline_data = data[0:1, :, 0 if metric == 'auroc_mean' else 1]
to_visualize = np.concatenate([baseline_data, top_k_data])
plt.figure(figsize=(20,10))
plt.rcParams.update({'font.size': 22})
plt.title(f'{metric}')
labels = []
for i in range(6):
for j in TRAINING_ID_MAP[i]:
labels.append("{}, {}".format(INVERSE_CLASS_MAP[i][:6], j))
for i, d in enumerate(to_visualize):
plt.bar(
np.arange(len(labels)) + i * (bar_width / len(to_visualize) + bar_spacing),
d,
bar_width/ len(to_visualize),
)
plt.xticks(np.arange(len(labels)), labels, rotation='vertical')
plt.ylim(0.45, 1.)
plt.yticks(np.arange(0.5, 1., 0.1))
plt.grid()
plt.savefig(f'top_{top}_auc.png')
plt.show()
data.shape
```
%%%% Output: display_data
![](data:image/png;base64,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)
%%%% Output: execute_result
(11, 23, 2)
%% Cell type:code id: tags:
``` python
```
......
This diff is collapsed.
......@@ -102,8 +102,7 @@ system:
# In case of ensemble approaches, add up parameters for all subsystems.
# In case embeddings are used, add up parameter count of the embedding extraction networks and classification network.
# Use numerical value.
# TODO
total_parameters: 20000000
total_parameters: 96000000
# List of external datasets used in the submission.
# Development dataset is used here only as an example, list only external datasets
......@@ -130,29 +129,24 @@ results:
# Average of AUCs over all Machine IDs [%]
# No need to round numbers
# TODO:
ToyCar:
averaged_auc: 78.77
averaged_pauc: 67.58
ToyConveyor:
averaged_auc: 72.53
averaged_pauc: 60.43
fan:
averaged_auc: 65.83
averaged_pauc: 52.45
pump:
averaged_auc: 72.89
averaged_pauc: 59.99
slider:
averaged_auc: 84.76
averaged_pauc: 66.53
valve:
averaged_auc: 66.28
averaged_pauc: 50.98
fan:
averaged_auc: 0.9226685446121019
averaged_pauc: 0.8230212986543588
pump:
averaged_auc: 0.9297781495399142
averaged_pauc: 0.8722867745313565
slider:
averaged_auc: 0.9894779962546816
averaged_pauc: 0.9454464813719693
ToyCar:
averaged_auc: 0.9489897900841298
averaged_pauc: 0.8752479934828495
ToyConveyor:
averaged_auc: 0.83764533636162
averaged_pauc: 0.7279798253268154
valve:
averaged_auc: 0.9424583333333334
averaged_pauc: 0.8903508771929824
......@@ -102,8 +102,7 @@ system:
# In case of ensemble approaches, add up parameters for all subsystems.
# In case embeddings are used, add up parameter count of the embedding extraction networks and classification network.
# Use numerical value.
# TODO
total_parameters: 20000000
total_parameters: 96000000
# List of external datasets used in the submission.
# Development dataset is used here only as an example, list only external datasets
......@@ -130,29 +129,24 @@ results:
# Average of AUCs over all Machine IDs [%]
# No need to round numbers
# TODO:
ToyCar:
averaged_auc: 78.77
averaged_pauc: 67.58
ToyConveyor:
averaged_auc: 72.53
averaged_pauc: 60.43
fan:
averaged_auc: 65.83
averaged_pauc: 52.45
pump:
averaged_auc: 72.89
averaged_pauc: 59.99
slider:
averaged_auc: 84.76
averaged_pauc: 66.53
valve:
averaged_auc: 66.28
averaged_pauc: 50.98
fan:
averaged_auc: 0.9286317167841518
averaged_pauc: 0.8352913487070679
pump:
averaged_auc: 0.9297781495399142
averaged_pauc: 0.8722867745313565
slider:
averaged_auc: 0.9894779962546816
averaged_pauc: 0.9454464813719693
ToyCar:
averaged_auc: 0.9566950093931226
averaged_pauc: 0.8961968600747151
ToyConveyor:
averaged_auc: 0.8526503235962499
averaged_pauc: 0.7259891865658302
valve:
averaged_auc: 0.9776656162464985
averaged_pauc: 0.9357400855078873
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment