def test_polynomial(self): n = 4 poly = 2 data, expected = range(n), range(n) squared = [e**poly for e in expected] expected.extend(squared) output = lib.polynomial(data, poly) leftover = (output - expected).any() assert leftover == False, "{0} != {1}".format(output, expected)
def test_polynomial(self): n = 4 poly = 2 data, expected = range(n), range(n) squared = [e**poly for e in expected] expected.extend(squared) output = lib.polynomial(data, poly) leftover = (output-expected).any() assert leftover == False, "{0} != {1}".format(output, expected)
def optimize(self, data, targets): model = LinearRegressionModel(Objective.MINIMIZE, log_level=self.logger.level) model.optimize(data, targets) best = model.best_score self.polynomial = 1 for p in range(1, FeatureConstants.MAX_POLYNOMIAL + 1): new_data = lib.polynomial(data, p) model = LinearRegressionModel(Objective.MINIMIZE, log_level=self.logger.level) model.optimize(new_data, targets) self.logger.info("score={0} with polynomial {1}".format(model.best_score, p)) if self.objective == Objective.MINIMIZE: if model.best_score < best: self.polynomial = p best = model.best_score elif self.objective == Objective.MAXIMIZE: if model.best_score > best: self.polynomial = p best = model.best_score
def optimize(self, data, targets): model = LinearRegressionModel(Objective.MINIMIZE, log_level=self.logger.level) model.optimize(data, targets) best = model.best_score self.polynomial = 1 for p in range(1, FeatureConstants.MAX_POLYNOMIAL + 1): new_data = lib.polynomial(data, p) model = LinearRegressionModel(Objective.MINIMIZE, log_level=self.logger.level) model.optimize(new_data, targets) self.logger.info("score={0} with polynomial {1}".format( model.best_score, p)) if self.objective == Objective.MINIMIZE: if model.best_score < best: self.polynomial = p best = model.best_score elif self.objective == Objective.MAXIMIZE: if model.best_score > best: self.polynomial = p best = model.best_score
def transform(self, dataset, exponent): return lib.polynomial(dataset, exponent)