def test1NaiveBayes(self): fName = os.path.join(RDConfig.RDCodeDir, 'ML', 'NaiveBayes', 'test_data', 'stddata.csv') data = DataUtils.TextFileToData(fName) examples = data.GetNamedData() nvars = data.GetNVars() attrs = list(range(1, nvars + 1)) npvals = [0] + [3] * nvars + [2] qBounds = [0] + [2] * nvars + [0] mod, err = CrossValidate.CrossValidationDriver(examples, attrs, npvals, qBounds, silent=True) self.assertAlmostEqual(mod._classProbs[0], 0.5000, 4) self.assertAlmostEqual(mod._classProbs[1], 0.5000, 4) self.assertAlmostEqual(mod._QBoundVals[1][0], -0.0360, 4) self.assertAlmostEqual(mod._QBoundVals[1][1], 0.114) self.assertAlmostEqual(mod._QBoundVals[2][0], -0.7022, 4) self.assertAlmostEqual(mod._QBoundVals[2][1], -0.16635, 4) self.assertAlmostEqual(mod._QBoundVals[3][0], -0.3659, 4) self.assertAlmostEqual(mod._QBoundVals[3][1], 0.4305, 4) self.assertAlmostEqual(err, 0.2121, 4) mod, err = CrossValidate.CrossValidationDriver(examples, attrs, npvals, qBounds, silent=True, calcTotalError=True) self.assertAlmostEqual(mod._classProbs[0], 0.515151, 4) self.assertAlmostEqual(mod._classProbs[1], 0.484848, 4) self.assertAlmostEqual(mod._QBoundVals[1][0], -0.40315, 4) self.assertAlmostEqual(mod._QBoundVals[1][1], 0.114) self.assertAlmostEqual(mod._QBoundVals[2][0], -0.62185, 4) self.assertAlmostEqual(mod._QBoundVals[2][1], -0.19965, 4) self.assertAlmostEqual(mod._QBoundVals[3][0], 0.4305, 4) self.assertAlmostEqual(mod._QBoundVals[3][1], 0.80305, 4) self.assertAlmostEqual(err, 0.14563, 4) mod, err = CrossValidate.CrossValidationDriver( examples, attrs, npvals, qBounds, silent=True, replacementSelection=True) self.assertAlmostEqual(mod._classProbs[0], 0.5131578, 4) self.assertAlmostEqual(mod._classProbs[1], 0.4868421, 4) self.assertAlmostEqual(mod._QBoundVals[1][0], -0.036, 4) self.assertAlmostEqual(mod._QBoundVals[1][1], 0.93465, 4) self.assertAlmostEqual(mod._QBoundVals[2][0], -0.6696, 4) self.assertAlmostEqual(mod._QBoundVals[2][1], -0.19965, 4) self.assertAlmostEqual(mod._QBoundVals[3][0], -1.06785, 4) self.assertAlmostEqual(mod._QBoundVals[3][1], 0.4305, 4) self.assertAlmostEqual(err, 0.3, 4)
def test2NaiveBayes(self): fName = os.path.join(RDConfig.RDCodeDir, 'ML', 'NaiveBayes', 'test_data', 'stddata.csv') data = DataUtils.TextFileToData(fName) examples = data.GetNamedData() nvars = data.GetNVars() attrs = list(range(1, nvars + 1)) npvals = [0] + [3] * nvars + [2] qBounds = [0] + [2] * nvars + [0] mod, err = CrossValidate.CrossValidationDriver(examples, attrs, npvals, qBounds, mEstimateVal=20.0, silent=True) self.assertTrue(isinstance(mod, NaiveBayesClassifier)) self.assertAlmostEqual(err, 0.1818, 4) self.assertEqual(mod.GetName(), '') mod.SetName('modelName') self.assertEqual(mod.GetName(), 'modelName') mod.NameModel(None) self.assertEqual(mod.GetName(), 'NaiveBayesClassifier') self.assertGreater(len(mod.GetExamples()), 0) self.assertGreater(len(mod.GetTrainingExamples()), 0) self.assertEqual(sorted(mod.GetTrainingExamples() + mod.GetExamples()), sorted(examples))
def test1NaiveBayes(self): fName = os.path.join(RDConfig.RDCodeDir, 'ML', 'NaiveBayes', 'test_data', 'stddata.csv') data = DataUtils.TextFileToData(fName) examples = data.GetNamedData() nvars = data.GetNVars() attrs = range(1, nvars + 1) npvals = [0] + [3] * nvars + [2] qBounds = [0] + [2] * nvars + [0] mod, err = CrossValidate.CrossValidationDriver(examples, attrs, npvals, qBounds, silent=True) self.assertAlmostEqual(mod._classProbs[0], 0.5000, 4) self.assertAlmostEqual(mod._classProbs[1], 0.5000, 4) self.assertAlmostEqual(mod._QBoundVals[1][0], -0.0360, 4) self.assertAlmostEqual(mod._QBoundVals[1][1], 0.114) self.assertAlmostEqual(mod._QBoundVals[2][0], -0.7022, 4) self.assertAlmostEqual(mod._QBoundVals[2][1], -0.16635, 4) self.assertAlmostEqual(mod._QBoundVals[3][0], -0.3659, 4) self.assertAlmostEqual(mod._QBoundVals[3][1], 0.4305, 4) self.assertAlmostEqual(err, 0.2121, 4)
def test2NaiveBayes(self): fName = os.path.join(RDConfig.RDCodeDir, 'ML', 'NaiveBayes', 'test_data', 'stddata.csv') data = DataUtils.TextFileToData(fName) examples = data.GetNamedData() nvars = data.GetNVars() attrs = range(1, nvars + 1) npvals = [0] + [3] * nvars + [2] qBounds = [0] + [2] * nvars + [0] mod, err = CrossValidate.CrossValidationDriver(examples, attrs, npvals, qBounds, mEstimateVal=20.0) assert feq(err, 0.19354)
def test1NaiveBayes(self): fName = os.path.join(RDConfig.RDCodeDir, 'ML', 'NaiveBayes', 'test_data', 'stddata.csv') data = DataUtils.TextFileToData(fName) examples = data.GetNamedData() nvars = data.GetNVars() attrs = range(1, nvars + 1) npvals = [0] + [3] * nvars + [2] qBounds = [0] + [2] * nvars + [0] mod, err = CrossValidate.CrossValidationDriver(examples, attrs, npvals, qBounds) assert feq(mod._classProbs[0], 0.54167) assert feq(mod._classProbs[1], 0.45833) assert feq(mod._QBoundVals[1][0], -0.56995) assert feq(mod._QBoundVals[1][1], 0.114) assert feq(mod._QBoundVals[2][0], -0.7022) assert feq(mod._QBoundVals[2][1], -0.2347) assert feq(mod._QBoundVals[3][0], -0.3659) assert feq(mod._QBoundVals[3][1], 1.17275) assert feq(err, 0.16129)