in afa/core.py [0:0]
def calc_metrics(Y, Ycv, metric="smape"):
"""Note, this operates on 2D arrays of sliding window values.
"""
assert Y.ndim == Ycv.ndim == 2
assert Y.shape == Ycv.shape
# calc. error metrics
df_metrics = pd.DataFrame()
metric_aggs = [
("mean", np.nanmean),
("median", np.nanmedian),
("std", np.nanstd)
]
if metric == "smape":
metric_func = calc_smape
elif metric == "wape":
metric_func = calc_wape
else:
raise NotImplementedError
df_metrics[metric] = [metric_func(Y, Ycv)]
for agg, agg_func in metric_aggs:
df_metrics[f"{metric}_{agg}"] = \
df_metrics[metric].apply(agg_func).round(4)
assert(len(df_metrics) == 1)
return df_metrics