def test_class_distribution(self): d = data.Table("zoo") disc = distribution.class_distribution(d) self.assertIsInstance(disc, np.ndarray) self.assertIs(disc.variable, d.domain["type"]) self.assertEqual(disc.unknowns, 0) np.testing.assert_array_equal(disc, [4.0, 20.0, 13.0, 8.0, 10.0, 41.0, 5.0])
def test_class_distribution(self): d = data.Table("zoo") disc = distribution.class_distribution(d) self.assertIsInstance(disc, np.ndarray) self.assertIs(disc.variable, d.domain["type"]) self.assertEqual(disc.unknowns, 0) assert_dist_equal(disc, [4.0, 20.0, 13.0, 8.0, 10.0, 41.0, 5.0])
def test_indexing(self): d = data.Table("zoo") indamphibian = d.domain.class_var.to_val("amphibian") disc = distribution.class_distribution(d) self.assertEqual(len(disc), len(d.domain.class_var.values)) self.assertEqual(disc["mammal"], 41) self.assertEqual(disc[indamphibian], 4) disc["mammal"] = 100 self.assertEqual(disc[d.domain.class_var.to_val("mammal")], 100) disc[indamphibian] = 33 self.assertEqual(disc["amphibian"], 33) disc = distribution.class_distribution(d) self.assertEqual(list(disc), self.freqs)
def test_multiple_target_variables(self): d = data.Table.from_numpy( data.Domain( attributes=[data.ContinuousVariable("n1")], class_vars=[ data.DiscreteVariable("c1", values=["r", "g", "b", "a"]), data.DiscreteVariable("c2", values=["r", "g", "b", "a"]), data.DiscreteVariable("c3", values=["r", "g", "b", "a"]), ], ), X=np.array([range(5)]).T, Y=np.array([[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]).T, ) dists = distribution.class_distribution(d) self.assertEqual(len(dists), 3) self.assertTrue( all(isinstance(dist, distribution.Discrete) for dist in dists))
def test_multiple_target_variables(self): d = data.Table.from_numpy(data.Domain( attributes=[data.ContinuousVariable('n1')], class_vars=[ data.DiscreteVariable('c1', values=('r', 'g', 'b', 'a')), data.DiscreteVariable('c2', values=('r', 'g', 'b', 'a')), data.DiscreteVariable('c3', values=('r', 'g', 'b', 'a')), ]), X=np.array([range(5)]).T, Y=np.array([ [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], ]).T) dists = distribution.class_distribution(d) self.assertEqual(len(dists), 3) self.assertTrue( all(isinstance(dist, distribution.Discrete) for dist in dists))
def test_multiple_target_variables(self): d = data.Table.from_numpy( data.Domain( attributes=[data.ContinuousVariable('n1')], class_vars=[ data.DiscreteVariable('c1', values=['r', 'g', 'b', 'a']), data.DiscreteVariable('c2', values=['r', 'g', 'b', 'a']), data.DiscreteVariable('c3', values=['r', 'g', 'b', 'a']), ] ), X=np.array([range(5)]).T, Y=np.array([ [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], ]).T ) dists = distribution.class_distribution(d) self.assertEqual(len(dists), 3) self.assertTrue(all(isinstance(dist, distribution.Discrete) for dist in dists))
def test_from_table(self): d = data.Table("zoo") disc = distribution.Discrete(d, "type") self.assertIsInstance(disc, np.ndarray) self.assertIs(disc.variable, d.domain["type"]) self.assertEqual(disc.unknowns, 0) assert_dist_equal(disc, self.freqs) disc2 = distribution.Discrete(d, d.domain.class_var) self.assertIsInstance(disc2, np.ndarray) self.assertIs(disc2.variable, d.domain.class_var) self.assertEqual(disc, disc2) disc3 = distribution.Discrete(d, len(d.domain.attributes)) self.assertIsInstance(disc3, np.ndarray) self.assertIs(disc3.variable, d.domain.class_var) self.assertEqual(disc, disc3) disc5 = distribution.class_distribution(d) self.assertIsInstance(disc5, np.ndarray) self.assertIs(disc5.variable, d.domain.class_var) self.assertEqual(disc, disc5)
def test_from_table(self): d = data.Table("zoo") disc = distribution.Discrete(d, "type") self.assertIsInstance(disc, np.ndarray) self.assertIs(disc.variable, d.domain["type"]) self.assertEqual(disc.unknowns, 0) np.testing.assert_array_equal(disc, self.freqs) disc2 = distribution.Discrete(d, d.domain.class_var) self.assertIsInstance(disc2, np.ndarray) self.assertIs(disc2.variable, d.domain.class_var) self.assertEqual(disc, disc2) disc3 = distribution.Discrete(d, len(d.domain.attributes)) self.assertIsInstance(disc3, np.ndarray) self.assertIs(disc3.variable, d.domain.class_var) self.assertEqual(disc, disc3) disc5 = distribution.class_distribution(d) self.assertIsInstance(disc5, np.ndarray) self.assertIs(disc5.variable, d.domain.class_var) self.assertEqual(disc, disc5)