def run(self):
        # get data
        df_train = pd.read_csv(self.input()[0].path, header=[0, 1])
        df_test = pd.read_csv(self.input()[1].path, header=[0, 1])
        df_train_no_covariance_shift = pd.read_csv(self.input()[2].path,
                                                   header=[0, 1])

        evaluation_setups = [EvaluationStruct("Proposed", rf)]
        # evaluate the different methods
        df_adapted = evaluate_data(df_train, noise_levels,
                                   df_test, noise_levels,
                                   evaluation_setups=evaluation_setups)
        df_adapted["data"] = "adapted"
        df_no_adaptation = evaluate_data(
                df_train.drop("weights", axis=1), noise_levels,
                df_test, noise_levels,
                evaluation_setups=evaluation_setups)
        df_no_adaptation["data"] = "source"
        df_no_covariance_shift = evaluate_data(
                df_train_no_covariance_shift, noise_levels,
                df_test, noise_levels,
                evaluation_setups=evaluation_setups)
        df_no_covariance_shift["data"] = "target"
        df = pd.concat([df_adapted, df_no_adaptation, df_no_covariance_shift])

        # plot it
        sns.boxplot(data=df, x="noise added [sigma %]", y="Errors", hue="data",
                    hue_order=["source", "adapted", "target"], fliersize=0)
        # tidy up plot
        plt.ylim((0, 40))
        plt.legend(loc='upper left')

        # finally save the figure
        plt.savefig(self.output().path, dpi=500)
    def run(self):
        # get data
        df_train = pd.read_csv(self.input()[0].path, header=[0, 1])
        df_test = pd.read_csv(self.input()[1].path, header=[0, 1])

        df = evaluate_data(df_train, noise_levels, df_test, noise_levels)
        standard_plotting(df)

        # finally save the figure
        plt.savefig(self.output().path, dpi=500, bbox_inches='tight')
    def run(self):
        # get data
        df_train = pd.read_csv(self.input()[0].path, header=[0, 1])
        df_test = pd.read_csv(self.input()[1].path, header=[0, 1])

        df = evaluate_data(df_train, noise_levels, df_test, noise_levels)
        standard_plotting(df)

        # finally save the figure
        plt.savefig(self.output().path, dpi=500,
                    bbox_inches='tight')