def testLearnClassify(self): docs = getDocs() l = Learner() class_values = [1, 1, 1, -1, -1] model = l.learn(docs, class_values) judgments = [model.classify(d) for d in docs] for i in range(len(class_values)): binary = 1 if judgments[i] > 0 else -1 self.assertEqual(class_values[i], binary)
def testLearn(self): docs = getDocs() l = Learner() model = l.learn(docs, [1, 1, 1, -1, -1]) print model, model.bias self.assertEqual(5, model.num_docs) self.assertEqual(10, len(model.plane)) self.assertNotEqual(model.bias, 0) print model.plane
def testLearnUnbiased(self): docs = getDocs() l = Learner() l.biased_hyperplane = False model = l.learn(docs, [1, 1, 1, -1, -1]) print model, model.bias self.assertEqual(5, model.num_docs) self.assertEqual(10, len(model.plane)) self.assertEqual(model.bias, 0) print model.plane
from svmlight import DocumentFactory, Learner artists = [line.strip() for line in open('artistList.txt')] tags = [line.strip() for line in open('tagData.txt')] classes = [line.strip() for line in open('classification.txt')] f = DocumentFactory() docs = [f.new(x.split(',')) for x in tags] l = Learner() l.set_kernel_type(0) model = l.learn(docs[50:], [int(s) for s in classes[50:]]) judgments = [model.classify(d) for d in docs[:50]] print model.plane, model.bias print judgments i = 0; while (i < len(judgments)): print str(i) + '. ' + artists[i] if (judgments[i] >= 0.0): print 'yes' else : print 'no' i += 1