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)); }
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)); }
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)); }
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"); }
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))); }
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()); }
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))); }
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))); }
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)))); }
// // 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)))); }
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); }