Ejemplo n.º 1
0
        public void testDLTestMatchesEvenOnMismatchedTargetAttributeValue()
        {
            DataSet ds   = DataSetFactory.getRestaurantDataSet();
            Example e    = ds.getExample(0);
            DLTest  test = new DLTest();

            test.add("type", "French");
            Assert.IsTrue(test.matches(e));
        }
Ejemplo n.º 2
0
        public void testDLTestMatchSucceedsWithMatchedExample()
        {
            DataSet ds   = DataSetFactory.getRestaurantDataSet();
            Example e    = ds.getExample(0);
            DLTest  test = new DLTest();

            test.add("type", "French");
            Assert.IsTrue(test.matches(e));
        }
Ejemplo n.º 3
0
        public void testDLTestMatchFailsOnMismatchedExample()
        {
            DataSet ds   = DataSetFactory.getRestaurantDataSet();
            Example e    = ds.getExample(0);
            DLTest  test = new DLTest();

            test.add("type", "Thai");
            Assert.IsFalse(test.matches(e));
        }
Ejemplo n.º 4
0
        public void testDecisionListHandlesEmptyDataSet()
        {
            // tests first base case of recursion
            DecisionList dlist = new DecisionList("Yes", "No");

            DLTest test1 = new DLTest();

            test1.add("type", "Thai"); // doesn't match first example
            dlist.add(test1, "test1success");
        }
Ejemplo n.º 5
0
        public void testDecisionListWithSingleTestReturnsTestValueIfTestSuccessful()
        {
            DecisionList dlist = new DecisionList("Yes", "No");
            DataSet      ds    = DataSetFactory.getRestaurantDataSet();

            DLTest test = new DLTest();

            test.add("type", "French");

            dlist.add(test, "test1success");

            Assert.AreEqual("test1success", dlist.predict(ds.getExample(0)));
        }
Ejemplo n.º 6
0
        public void testDLTestReturnsMatchedAndUnmatchedExamplesCorrectly()
        {
            DataSet ds   = DataSetFactory.getRestaurantDataSet();
            DLTest  test = new DLTest();

            test.add("type", "Burger");

            DataSet matched = test.matchedExamples(ds);

            Assert.AreEqual(4, matched.size());

            DataSet unmatched = test.unmatchedExamples(ds);

            Assert.AreEqual(8, unmatched.size());
        }
Ejemplo n.º 7
0
        public void testDecisionListFallsThruToDefaultIfNoTestMatches()
        {
            DecisionList dlist = new DecisionList("Yes", "No");
            DataSet      ds    = DataSetFactory.getRestaurantDataSet();

            DLTest test1 = new DLTest();

            test1.add("type", "Thai"); // doesn't match first example
            dlist.add(test1, "test1success");

            DLTest test2 = new DLTest();

            test2.add("type", "Burger");
            dlist.add(test2, "test2success");// doesn't match first example

            Assert.AreEqual("No", dlist.predict(ds.getExample(0)));
        }
Ejemplo n.º 8
0
        public void testDecisionListMerge()
        {
            DecisionList dlist1 = new DecisionList("Yes", "No");
            DecisionList dlist2 = new DecisionList("Yes", "No");
            DataSet      ds     = DataSetFactory.getRestaurantDataSet();

            DLTest test1 = new DLTest();

            test1.add("type", "Thai"); // doesn't match first example
            dlist1.add(test1, "test1success");

            DLTest test2 = new DLTest();

            test2.add("type", "French");
            dlist2.add(test2, "test2success");// matches first example

            DecisionList dlist3 = dlist1.mergeWith(dlist2);

            Assert.AreEqual("test2success", dlist3.predict(ds.getExample(0)));
        }
Ejemplo n.º 9
0
        private DecisionList DecisionListLearning(DataSet ds)
        {
            if (ds.Count == 0)
            {
                return(new DecisionList(positive, negative));
            }
            var    possibleTests = testFactory.CreateDLTestsWithAttributeCount(ds, 1);
            DLTest test          = this.GetValidTest(possibleTests, ds);

            if (test == null)
            {
                return(new DecisionList(null, Failure));
            }
            // at this point there is a test that classifies some subset of examples
            // with the same target value
            DataSet matched = test.MatchedExamples(ds);
            var     list    = new DecisionList(positive, negative);

            list.Add(test, matched.GetExample(0).TargetValue());
            return(list.MergeWith(this.DecisionListLearning(test.UnmatchedExamples(ds))));
        }
