@@ -29,8 +29,14 @@ function append_results(filepath, results_df)
29
29
return CSV. write (filepath, results_df)
30
30
end
31
31
32
- function run_config (results_table:: DataFrame , outlier:: Bool , information_criteria:: String ,
33
- α:: Float64 , save_init:: Bool , sample_size:: Int64 )
32
+ function run_config (
33
+ results_table:: DataFrame ,
34
+ outlier:: Bool ,
35
+ information_criteria:: String ,
36
+ α:: Float64 ,
37
+ save_init:: Bool ,
38
+ sample_size:: Int64 ,
39
+ )
34
40
NAIVE_sMAPE = 14.427 # M4 Paper
35
41
NAIVE_MASE = 1.063 # M4 Paper
36
42
@@ -47,9 +53,16 @@ function run_config(results_table::DataFrame, outlier::Bool, information_criteri
47
53
initialization_df = DataFrame ()
48
54
end
49
55
50
- initialization_df, results_df = evaluate_SSL (initialization_df, results_df,
51
- dict_vec[i], outlier, α, H,
52
- sample_size, information_criteria)
56
+ initialization_df, results_df = evaluate_SSL (
57
+ initialization_df,
58
+ results_df,
59
+ dict_vec[i],
60
+ outlier,
61
+ α,
62
+ H,
63
+ sample_size,
64
+ information_criteria,
65
+ )
53
66
54
67
if i in [10000 , 20000 , 30000 , 40000 , 48000 ]
55
68
! save_init ? append_results (filepath, results_df) : nothing
@@ -61,13 +74,24 @@ function run_config(results_table::DataFrame, outlier::Bool, information_criteri
61
74
62
75
mase = trunc (mean (results_df[:, :MASE ]); digits= 3 )
63
76
smape = trunc (mean (results_df[:, :sMAPE ]); digits= 3 )
64
- owa = trunc (mean ([mean (results_df[:, :sMAPE ]) / NAIVE_sMAPE,
65
- mean (results_df[:, :MASE ]) / NAIVE_MASE]); digits= 3 )
66
- name = outlier ? " SSL-O ($(information_criteria) , α = $(α) )" :
67
- " SSL ($(information_criteria) , α = $(α) )"
68
- results_table = vcat (results_table,
69
- DataFrame (" Names" => [" $name " ], " MASE" => [mase],
70
- " sMAPE" => [smape], " OWA" => [owa]))
77
+ owa = trunc (
78
+ mean ([
79
+ mean (results_df[:, :sMAPE ]) / NAIVE_sMAPE,
80
+ mean (results_df[:, :MASE ]) / NAIVE_MASE,
81
+ ]);
82
+ digits= 3 ,
83
+ )
84
+ name = if outlier
85
+ " SSL-O ($(information_criteria) , α = $(α) )"
86
+ else
87
+ " SSL ($(information_criteria) , α = $(α) )"
88
+ end
89
+ results_table = vcat (
90
+ results_table,
91
+ DataFrame (
92
+ " Names" => [" $name " ], " MASE" => [mase], " sMAPE" => [smape], " OWA" => [owa]
93
+ ),
94
+ )
71
95
return results_table
72
96
end
73
97
@@ -78,13 +102,15 @@ function main()
78
102
for information_criteria in [" aic" , " bic" ]
79
103
for α in vcat ([0.0 ], collect (0.1 : 0.2 : 0.9 ), [1.0 ])
80
104
@info " Running SSL with outlier = $outlier , information_criteria = $information_criteria , α = $α "
81
- results_table = run_config (results_table, outlier, information_criteria, α,
82
- false , 60 )
105
+ results_table = run_config (
106
+ results_table, outlier, information_criteria, α, false , 60
107
+ )
83
108
end
84
109
end
85
110
end
86
- return CSV. write (" paper_tests/m4_test/metrics_results/SSL_METRICS_RESULTS.csv" ,
87
- results_table)
111
+ return CSV. write (
112
+ " paper_tests/m4_test/metrics_results/SSL_METRICS_RESULTS.csv" , results_table
113
+ )
88
114
end
89
115
90
116
function create_dirs ()
@@ -114,4 +140,4 @@ create_dirs()
114
140
115
141
main ()
116
142
117
- run_config (DataFrame (), false , " aic" , 0.1 , true , 2794 )# max sample size
143
+ run_config (DataFrame (), false , " aic" , 0.1 , true , 2794 )# max sample size
0 commit comments