From afbd96cb5894fb3e4d5c79a595cda5a77d7c5a7b Mon Sep 17 00:00:00 2001 From: cpaulson Date: Fri, 19 Jun 2015 11:14:36 +0100 Subject: [PATCH] slight change to how infill works --- pyKriging/krige.py | 5 +++-- pyKriging/regressionkrige.py | 14 +++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/pyKriging/krige.py b/pyKriging/krige.py index 4264e00..bda14a3 100644 --- a/pyKriging/krige.py +++ b/pyKriging/krige.py @@ -252,7 +252,7 @@ def infill_objective_ei(self,candidates, args): fitness.append(-1 * self.expimp(entry)) return fitness - def infill(self, points, method='error'): + def infill(self, points, method='error', addPoint=True): ''' The function identifies where new points are needed in the model. :param points: The number of points to add to the model. Multiple points are added via imputation. @@ -287,7 +287,8 @@ def infill(self, points, method='error'): final_pop.sort(reverse=True) newpoint = final_pop[0].candidate returnValues[i][:] = newpoint - self.addPoint(returnValues[i], self.predict(returnValues[i]), norm=False) + if addPoint: + self.addPoint(returnValues[i], self.predict(returnValues[i]), norm=True) self.X = np.copy(initX) self.y = np.copy(inity) diff --git a/pyKriging/regressionkrige.py b/pyKriging/regressionkrige.py index 7076fe7..c7d504b 100644 --- a/pyKriging/regressionkrige.py +++ b/pyKriging/regressionkrige.py @@ -35,10 +35,9 @@ def __init__(self, X, y, testfunction=None, name='', testPoints=None, **kwargs): self.sp = samplingplan(self.k) self.updateData() self.updateModel() - self.thetamin = 1e-4 - self.thetamax = 100 - self.pmin = 1 + self.thetamax =100 + self.pmin = 1.81231 self.pmax = 2 # Setup functions for tracking history @@ -172,14 +171,15 @@ def updateModel(self): # print Exception, err raise Exception("bad params") - def predict(self, X): + def predict(self, X, norm=True): ''' This function returns the prediction of the model at the real world coordinates of X :param X: Design variable to evaluate :return: Returns the 'real world' predicted value ''' X = copy.deepcopy(X) - X = self.normX(X) + if norm: + X = self.normX(X) return self.inversenormy(self.predict_normalized(X)) def predict_var(self, X, norm=True): @@ -373,7 +373,7 @@ def train(self, optimizer='pso'): # ea.observer = inspyred.ec.observers.stats_observer final_pop = ea.evolve(generator=self.generate_population, evaluator=self.fittingObjective, - pop_size=300, + pop_size=150, maximize=False, bounder=ec.Bounder(lowerBound, upperBound), max_evaluations=30000, @@ -388,7 +388,7 @@ def train(self, optimizer='pso'): ea.terminator = self.no_improvement_termination final_pop = ea.evolve(generator=self.generate_population, evaluator=self.fittingObjective, - pop_size=300, + pop_size=50, maximize=False, bounder=ec.Bounder(lowerBound, upperBound), max_evaluations=30000,