Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import ipdb
from os.path import join,exists
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from config import DATA_DIR
def load_eval_file():
parent_directory = join(DATA_DIR, 'subject_specific')
eval_history_file = join(parent_directory, 'eval_history.csv')
assert exists(eval_history_file), "Evaluation file does not exist"
return pd.read_csv(eval_history_file)
if __name__ == '__main__':
mdl_str = 'linreg'
do_minirocket = True
use_tsfresh = False
df = load_eval_file()
mask = ((df['mdl_str'] == mdl_str) &\
(df['do_minirocket'] == do_minirocket) &\
(df['use_tsfresh'] == use_tsfresh))
data = df[mask]
subjects = data['subject'].unique()
fig, axs = plt.subplots(2, 1)
for subject in subjects:
c = (int(subject[1:])-12)/(30-12)
print(int(subject[1:]))
print(c)
mask = data['subject'] == subject
x = data[mask]['train_len'].values
y0 = data[mask]['pearsonr_coeff'].values
y1 = data[mask]['mae'].values
axs[0].scatter(x, y0, c=[c]*len(x), vmin=0, vmax=1, cmap='hsv')
axs[1].scatter(x, y1, c=[c]*len(x), vmin=0, vmax=1, cmap='hsv')
axs[0].axhline(color='k', alpha=0.3)
axs[0].set_ylabel('pearson coeff', fontsize=12)
axs[1].set_ylabel('mae', fontsize=12)
axs[1].set_xlabel("training minutes", fontsize=12)
axs[0].set_xticks(range(1, 6))
axs[1].set_xticks(range(1, 6))
axs[0].tick_params(axis='x', labelsize=12)
axs[1].tick_params(axis='x', labelsize=12)
axs[0].tick_params(axis='y', labelsize=12)
axs[1].tick_params(axis='y', labelsize=12)
fig.suptitle(f"{mdl_str} with minirocket features", fontsize=12)
plt.show()