def classifier_domainadaptationsvm_modular(fm_train_dna=traindna,fm_test_dna=testdna, \
                                                label_train_dna=label_traindna, \
                                               label_test_dna=label_testdna,fm_train_dna2=traindna2,fm_test_dna2=testdna2, \
                                               label_train_dna2=label_traindna2,label_test_dna2=label_testdna2,C=1,degree=3):



    
	feats_train = StringCharFeatures(fm_train_dna, DNA)
	feats_test = StringCharFeatures(fm_test_dna, DNA)
	kernel = WeightedDegreeStringKernel(feats_train, feats_train, degree)
	labels = Labels(label_train_dna)
	svm = SVMLight(C, kernel, labels)
	svm.train()
	#svm.io.set_loglevel(MSG_DEBUG)
    
	#####################################
		
	#print "obtaining DA SVM from previously trained SVM"

	feats_train2 = StringCharFeatures(fm_train_dna, DNA)
	feats_test2 = StringCharFeatures(fm_test_dna, DNA)
	kernel2 = WeightedDegreeStringKernel(feats_train, feats_train, degree)
	labels2 = Labels(label_train_dna)

	# we regularize against the previously obtained solution
	dasvm = DomainAdaptationSVM(C, kernel2, labels2, svm, 1.0)
	dasvm.train()

	out = dasvm.classify(feats_test2).get_labels()

	return out #,dasvm TODO
Ejemplo n.º 2
0
#for i in xrange(len(out1)):
#
#    try:
#        assert(abs(out1[i]-out2[i])<= 0.001)
#
#    except:
#        print "(%.5f, %.5f)" % (out1[i], out2[i])
#
#print "comparing regularization vs vector of twos (DONE)\n"

#############################################
#    check final output on test data using regtrick
#############################################

print "classifying with DA_SVM"
out_dasvm_libsvm = dasvm_libsvm.classify(feat_test).get_labels()
out_dasvm_liblinear = dasvm_liblinear.classify(feat_test).get_labels()

# compute manual output
svm_out = dasvm_manual_libsvm.classify(feat_test).get_labels()
pre_svm_out = presvm_libsvm.classify(feat_test).get_labels()
out_manual = svm_out + B * (pre_svm_out - presvm_liblinear.get_bias())

print "comparing final outputs"
# compare final outputs
for i in xrange(len(out_dasvm_libsvm)):

    try:
        assert (abs(out_dasvm_liblinear[i] - out_dasvm_libsvm[i]) <= 0.001)
    except:
        print "(%.5f, %.5f, %.5f)" % (out_dasvm_liblinear[i],
		      'AGCAGGAAGGGGGGGAGTC']
label_test_dna2 = numpy.array(5*[-1.0] + 5*[1.0])


C = 1.0

feats_train = StringCharFeatures(fm_train_dna, DNA)
feats_test = StringCharFeatures(fm_test_dna, DNA)
kernel = WeightedDegreeStringKernel(feats_train, feats_train, degree)
labels = Labels(label_train_dna)
svm = SVMLight(C, kernel, labels)
svm.train()

#####################################

print "obtaining DA SVM from previously trained SVM"

feats_train2 = StringCharFeatures(fm_train_dna, DNA)
feats_test2 = StringCharFeatures(fm_test_dna, DNA)
kernel2 = WeightedDegreeStringKernel(feats_train, feats_train, degree)
labels2 = Labels(label_train_dna)

# we regularize against the previously obtained solution
dasvm = DomainAdaptationSVM(C, kernel2, labels2, svm, 1.0)
dasvm.train()

out = dasvm.classify(feats_test2).get_labels()

print out

Ejemplo n.º 4
0
#############################################

dat = run.get_eval_data()

dtest = dat["thaliana"]
subset_size = 5


test_examples = [i.example for i in dtest[0:subset_size]]
test_labels = [i.label for i in dtest[0:subset_size]]

feat_test = StringCharFeatures(DNA)
feat_test.set_features(test_examples)

print "classifying with DA_SVM"
out_dasvm = dasvm.classify(feat_test).get_labels()

print out_dasvm


svm_out = svm.classify(feat_test).get_labels()
pre_svm_out = presvm.classify(feat_test).get_labels()

total_out = svm_out + B*(pre_svm_out - presvm.get_bias())

print total_out


for i in xrange(len(out_dasvm)):
    
    o1 = total_out[i]