Skip to content

Commit

Permalink
Added multitask python examples
Browse files Browse the repository at this point in the history
  • Loading branch information
lisitsyn committed Jul 17, 2012
1 parent dfb929e commit 197ebdf
Show file tree
Hide file tree
Showing 4 changed files with 116 additions and 3 deletions.
@@ -0,0 +1,37 @@
from numpy import array,hstack
from numpy.random import seed, rand
from tools.load import LoadMatrix
lm=LoadMatrix()

traindat = lm.load_numbers('../data/fm_train_real.dat')
testdat = lm.load_numbers('../data/fm_test_real.dat')
label_traindat = lm.load_labels('../data/label_train_twoclass.dat')

parameter_list = [[traindat,testdat,label_traindat]]

def transfer_multitask_l1l2_logistic_regression(fm_train=traindat,fm_test=testdat,label_train=label_traindat):

from modshogun import BinaryLabels, RealFeatures, IndexBlock, IndexBlockGroup, MultitaskL1L2LogisticRegression

features = RealFeatures(hstack((traindat,traindat)))
labels = BinaryLabels(hstack((label_train,label_train)))

n_vectors = features.get_num_vectors()
task_one = IndexBlock(0,n_vectors/2)
task_two = IndexBlock(n_vectors/2,n_vectors)
task_group = IndexBlockGroup()
task_group.add_block(task_one)
task_group.add_block(task_two)

mtlr = MultitaskL1L2LogisticRegression(0.1,0.1,features,labels,task_group)
mtlr.set_tolerance(1e-2) # use 1e-2 tolerance
mtlr.set_max_iter(10)
mtlr.train()
mtlr.set_current_task(0)
out = mtlr.apply_regression().get_labels()

return out

if __name__=='__main__':
print('TransferMultitaskL1L2LogisticRegression')
transfer_multitask_l1l2_logistic_regression(*parameter_list[0])
Expand Up @@ -9,7 +9,7 @@

parameter_list = [[traindat,testdat,label_traindat]]

def transfer_multitask_group_regression(fm_train=traindat,fm_test=testdat,label_train=label_traindat):
def transfer_multitask_leastsquares_regression(fm_train=traindat,fm_test=testdat,label_train=label_traindat):

from modshogun import RegressionLabels, RealFeatures, IndexBlock, IndexBlockGroup, MultitaskLSRegression

Expand All @@ -24,11 +24,13 @@ def transfer_multitask_group_regression(fm_train=traindat,fm_test=testdat,label_
task_group.add_block(task_two)

mtlsr = MultitaskLSRegression(0.1,features,labels,task_group)
mtlsr.set_regularization(1) # use regularization ratio
mtlsr.set_tolerance(1e-2) # use 1e-2 tolerance
mtlsr.train()
mtlsr.set_current_task(0)
out = mtlsr.apply_regression().get_labels()
return out

if __name__=='__main__':
print('TransferMultitaskGroupRegression')
transfer_multitask_group_regression(*parameter_list[0])
print('TransferMultitaskLeastSquaresRegression')
transfer_multitask_leastsquares_regression(*parameter_list[0])
@@ -0,0 +1,37 @@
from numpy import array,hstack
from numpy.random import seed, rand
from tools.load import LoadMatrix
lm=LoadMatrix()

traindat = lm.load_numbers('../data/fm_train_real.dat')
testdat = lm.load_numbers('../data/fm_test_real.dat')
label_traindat = lm.load_labels('../data/label_train_twoclass.dat')

parameter_list = [[traindat,testdat,label_traindat]]

def transfer_multitask_logistic_regression(fm_train=traindat,fm_test=testdat,label_train=label_traindat):

from modshogun import BinaryLabels, RealFeatures, IndexBlock, IndexBlockGroup, MultitaskLogisticRegression

features = RealFeatures(hstack((traindat,traindat)))
labels = BinaryLabels(hstack((label_train,label_train)))

n_vectors = features.get_num_vectors()
task_one = IndexBlock(0,n_vectors/2)
task_two = IndexBlock(n_vectors/2,n_vectors)
task_group = IndexBlockGroup()
task_group.add_block(task_one)
task_group.add_block(task_two)

mtlr = MultitaskLogisticRegression(0.1,features,labels,task_group)
mtlr.set_regularization(1) # use regularization ratio
mtlr.set_tolerance(1e-2) # use 1e-2 tolerance
mtlr.train()
mtlr.set_current_task(0)
out = mtlr.apply_regression().get_labels()

return out

if __name__=='__main__':
print('TransferMultitaskLogisticRegression')
transfer_multitask_logistic_regression(*parameter_list[0])
@@ -0,0 +1,37 @@
from numpy import array,hstack
from numpy.random import seed, rand
from tools.load import LoadMatrix
lm=LoadMatrix()

traindat = lm.load_numbers('../data/fm_train_real.dat')
testdat = lm.load_numbers('../data/fm_test_real.dat')
label_traindat = lm.load_labels('../data/label_train_twoclass.dat')

parameter_list = [[traindat,testdat,label_traindat]]

def transfer_multitask_trace_logistic_regression(fm_train=traindat,fm_test=testdat,label_train=label_traindat):

from modshogun import BinaryLabels, RealFeatures, IndexBlock, IndexBlockGroup, MultitaskTraceLogisticRegression

features = RealFeatures(hstack((traindat,traindat)))
labels = BinaryLabels(hstack((label_train,label_train)))

n_vectors = features.get_num_vectors()
task_one = IndexBlock(0,n_vectors/2)
task_two = IndexBlock(n_vectors/2,n_vectors)
task_group = IndexBlockGroup()
task_group.add_block(task_one)
task_group.add_block(task_two)

mtlr = MultitaskTraceLogisticRegression(0.1,features,labels,task_group)
mtlr.set_tolerance(1e-2) # use 1e-2 tolerance
mtlr.set_max_iter(10)
mtlr.train()
mtlr.set_current_task(0)
out = mtlr.apply_regression().get_labels()

return out

if __name__=='__main__':
print('TransferMultitaskTraceLogisticRegression')
transfer_multitask_trace_logistic_regression(*parameter_list[0])

0 comments on commit 197ebdf

Please sign in to comment.