def panel_accuracy()

in afa/app/app.py [0:0]


def panel_accuracy():
    """
    """

    df = state.report["data"].get("df", None)
    df_demand_cln = state.report["afa"].get("df_demand_cln", None)
    df_results = state.report["afa"].get("df_results", None)
    df_model_dist = state["report"]["afa"].get("df_model_dist", None)
    best_err = state["report"]["afa"].get("best_err", None)
    naive_err = state["report"]["afa"].get("naive_err", None)
    horiz = state.report["afa"].get("horiz", None)
    freq_out = state.report["afa"].get("freq", None)

    if df is None or df_results is None or df_model_dist is None:
        return
    
    def _calc_metrics(dd, metric="smape"):
        if metric == "smape":
            metric_func = calc_smape
        elif metric == "wape":
            metric_func = calc_wape
        else:
            raise NotImplementedError

        ys = np.hstack(dd["y_cv"].apply(np.hstack))
        yp = np.hstack(dd["yp_cv"].apply(np.hstack))

        return metric_func(ys, yp)

    df_acc = df_results.groupby(["channel", "family", "item_id"], as_index=False, sort=True) \
                       .apply(lambda dd: _calc_metrics(dd, METRIC)) \
                       .rename({None: METRIC}, axis=1)

    with st.beta_expander("🎯 Forecast Summary", expanded=True):
        _write(f"""