Ejemplo n.º 10
0
        //
        // PRIVATE METHODS
        //
        private DecisionList decisionListLearning(DataSet ds)
        {
            if (ds.size() == 0)
            {
                return(new DecisionList(positive, negative));
            }
            List <DLTest> possibleTests = testFactory
                                          .createDLTestsWithAttributeCount(ds, 1);
            DLTest test = getValidTest(possibleTests, ds);

            if (test == null)
            {
                return(new DecisionList(null, FAILURE));
            }
            // at this point there is a test that classifies some subset of examples
            // with the same target value
            DataSet      matched = test.matchedExamples(ds);
            DecisionList list    = new DecisionList(positive, negative);

            list.add(test, matched.getExample(0).targetValue());
            return(list.mergeWith(decisionListLearning(test.unmatchedExamples(ds))));
        }
Ejemplo n.º 11
0
        private DLTest CreateForTestL(int i)
        {
            DLTest t = new DLTest();

            t.DayDate  = DateTime.Now.AddDays(rnd.Next(10, 20000)).AddHours(rnd.Next(0, 10)).AddMinutes(rnd.Next(0, 40));
            t.DayDate2 = DateTime.Now.AddDays(rnd.Next(10, 20000)).AddHours(rnd.Next(0, 10)).
                         AddMinutes(rnd.Next(0, 40));
            t.DayDate3 = DateTime.Now.AddDays(rnd.Next(10, 20000)).AddHours(rnd.Next(0, 10)).
                         AddMinutes(rnd.Next(0, 40));
            t.DayDate4 = DateTime.Now.AddDays(rnd.Next(10, 20000)).AddHours(rnd.Next(0, 10)).
                         AddMinutes(rnd.Next(0, 40));
            t.DayDate5 = DateTime.Now.AddDays(rnd.Next(10, 20000)).AddHours(rnd.Next(0, 10)).
                         AddMinutes(rnd.Next(0, 40));
            t.DayDate6 = DateTime.Now.AddDays(rnd.Next(10, 20000)).AddHours(rnd.Next(0, 10)).
                         AddMinutes(rnd.Next(0, 40));
            t.ddVal  = (decimal)rnd.NextDouble() * 1000000M;
            t.ddVal2 = (decimal)rnd.NextDouble() * 1000000M;
            t.ddVal3 = (decimal)rnd.NextDouble() * 1000000M;
            t.ddVal4 = (decimal)rnd.NextDouble() * 1000000M;
            t.ddVal5 = (decimal)rnd.NextDouble() * 1000000M;
            t.ddVal6 = (decimal)rnd.NextDouble() * 1000000M;

            t.dVal  = rnd.NextDouble() * 100000;
            t.dVal2 = rnd.NextDouble() * 100000;
            t.dVal3 = rnd.NextDouble() * 100000;
            t.dVal4 = rnd.NextDouble() * 100000;
            t.dVal5 = rnd.NextDouble() * 100000;
            t.dVal6 = rnd.NextDouble() * 100000;

            t.idx = rnd.Next(0, 1000000);

            t.sIdx  = "XXXYYYZZZ" + (rnd.NextDouble() * 100000).ToString();
            t.sIdx2 = "XXXYYYZZZ2" + (rnd.NextDouble() * 100000).ToString();
            t.sIdx3 = "XXXYYYZZZ3" + (rnd.NextDouble() * 100000).ToString();
            t.sIdx4 = "XXXYYYZZZ3" + (rnd.NextDouble() * 100000).ToString();
            t.sIdx5 = "XXXYYYZZZ3" + (rnd.NextDouble() * 100000).ToString();
            t.sIdx6 = "XXXYYYZZZ3" + (rnd.NextDouble() * 100000).ToString();
            return(t);
        }