def test_copy(self): # train model #1 metric = Metric({"name": "logloss"}) cat = CatBoostAlgorithm(self.params) cat.fit(self.X, self.y) y_predicted = cat.predict(self.X) loss = metric(self.y, y_predicted) # create model #2 cat2 = CatBoostAlgorithm(self.params) # model #2 is initialized in constructor self.assertTrue(cat2.model is not None) # do a copy and use it for predictions cat2 = cat.copy() self.assertEqual(type(cat), type(cat2)) y_predicted = cat2.predict(self.X) loss2 = metric(self.y, y_predicted) self.assertEqual(loss, loss2) # fit model #1, there should be improvement in loss cat.fit(self.X, self.y) y_predicted = cat.predict(self.X) loss3 = metric(self.y, y_predicted) self.assertTrue(loss3 < loss) # the loss of model #2 should not change y_predicted = cat2.predict(self.X) loss4 = metric(self.y, y_predicted) assert_almost_equal(loss2, loss4)
def test_copy(self): # train model #1 metric = Metric({"name": "logloss"}) cat = CatBoostAlgorithm(self.params) cat.fit(self.X, self.y) y_predicted = cat.predict(self.X) loss = metric(self.y, y_predicted) # create model #2 cat2 = CatBoostAlgorithm(self.params) # model #2 is initialized in constructor self.assertTrue(cat2.model is not None) # do a copy and use it for predictions cat2 = cat.copy() self.assertEqual(type(cat), type(cat2)) y_predicted = cat2.predict(self.X) loss2 = metric(self.y, y_predicted) self.assertEqual(loss, loss2)