training_set = [
    (0, 0, 0, 0),
    (0, 1, 0, 0),
    (0, 0, 1, 0),
    (0, 0, 0, 1),
    (0, 1, 1, 0),
    (1, 0, 0, 0),
    (1, 1, 0, 0),
    (1, 0, 1, 0),
    (1, 1, 1, 0),
    ]
results = [0, 0, 0, 0, 0, 1, 1, 1, 1]


import svm

##kernel_type
##LINEAR
##POLY
##RBT
##SIGMOID

##degree
##eps

##svm_type
##C_SVC
##NU_SVC
##ONE_CLASS
##EPSILON_SVR
##NU_SVR
#params = svm.svm_parameter(kernel_type=svm.RBF)
params = svm.svm_parameter(svm_type=svm.EPSILON_SVR, kernel_type=svm.RBF)



# Map the results to {-1, 1} instead of {0, 1}
#sresults = [(x or -1) for x in results]
sresults = results
dataset = svm.svm_problem(sresults, training_set)

print "Training SVM"

# svm.svm_model prints data to STDOUT!  To get rid of this junk, I
# have to temporarily remap STDOUT.  Grrr...  Don't ever write code
# that does this.

model = svm.svm_model(dataset, params)

print "TESTING"
for i in range(len(training_set)):
    print model.predict(training_set[i])


