Skip to content

Commit

Permalink
Rename old HMSVM python examples to discrete and add new ones for PLiFs
Browse files Browse the repository at this point in the history
  • Loading branch information
iglesias committed Jun 3, 2013
1 parent 8496e3f commit f4f4e2c
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 14 deletions.
Expand Up @@ -8,7 +8,7 @@

parameter_list=[[data_dict]]

def structure_hmsvm_bmrm (m_data_dict=data_dict):
def structure_discrete_hmsvm_bmrm (m_data_dict=data_dict):
from shogun.Features import RealMatrixFeatures
from shogun.Loss import HingeLoss
from shogun.Structure import SequenceLabels, HMSVMModel, Sequence, TwoStateModel, SMT_TWO_STATE
Expand All @@ -24,19 +24,18 @@ def structure_hmsvm_bmrm (m_data_dict=data_dict):
features = RealMatrixFeatures(m_data_dict['signal'].astype(float), 250, 500)

loss = HingeLoss()
model = HMSVMModel(features, labels, SMT_TWO_STATE, 4)
num_obs = 4 # given by the data file used
model = HMSVMModel(features, labels, SMT_TWO_STATE, num_obs)

sosvm = DualLibQPBMSOSVM(model, loss, labels, 5000.0)
sosvm.train()

#print sosvm.get_w()

predicted = sosvm.apply()
predicted = sosvm.apply(features)
evaluator = StructuredAccuracy()
acc = evaluator.evaluate(predicted, labels)

#print('Accuracy = %.4f' % acc)

if __name__ == '__main__':
print("HMSVM BMRM")
structure_hmsvm_bmrm(*parameter_list[0])
print("Discrete HMSVM BMRM")
structure_discrete_hmsvm_bmrm(*parameter_list[0])
Expand Up @@ -8,7 +8,7 @@

parameter_list=[[data_dict]]

def structure_hmsvm_mosek (m_data_dict=data_dict):
def structure_discrete_hmsvm_mosek (m_data_dict=data_dict):
from shogun.Features import RealMatrixFeatures
from shogun.Loss import HingeLoss
from shogun.Structure import SequenceLabels, HMSVMModel, Sequence, TwoStateModel, SMT_TWO_STATE
Expand All @@ -29,18 +29,18 @@ def structure_hmsvm_mosek (m_data_dict=data_dict):
features = RealMatrixFeatures(m_data_dict['signal'].astype(float), 250, 500)

loss = HingeLoss()
model = HMSVMModel(features, labels, SMT_TWO_STATE, 4)
num_obs = 4 # given by the data file used
model = HMSVMModel(features, labels, SMT_TWO_STATE, num_obs)

sosvm = PrimalMosekSOSVM(model, loss, labels)
sosvm.train()
print(sosvm.get_w())
#print(sosvm.get_w())

predicted = sosvm.apply()
evaluator = StructuredAccuracy()
acc = evaluator.evaluate(predicted, labels)

print('Accuracy = %.4f' % acc)
#print('Accuracy = %.4f' % acc)

if __name__ == '__main__':
print("HMSVM Mosek")
structure_hmsvm_mosek(*parameter_list[0])
print("Discrete HMSVM Mosek")
structure_discrete_hmsvm_mosek(*parameter_list[0])
25 changes: 25 additions & 0 deletions examples/undocumented/python_modular/structure_plif_hmsvm_bmrm.py
@@ -0,0 +1,25 @@
#!/usr/bin/env python

parameter_list=[[100, 250, 10, 2]]

def structure_plif_hmsvm_bmrm (num_examples, example_length, num_features, num_noise_features):
from shogun.Features import RealMatrixFeatures
from shogun.Loss import HingeLoss
from shogun.Structure import TwoStateModel, DualLibQPBMSOSVM
from shogun.Evaluation import StructuredAccuracy

model = TwoStateModel.simulate_data(num_examples, example_length, num_features, num_noise_features)
loss = HingeLoss()
sosvm = DualLibQPBMSOSVM(model, loss, model.get_labels(), 5000.0)

sosvm.train()
#print sosvm.get_w()

predicted = sosvm.apply(model.get_features())
evaluator = StructuredAccuracy()
acc = evaluator.evaluate(predicted, model.get_labels())
#print('Accuracy = %.4f' % acc)

if __name__ == '__main__':
print("PLiF HMSVM BMRM")
structure_plif_hmsvm_bmrm(*parameter_list[0])
31 changes: 31 additions & 0 deletions examples/undocumented/python_modular/structure_plif_hmsvm_mosek.py
@@ -0,0 +1,31 @@
#!/usr/bin/env python

parameter_list=[[100, 250, 10, 2]]

def structure_plif_hmsvm_mosek (num_examples, example_length, num_features, num_noise_features):
from shogun.Features import RealMatrixFeatures
from shogun.Loss import HingeLoss
from shogun.Structure import TwoStateModel
from shogun.Evaluation import StructuredAccuracy

try:
from shogun.Structure import PrimalMosekSOSVM
except ImportError:
print("Mosek not available")
return

model = TwoStateModel.simulate_data(num_examples, example_length, num_features, num_noise_features)
loss = HingeLoss()
sosvm = PrimalMosekSOSVM(model, loss, model.get_labels())

sosvm.train()
#print(sosvm.get_w())

predicted = sosvm.apply(model.get_features())
evaluator = StructuredAccuracy()
acc = evaluator.evaluate(predicted, model.get_labels())
#print('Accuracy = %.4f' % acc)

if __name__ == '__main__':
print("PLiF HMSVM Mosek")
structure_plif_hmsvm_mosek(*parameter_list[0])

0 comments on commit f4f4e2c

Please sign in to comment.