Skip to content

Commit

Permalink
Added ShareBoost python modular interface and example
Browse files Browse the repository at this point in the history
  • Loading branch information
pluskid committed Jun 27, 2012
1 parent 48af5bd commit f5ef596
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
@@ -0,0 +1,36 @@
import classifier_multiclass_shared

[traindat, label_traindat, testdat, label_testdat] = classifier_multiclass_shared.prepare_data(False)

parameter_list = [[traindat,testdat,label_traindat,label_testdat,2.1,1,1e-5],[traindat,testdat,label_traindat,label_testdat,2.2,1,1e-5]]

def classifier_multiclass_shareboost (fm_train_real=traindat,fm_test_real=testdat,label_train_multiclass=label_traindat,label_test_multiclass=label_testdat,lawidth=2.1,C=1,epsilon=1e-5):
from shogun.Features import RealFeatures, RealSubsetFeatures, MulticlassLabels
from shogun.Classifier import ShareBoost

feats_train = RealFeatures(fm_train_real)

labels = MulticlassLabels(label_train_multiclass)

shareboost = ShareBoost(feats_train, labels, min(fm_train_real.shape[0]-1, 10))
shareboost.train();
print(shareboost.get_activeset())

feats_test = RealSubsetFeatures(RealFeatures(fm_test_real), shareboost.get_activeset())
label_pred = shareboost.apply(feats_test)

out = label_pred.get_labels()

if label_test_multiclass is not None:
from shogun.Evaluation import MulticlassAccuracy
labels_test = MulticlassLabels(label_test_multiclass)
evaluator = MulticlassAccuracy()
acc = evaluator.evaluate(label_pred, labels_test)
print('Accuracy = %.4f' % acc)

return out

if __name__=='__main__':
print('MulticlassMachine')
classifier_multiclass_shareboost(*parameter_list[0])

3 changes: 3 additions & 0 deletions src/interfaces/modular/Multiclass.i
Expand Up @@ -51,6 +51,8 @@
%rename(GaussianNaiveBayes) CGaussianNaiveBayes;
%rename(QDA) CQDA;

%rename(ShareBoost) CShareBoost;

/* Include Class Headers to make them visible from within the target language */
%include <shogun/multiclass/RejectionStrategy.h>
%include <shogun/multiclass/MulticlassStrategy.h>
Expand Down Expand Up @@ -91,4 +93,5 @@
%include <shogun/multiclass/ConjugateIndex.h>
%include <shogun/multiclass/GaussianNaiveBayes.h>
%include <shogun/multiclass/QDA.h>
%include <shogun/multiclass/ShareBoost.h>

1 change: 1 addition & 0 deletions src/interfaces/modular/Multiclass_includes.i
Expand Up @@ -38,4 +38,5 @@
#include <shogun/multiclass/ConjugateIndex.h>
#include <shogun/multiclass/GaussianNaiveBayes.h>
#include <shogun/multiclass/QDA.h>
#include <shogun/multiclass/ShareBoost.h>
%}

0 comments on commit f5ef596

Please sign in to comment.