Ejemplo n.º 1
0
    def test_leave_discrete(self):
        s = [0] * 50 + [1] * 50
        X1 = np.array(s).reshape((100, 1))
        X2 = np.arange(100).reshape((100, 1))
        X3 = np.ones((100, 1))
        X = np.hstack([X1, X2, X3])
        domain = data.Domain([
            data.DiscreteVariable("a", values="MF"),
            data.ContinuousVariable("b"),
            data.DiscreteVariable("c", values="AB")
        ], data.ContinuousVariable("d"))
        table = data.Table(domain, X, X1)
        dom = discretize.DomainDiscretizer(table)
        self.assertIs(dom[0], table.domain[0])
        self.assertEqual(dom[1].compute_value.points, [24.5, 49.5, 74.5])
        self.assertIs(dom[2], table.domain[2])
        self.assertIs(dom.class_var, table.domain.class_var)

        domain = data.Domain([
            data.DiscreteVariable("a", values="MF"),
            data.ContinuousVariable("b"),
            data.DiscreteVariable("c", values="AB")
        ], data.DiscreteVariable("d"))
        table = data.Table(domain, X, X1)
        dom = discretize.DomainDiscretizer(table)
        self.assertIs(dom[0], table.domain[0])
        self.assertEqual(dom[1].compute_value.points, [24.5, 49.5, 74.5])
        self.assertIs(dom[2], table.domain[2])
        self.assertIs(dom.class_var, table.domain.class_var)
Ejemplo n.º 2
0
    def test_method(self):
        dom = discretize.DomainDiscretizer(self.table_class)
        self.assertEqual(len(dom[1].values), 4)

        dom = discretize.DomainDiscretizer(self.table_class,
                                           method=discretize.EqualWidth(n=2))
        self.assertEqual(len(dom[1].values), 2)
Ejemplo n.º 3
0
    def test_discretize_class(self):
        dom = discretize.DomainDiscretizer(self.table_class)
        self.assertIs(dom.class_var, self.table_class.domain.class_var)

        dom = discretize.DomainDiscretizer(self.table_class,
                                           discretize_class=True)
        self.assertIs(dom.class_var, self.table_class.domain.class_var)
Ejemplo n.º 4
0
 def test_fixed(self):
     dom = discretize.DomainDiscretizer(self.table_no_class,
                                        method=discretize.EqualWidth(n=2),
                                        fixed={"Feature 2": [1, 11]})
     self.assertEqual(len(dom.attributes), 2)
     self.assertEqual(dom[0].compute_value.points, [0.5])
     self.assertEqual(dom[1].compute_value.points, [6])
Ejemplo n.º 5
0
    def test_discretize_exclude_constant(self):
        dom = discretize.DomainDiscretizer(self.table_no_class)
        self.assertEqual(len(dom.attributes), 2)
        self.assertEqual(dom[0].compute_value.points, [0.5])
        self.assertEqual(dom[1].compute_value.points, [24.5, 49.5, 74.5])

        dom = discretize.DomainDiscretizer(self.table_no_class, clean=False)
        self.assertEqual(len(dom.attributes), 3)
        self.assertEqual(dom[0].compute_value.points, [0.5])
        self.assertEqual(dom[1].compute_value.points, [24.5, 49.5, 74.5])
        self.assertEqual(dom[2].compute_value.points, [])

        dom = discretize.DomainDiscretizer(self.table_class)
        self.assertEqual(len(dom.attributes), 2)
        self.assertEqual(dom[0].compute_value.points, [0.5])
        self.assertEqual(dom[1].compute_value.points, [24.5, 49.5, 74.5])
Ejemplo n.º 6
0
 def test_remove_mapping_after_compute_value(self):
     housing = Table("housing")
     method = discretize.EqualFreq(n=3)
     discretizer = discretize.DomainDiscretizer(discretize_class=True,
                                                method=method)
     domain = discretizer(housing)
     data = housing.transform(domain)
     val12 = np.nonzero(data.Y > 0)[0]
     data = data[val12]
     remover = Remove(class_flags=Remove.RemoveUnusedValues)
     cleaned = remover(data)
     np.testing.assert_equal(cleaned.Y, data.Y - 1)
Ejemplo n.º 7
0
 def test_purge_discretized(self):
     housing = Table("housing")
     method = discretize.EqualFreq(n=3)
     discretizer = discretize.DomainDiscretizer(discretize_class=True,
                                                method=method)
     domain = discretizer(housing)
     data = housing.transform(domain)
     widget = self.widget_with_context(domain, [["MEDV", 101, 2, (2, 3)]])
     widget.purge_classes = True
     self.send_signal(widget.Inputs.data, data)
     out = self.get_output(widget.Outputs.matching_data)
     expected = data.Y[(data.Y == 1) + (data.Y == 2)]
     expected = (expected == 2).astype(float)
     np.testing.assert_equal(out.Y, expected)