Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
fix static interfaces
  • Loading branch information
Soeren Sonnenburg committed May 24, 2012
1 parent 168604a commit 99a35be
Show file tree
Hide file tree
Showing 13 changed files with 50 additions and 15 deletions.
2 changes: 1 addition & 1 deletion data
Submodule data updated from 935106 to 6a16ac
2 changes: 1 addition & 1 deletion examples/undocumented/cmdline_static/classifier_gmnpsvm.sg
Expand Up @@ -3,7 +3,7 @@ print GMNPSVM

set_kernel GAUSSIAN REAL 10 1.2
set_features TRAIN ../data/fm_train_real.dat
set_labels TRAIN ../data/label_train_twoclass.dat
set_labels TRAIN ../data/label_train_multiclass.dat
new_classifier GMNPSVM
svm_epsilon 1e-5
svm_use_bias 0
Expand Down
2 changes: 1 addition & 1 deletion examples/undocumented/cmdline_static/regression_krr.sg
Expand Up @@ -2,7 +2,7 @@
print Kernel Ridge Regression
set_kernel GAUSSIAN REAL 10 2.1
set_features TRAIN ../data/fm_train_real.dat
set_labels TRAIN ../data/label_train_twoclass.dat
set_labels TRAIN ../data/label_train_regression.dat
new_regression KRR
krr_tau 1.2
c 0.017
Expand Down
2 changes: 1 addition & 1 deletion examples/undocumented/cmdline_static/regression_libsvr.sg
Expand Up @@ -2,7 +2,7 @@
print LibSVR
set_kernel GAUSSIAN REAL 10 2.1
set_features TRAIN ../data/fm_train_real.dat
set_labels TRAIN ../data/label_train_twoclass.dat
set_labels TRAIN ../data/label_train_regression.dat
new_regression LIBSVR
svr_tube_epsilon 1e-2
c 0.017
Expand Down
2 changes: 1 addition & 1 deletion examples/undocumented/matlab_and_octave/regression_krr.m
Expand Up @@ -4,7 +4,7 @@
tube_epsilon=1e-2;

addpath('tools');
label_train=load_matrix('../data/label_train_twoclass.dat');
label_train=load_matrix('../data/label_train_regression.dat');
fm_train=load_matrix('../data/fm_train_real.dat');
fm_test=load_matrix('../data/fm_test_real.dat');

Expand Down
Expand Up @@ -4,7 +4,7 @@
tube_epsilon=1e-2;

addpath('tools');
label_train=load_matrix('../data/label_train_twoclass.dat');
label_train=load_matrix('../data/label_train_regression.dat');
fm_train=load_matrix('../data/fm_train_real.dat');
fm_test=load_matrix('../data/fm_test_real.dat');

Expand Down
2 changes: 1 addition & 1 deletion examples/undocumented/python_static/regression_krr.py
Expand Up @@ -4,7 +4,7 @@

traindat=lm.load_numbers('../data/fm_train_real.dat')
testdat=lm.load_numbers('../data/fm_test_real.dat')
trainlabel=lm.load_labels('../data/label_train_twoclass.dat')
trainlabel=lm.load_labels('../data/label_train_regression.dat')
parameter_list=[[traindat,testdat,trainlabel,10,2.1,1.2,1e-6],
[traindat,testdat,trainlabel,11,2.3,1.3,1e-6]]

Expand Down
2 changes: 1 addition & 1 deletion examples/undocumented/python_static/regression_libsvr.py
Expand Up @@ -4,7 +4,7 @@

traindat=lm.load_numbers('../data/fm_train_real.dat')
testdat=lm.load_numbers('../data/fm_test_real.dat')
trainlabel=lm.load_labels('../data/label_train_twoclass.dat')
trainlabel=lm.load_labels('../data/label_train_regression.dat')
parameter_list=[[traindat,testdat,trainlabel,10,2.1,1.2,1e-5,1e-2],
[traindat,testdat,trainlabel,11,2.3,1.3,1e-6,1e-3]]

Expand Down
2 changes: 1 addition & 1 deletion examples/undocumented/r_static/regression_krr.R
Expand Up @@ -7,7 +7,7 @@ width <- 2.1

