Repository navigation
Expand file tree
/
Copy pathplot_lambda_opt_experiments.py
More file actions
80 lines (69 loc) · 1.94 KB
/
Copy pathplot_lambda_opt_experiments.py
File metadata and controls
80 lines (69 loc) · 1.94 KB
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import matplotlib.pyplot as plt
from src.utils import check_saved, load_file
alpha_min, alpha_max, alpha_points = 0.01, 100, 36
delta_small, delta_large = 0.1, 10.0
e = 0.3
experiments = [
{
"loss_name": "L2",
"alpha_min": alpha_min,
"alpha_max": alpha_max,
"alpha_pts": alpha_points,
"delta_small": delta_small,
"delta_large": delta_large,
"epsilon": e,
"experiment_type": "reg param optimal",
},
{
"loss_name": "Huber",
"alpha_min": alpha_min,
"alpha_max": alpha_max,
"alpha_pts": alpha_points,
"delta_small": delta_small,
"delta_large": delta_large,
"epsilon": e,
"experiment_type": "reg param optimal",
},
{
"alpha_min": alpha_min,
"alpha_max": alpha_max,
"alpha_pts": alpha_points,
"delta_small": delta_small,
"delta_large": delta_large,
"epsilon": e,
"experiment_type": "BO",
},
]
alphas = []
errors = []
fig, ax = plt.subplots(1, 1, figsize=(10, 8), tight_layout=True)
for exper in experiments:
file_exists, file_path = check_saved(**exper)
if not file_exists:
raise RuntimeError("File doesn't exists")
else:
exper.update({"file_path": file_path})
if exper.get("experiment_type") == "reg param optimal":
a, e, _ = load_file(**exper)
alphas.append(a)
errors.append(e)
else:
a, e = load_file(**exper)
alphas.append(a)
errors.append(e)
for a, e, exp in zip(alphas, errors, experiments):
ax.plot(
a,
e,
label=r"$\epsilon$ = {epsilon} $\Delta$ = [{delta_small}, {delta_large}]".format(
**exp
),
)
ax.set_ylabel(r"$\frac{1}{d} E[||\hat{w} - w^\star||^2]$")
ax.set_xlabel(r"$\alpha$")
ax.set_xscale("log")
ax.set_yscale("log")
ax.minorticks_on()
ax.grid(True, which="both")
ax.legend()
plt.show()