test_classifier.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/usr/bin/python
  2. from cPickle import dump, load
  3. from Classifier import Classifier
  4. if len(argv) < 5:
  5. print 'Usage: python %s FILE_SUFFIX C GAMMA NEIGHBOURS' % argv[0]
  6. exit(1)
  7. print 'Loading learning set'
  8. learning_set = load(file('learning_set%s.dat' % argv[1], 'r'))
  9. # Train the classifier with the learning set
  10. classifier = Classifier(c=float(argv[1]), \
  11. gamma=float(argv[2]), \
  12. neighbours=int(argv[3]))
  13. classifier.train(learning_set)
  14. print 'Loading test set'
  15. test_set = load(file('test_set%s.dat' % argv[1], 'r'))
  16. l = len(test_set)
  17. matches = 0
  18. for i, char in enumerate(test_set):
  19. prediction = classifier.classify(char, char.value)
  20. if char.value == prediction:
  21. print ':-----> Successfully recognized "%s"' % char.value,
  22. matches += 1
  23. else:
  24. print ':( Expected character "%s", got "%s"' \
  25. % (char.value, prediction),
  26. print ' -- %d of %d (%d%% done)' % (i + 1, l, int(100 * (i + 1) / l))
  27. print '\n%d matches (%d%%), %d fails' % (matches, \
  28. int(100 * matches / len(test_set)), \
  29. len(test_set) - matches)