Package nltk_lite :: Package contrib :: Package classifier_tests :: Module onertests
[hide private]
[frames] | no frames]

Source Code for Module nltk_lite.contrib.classifier_tests.onertests

 1  # Natural Language Toolkit 
 2  # 
 3  # Author: Sumukh Ghodke <sumukh dot ghodke at gmail dot com> 
 4  # 
 5  # URL: <http://nltk.sf.net> 
 6  # This software is distributed under GPL, for license information see LICENSE.TXT 
 7   
 8  from nltk_lite.contrib.classifier import oner, instances as ins, format 
 9  from nltk_lite.contrib.classifier_tests import * 
10  from nltk_lite.contrib.classifier.exceptions import invaliddataerror as inv 
11   
12 -class OneRTestCase(unittest.TestCase):
13
14 - def setUp(self):
15 path = self.WEATHER = datasetsDir(self) + 'minigolf' + SEP + 'weather' 16 c45 = format.C45_FORMAT 17 self.classifier = oner.OneR(c45.get_training_instances(path), c45.get_attributes(path), c45.get_klass(path))
18
20 minError = self.classifier.best_decision_stump(self.classifier.training) 21 self.assertAlmostEqual(0.2222222, minError.error())
22
24 self.classifier.test(format.C45_FORMAT.get_test_instances(self.WEATHER), False) 25 self.assertTrue(self.classifier.test_instances[0].classified_klass is not None) 26 self.assertEqual('yes', self.classifier.test_instances[0].classified_klass)
27
29 cm = self.classifier.verify(format.C45_FORMAT.get_gold_instances(self.WEATHER)) 30 self.assertEqual(0.5, cm.accuracy()) 31 self.assertAlmostEqual(0.6666667, cm.fscore())
32
34 path = self.WEATHER 35 c45 = format.C45_FORMAT 36 classifier = OneRStub(c45.get_training_instances(path), c45.get_attributes(path), c45.get_klass(path)) 37 self.assertEqual("dummy Best Decision stump", classifier.best_decision_stump(classifier.training, [], 'dummy_algorithm'))
38
40 try: 41 self.classifier.best_decision_stump(self.classifier.training, [], 'invalid_algorithm') 42 self.fail('should throw error') 43 except inv.InvalidDataError: 44 pass
45
47 try: 48 path = datasetsDir(self) + 'numerical' + SEP + 'weather' 49 c45 = format.C45_FORMAT 50 classifier = oner.OneR(c45.get_training_instances(path), c45.get_attributes(path), c45.get_klass(path)) 51 self.fail('should have thrown error') 52 except inv.InvalidDataError: 53 pass
54 55
56 -class OneRStub(oner.OneR):
57 - def __init__(self, instances, attributes, klass):
58 oner.OneR.__init__(self, instances, attributes, klass)
59
60 - def dummy_algorithm(self):
61 return "dummy Best Decision stump"
62