def fit()

in scheme_adapters/polyfit_adapter/polyfit_adapter.py [0:0]


    def fit(self, arg):
        if type(arg) == str:
            filename = arg
            pickled_file = self.damoos_path + "/scheme_adapters/polyfit_adapter/store/" + filename
            with open(pickled_file, 'rb') as handle:
                data = pickle.load(handle)
            xx = data["variable"]
            yy = data["score"]
            x = []
            y = []
            for i in range(0, 61, 6):
                x.append(xx[i])
                y.append(yy[i])
            self.polynomial_fit(x, y, x[0], x[-1], min(len(x) / 3, 10))
        else:
            best_scheme = []
            degree = min(int(self.total_runs / 3), 10)
            for key in self.params:
                value = self.search_param[key]
                if len(value) > 1:
                    x = value[:] + arg[key][:]
                    y = []
                    for scores in self.scores:
                        y.append(scores[0])
                    min_range = self.convert(self.ranges[key][0])
                    max_range = self.convert(self.ranges[key][1])
                    best_val, best_point = self.polynomial_fit(x, y, min_range, max_range, degree)
                    best_scheme.append(round(best_point))
                else:
                    best_scheme.append(-1)
            self.run_best_workload(best_scheme)
            print("Best Point:", best_point, "Best Value:", best_val)
            return best_point