def test_ecoc_probability(): features,labels = load() features = features[labels < 5] labels = labels[labels < 5] raw = svm.svm_raw(kernel=svm.dot_kernel(), C=1.) base = ctransforms(raw, svm.svm_sigmoidal_correction()) learner = ecoc_learner(base, probability=True) model = learner.train(features[::2], labels[::2]) results = list(map(model.apply, features[1::2])) results = np.array(results) assert results.shape[1] == len(set(labels)) assert np.mean(results.argmax(1) == labels[1::2]) > .5
def test_platt_correction_class(): F=numpy.ones(10) L=numpy.ones(10) F[:5] *= -1 L[:5] *= 0 corrector = svm_sigmoidal_correction() A,B = learn_sigmoid_constants(F,L) model = corrector.train(F,L) assert model.A == A assert model.B == B assert model.apply(10) > .99 assert model.apply(-10) < .01
def test_platt_correction_class(): F = numpy.ones(10) L = numpy.ones(10) F[:5] *= -1 L[:5] *= 0 corrector = svm_sigmoidal_correction() A, B = learn_sigmoid_constants(F, L) model = corrector.train(F, L) assert model.A == A assert model.B == B assert model.apply(10) > .99 assert model.apply(-10) < .01