def make_score(df_list, output): """ Make global plot long short profit. :param df_list: list of pd dfs :param output: output path :return: None """ logger.info("in score plots") for item in df_list: df = item[0] df_name = item[1] if pc['prediction'] in df_name: score_ens_df = pd.DataFrame(columns=['model', 'r2', 'mse']) score_single_df = pd.DataFrame(columns=['model', 'r2', 'mse']) for i in df.columns.to_list(): if pc['prediction'] in i: scr_r2 = r2_score(df[mc["label"]], df[i]) scr_mse = mean_squared_error(df[mc["label"]], df[i]) score_single_df = score_single_df.append( {'model': i, 'r2': scr_r2, 'mse': scr_mse}, ignore_index=True ) if 'ens' in i: ens_scr_r2 = r2_score(df[mc["label"]], df[i]) ens_scr_mse = mean_squared_error(df[mc["label"]], df[i]) score_ens_df = score_ens_df.append( {'model': i, 'r2': ens_scr_r2, 'mse': ens_scr_mse}, ignore_index=True ) logger.info("df name: {}, single score df shape: {} ".format(df_name, score_single_df.shape)) logger.info("df name: {}, ens score df shape: {} ".format(df_name, score_ens_df.shape)) # single_name = str(df_name) + "_single" # ens_name = str(df_name) + "_ens" # score_ens_df = score_ens_df.sort_values(by=['r2'], ascending=False) # score_single_df = score_single_df.sort_values(by=['r2'], ascending=False) # plotter_sng = Plotter(score_single_df, single_name, output) # plotter_sng.plot_score_table() # plotter_ens = Plotter(score_ens_df, ens_name, output) # plotter_ens.plot_ens_score_table() plotter_sng = Plotter(score_single_df.sort_values(by=['r2'], ascending=False), str(df_name) + "_single", output) plotter_sng.plot_score_table() plotter_ens = Plotter(score_ens_df.sort_values(by=['r2'], ascending=False), str(df_name) + "_ens", output) plotter_ens.plot_ens_score_table()