fm_train <- t(as.matrix(read.table('../data/fm_train_real.dat')))
fm_test <- t(as.matrix(read.table('../data/fm_test_real.dat')))
label_train <- as.real(as.matrix(read.table('../data/label_train_twoclass.dat')))
label_train <- as.real(as.matrix(read.table('../data/label_train_regression')))

# KRR
print('KRR')
Expand Down
2 changes: 1 addition & 1 deletion examples/undocumented/r_static/regression_libsvr.R
Expand Up @@ -7,7 +7,7 @@ width <- 2.1

fm_train <- t(as.matrix(read.table('../data/fm_train_real.dat')))
fm_test <- t(as.matrix(read.table('../data/fm_test_real.dat')))
label_train <- as.real(as.matrix(read.table('../data/label_train_twoclass.dat')))
label_train <- as.real(as.matrix(read.table('../data/label_train_regression')))

# LibSVR
print('LibSVR')
Expand Down
37 changes: 35 additions & 2 deletions src/shogun/ui/GUILabels.cpp
Expand Up @@ -16,6 +16,8 @@
#include <shogun/io/AsciiFile.h>
#include <shogun/labels/Labels.h>
#include <shogun/labels/BinaryLabels.h>
#include <shogun/labels/MulticlassLabels.h>
#include <shogun/labels/RegressionLabels.h>

#include <string.h>

Expand Down Expand Up @@ -47,8 +49,10 @@ bool CGUILabels::load(char* filename, char* target)
{
SG_UNREF(labels);
CAsciiFile* file=new CAsciiFile(filename);
//FIXME
labels=new CBinaryLabels(file);
labels=new CRegressionLabels(file);
SGVector<float64_t> labs = ((CRegressionLabels*) labels)->get_labels();
float64_t* lab=CMath::clone_vector(labs.vector, labs.vlen);
labels=infer_labels(lab, labs.vlen);

if (labels)
{
Expand All @@ -73,3 +77,32 @@ bool CGUILabels::save(char* param)
bool result=false;
return result;
}

CLabels* CGUILabels::infer_labels(float64_t* lab, int32_t len)
{
CLabels* labels=NULL;

bool binary=true;
bool multiclass=true;
for (int32_t i=0; i<len; i++)
{
if (lab[i]!=-1 && lab[i]!=+1)
binary=false;

if (lab[i]<0 || lab[i]!=int(lab[i]))
multiclass=false;

if (binary == false && multiclass == false)
{
labels=new CRegressionLabels(SGVector<float64_t>(lab, len));
break;
}
}

if (multiclass)
labels=new CMulticlassLabels(SGVector<float64_t>(lab, len));
if (binary)
labels=new CBinaryLabels(SGVector<float64_t>(lab, len));

return labels;
}
2 changes: 2 additions & 0 deletions src/shogun/ui/GUILabels.h
Expand Up @@ -57,6 +57,8 @@ class CGUILabels : public CSGObject
*/
bool save(char* param);

CLabels* infer_labels(float64_t* lab, int32_t len);

/** @return object name */
inline virtual const char* get_name() const { return "GUILabels"; }

Expand Down
6 changes: 3 additions & 3 deletions src/shogun/ui/SGInterface.cpp
Expand Up @@ -2482,8 +2482,8 @@ bool CSGInterface::cmd_set_labels()
int32_t len=0;
get_vector(lab, len);

//FIXME
CBinaryLabels* labels=new CBinaryLabels(SGVector<float64_t>(lab, len));
CLabels* labels=ui_labels->infer_labels(lab, len);

SG_INFO("num labels: %d\n", labels->get_num_labels());

if (strmatch(target, "TRAIN"))
Expand Down Expand Up @@ -4198,7 +4198,7 @@ bool CSGInterface::cmd_set_prior_probs_from_labels()
int32_t len=0;
get_vector(lab, len);

CRegressionLabels* labels=new CRegressionLabels(len);
CBinaryLabels* labels=new CBinaryLabels(len);
for (int32_t i=0; i<len; i++)
{
if (!labels->set_label(i, lab[i]))
Expand Down

0 comments on commit 99a35be

Please sign in to comment.