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