def test_predict_raises_error_if_not_fit(self): with self.assertRaises(PyMC3ModelsError) as no_fit_error: test_LR = LinearRegression() test_LR.predict(self.X_train) expected = 'Run fit on the model before predict.' self.assertEqual(str(no_fit_error.exception), expected)
def setUp(self): self.num_pred = 1 self.alpha = 3 self.betas = 4 self.s = 2 # Set random seed for repeatability np.random.seed(27) X = np.random.randn(1000, 1) noise = self.s * np.random.randn(1000, 1) Y = self.betas * X + self.alpha + noise Y = np.squeeze(Y) self.X_train, self.X_test, self.Y_train, self.Y_test = train_test_split( X, Y, test_size=0.4) self.test_LR = LinearRegression() # Fit the model with ADVI once self.test_LR.fit(self.X_train, self.Y_train, num_advi_sample_draws=5000, minibatch_size=2000) self.nuts_LR = LinearRegression() self.test_dir = tempfile.mkdtemp()
def test_save_and_load_work_correctly(self): score1 = self.test_LR.score(self.X_test, self.Y_test) self.test_LR.save(self.test_dir) LR2 = LinearRegression() LR2.load(self.test_dir) self.assertEqual(self.test_LR.inference_type, LR2.inference_type) self.assertEqual(self.test_LR.num_pred, LR2.num_pred) self.assertEqual(self.test_LR.num_training_samples, LR2.num_training_samples) pd.testing.assert_frame_equal(summary(self.test_LR.trace), summary(LR2.trace)) score2 = LR2.score(self.X_test, self.Y_test) np.testing.assert_almost_equal(score1, score2, decimal=1)
def setUp(self): self.num_pred = 1 self.alpha = 3 self.betas = 4 self.s = 2 X = np.random.randn(1000, 1) noise = self.s * np.random.randn(1000, 1) Y = self.betas * X + self.alpha + noise Y = np.squeeze(Y) self.X_train, self.X_test, self.Y_train, self.Y_test = train_test_split( X, Y, test_size=0.4) self.test_LR = LinearRegression() self.nuts_LR = LinearRegression() self.test_dir = tempfile.mkdtemp()