def commit(self): self.Error.unexpected_error.clear() self.Warning.model_not_appropriate.clear() self.model.clear() data = self.data if not data or not self._models: return try: with self.progressBar(len(self._models) * (self.n_folds + 1) + 1) as progress: res = model_evaluation(data, list(self._models.values()), self.n_folds, self.forecast_steps, callback=progress.advance) except ValueError as e: self.Error.unexpected_error(e.args[0]) return res = np.array(res, dtype=object) if res.ndim > 1: self.model.setHorizontalHeaderLabels(res[0, 1:].tolist()) self.model.setVerticalHeaderLabels(res[1:, 0].tolist()) self.model.wrap(res[1:, 1:].tolist()) else: self.Warning.model_not_appropriate()
def commit(self): self.Error.unexpected_error.clear() self.model.clear() data = self.data if not data or not self._models: return try: with self.progressBar(len(self._models) * (self.n_folds + 1) + 1) as progress: res = model_evaluation(data, list(self._models.values()), self.n_folds, self.forecast_steps, callback=progress.advance) except ValueError as e: self.Error.unexpected_error(e.args[0]) return res = np.array(res, dtype=object) self.model.setHorizontalHeaderLabels(res[0, 1:].tolist()) self.model.setVerticalHeaderLabels(res[1:, 0].tolist()) self.model.wrap(res[1:, 1:].tolist())
def test_model_evaluation(self): models = [ARIMA((1, 1, 0)), ARIMA((2, 1, 1)), VAR(1), VAR(3)] results = model_evaluation(data, models, n_folds=10, forecast_steps=3) results = np.array(results, dtype=object) self.assertEqual(results.shape, (4 * 2 + 1, 8)) np.testing.assert_equal(results[1:, 1:].astype(float) > 0, True)