def test_unknown(self): t = self.random_table t = self.add_meta_fold(t, 3) fat = t.domain.metas[0] t[0][fat] = float("nan") res = CrossValidationFeature(feature=fat)(t, [NaiveBayesLearner()]) self.assertNotIn(0, res.row_indices)
def test_bad_feature(self): feat = DiscreteVariable(name="fold", values="abc") domain = Domain([DiscreteVariable("x", values="ab")], DiscreteVariable("y", values="cd"), metas=[feat]) t = Table.from_numpy(domain, np.zeros((10, 1)), np.ones((10, 1)), np.full((10, 1), np.nan)) self.assertRaises(ValueError, CrossValidationFeature(feature=feat), t, [NaiveBayesLearner()])
def test_call(self): t = self.random_table t = self.add_meta_fold(t, 3) res = CrossValidationFeature(feature=t.domain.metas[0])(t, [NaiveBayesLearner()]) y = t.Y np.testing.assert_equal(res.actual, y[res.row_indices].reshape(len(t))) np.testing.assert_equal(res.predicted[0], y[res.row_indices].reshape(len(t))) np.testing.assert_equal(np.argmax(res.probabilities[0], axis=1), y[res.row_indices].reshape(len(t)))
def test_init(self): var = DiscreteVariable(name="fold", values="abc") res = CrossValidationFeature(feature=var) self.assertIs(res.feature, var)