Skip to content

Commit

Permalink
Merge pull request #538 from iglesias/problem_type
Browse files Browse the repository at this point in the history
Add problem types to machines.
  • Loading branch information
Soeren Sonnenburg committed May 22, 2012
2 parents d7d1505 + bfab371 commit 3801ecf
Show file tree
Hide file tree
Showing 37 changed files with 84 additions and 12 deletions.
2 changes: 2 additions & 0 deletions src/shogun/classifier/AveragedPerceptron.h
Expand Up @@ -30,6 +30,8 @@ namespace shogun
class CAveragedPerceptron : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** default constructor */
CAveragedPerceptron();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/LDA.h
Expand Up @@ -52,6 +52,8 @@ namespace shogun
class CLDA : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** constructor
*
* @param gamma gamma
Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/LPBoost.h
Expand Up @@ -48,6 +48,8 @@ namespace shogun
class CLPBoost : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

CLPBoost();
virtual ~CLPBoost();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/LPM.h
Expand Up @@ -43,6 +43,8 @@ namespace shogun
class CLPM : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

CLPM();
virtual ~CLPM();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/NearestCentroid.h
Expand Up @@ -33,6 +33,8 @@ class CDistanceMachine;
class CNearestCentroid : public CDistanceMachine{

public:
MACHINE_PROBLEM_TYPE(PT_MULTICLASS);

/**
* Default constructor
*/
Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/Perceptron.h
Expand Up @@ -30,6 +30,8 @@ namespace shogun
class CPerceptron : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** default constructor */
CPerceptron();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/PluginEstimate.h
Expand Up @@ -34,6 +34,8 @@ namespace shogun
class CPluginEstimate: public CMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** default constructor
* @param pos_pseudo pseudo for positive model
* @param neg_pseudo pseudo for negative model
Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/SubGradientLPM.h
Expand Up @@ -48,6 +48,8 @@ namespace shogun
class CSubGradientLPM : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

CSubGradientLPM();
CSubGradientLPM(
float64_t C, CDotFeatures* traindat,
Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/svm/LibLinear.h
Expand Up @@ -45,6 +45,8 @@ namespace shogun
class CLibLinear : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** default constructor */
CLibLinear();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/svm/NewtonSVM.h
Expand Up @@ -27,6 +27,8 @@ namespace shogun
class CNewtonSVM : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** default constructor */
CNewtonSVM();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/svm/OnlineLibLinear.h
Expand Up @@ -26,6 +26,8 @@ namespace shogun
class COnlineLibLinear : public COnlineLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** Default constructor */
COnlineLibLinear();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/svm/OnlineSVMSGD.h
Expand Up @@ -33,6 +33,8 @@ namespace shogun
class COnlineSVMSGD : public COnlineLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** default constructor */
COnlineSVMSGD();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/svm/SGDQN.h
Expand Up @@ -34,6 +34,8 @@ namespace shogun
class CSGDQN : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** default constructor */
CSGDQN();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/svm/SVM.h
Expand Up @@ -47,6 +47,8 @@ class CMulticlassSVM;
class CSVM : public CKernelMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** Create an empty Support Vector Machine Object
* @param num_sv with num_sv support vectors
*/
Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/svm/SVMLin.h
Expand Up @@ -22,6 +22,8 @@ namespace shogun
class CSVMLin : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** default constructor */
CSVMLin();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/svm/SVMOcas.h
Expand Up @@ -32,6 +32,8 @@ enum E_SVM_TYPE
class CSVMOcas : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** default constructor */
CSVMOcas();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/svm/SVMSGD.h
Expand Up @@ -34,6 +34,8 @@ namespace shogun
class CSVMSGD : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** default constructor */
CSVMSGD();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/svm/SubGradientSVM.h
Expand Up @@ -23,6 +23,8 @@ namespace shogun
class CSubGradientSVM : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** default constructor */
CSubGradientSVM();

Expand Down
3 changes: 1 addition & 2 deletions src/shogun/classifier/svm/WDSVMOcas.cpp
Expand Up @@ -21,7 +21,6 @@
#include <shogun/features/Alphabet.h>
#include <shogun/labels/Labels.h>
#include <shogun/labels/BinaryLabels.h>
#include <shogun/labels/RegressionLabels.h>

using namespace shogun;

Expand Down Expand Up @@ -120,7 +119,7 @@ CLabels* CWDSVMOcas::apply(CFeatures* data)
int32_t num=features->get_num_vectors();
ASSERT(num>0);

CRegressionLabels* output=new CRegressionLabels(num);
CBinaryLabels* output=new CBinaryLabels(num);
SG_REF(output);

for (int32_t i=0; i<num; i++)
Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/svm/WDSVMOcas.h
Expand Up @@ -26,6 +26,8 @@ template <class ST> class CStringFeatures;
class CWDSVMOcas : public CMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/** default constructor */
CWDSVMOcas();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/classifier/vw/VowpalWabbit.h
Expand Up @@ -38,6 +38,8 @@ namespace shogun
class CVowpalWabbit: public COnlineLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_BINARY);

/**
* Default constructor
*/
Expand Down
6 changes: 5 additions & 1 deletion src/shogun/machine/Machine.h
Expand Up @@ -99,6 +99,8 @@ enum EProblemType
PT_MULTICLASS = 2
};

#define MACHINE_PROBLEM_TYPE(PT) inline virtual EProblemType get_machine_problem_type() const { return PT; }

/** @brief A generic learning machine interface.
*
* A machine takes as input CFeatures and (optionally) CLabels.
Expand Down Expand Up @@ -244,8 +246,10 @@ class CMachine : public CSGObject
/** @return whether this machine is locked */
bool is_data_locked() const { return m_data_locked; }

virtual EProblemType get_machine_problem_type() const
//TODO change to pure virtual
inline virtual EProblemType get_machine_problem_type() const
{
SG_NOTIMPLEMENTED;
return PT_BINARY;
}

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/multiclass/ConjugateIndex.h
Expand Up @@ -35,6 +35,8 @@ class CConjugateIndex : public CMachine
{

public:
MACHINE_PROBLEM_TYPE(PT_MULTICLASS)

/** default constructor
*
*/
Expand Down
2 changes: 2 additions & 0 deletions src/shogun/multiclass/GaussianNaiveBayes.h
Expand Up @@ -36,6 +36,8 @@ class CGaussianNaiveBayes : public CNativeMulticlassMachine
{

public:
MACHINE_PROBLEM_TYPE(PT_MULTICLASS)

/** default constructor
*
*/
Expand Down
2 changes: 2 additions & 0 deletions src/shogun/multiclass/KNN.h
Expand Up @@ -55,6 +55,8 @@ class CDistanceMachine;
class CKNN : public CDistanceMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_MULTICLASS)

/** default constructor */
CKNN();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/multiclass/MulticlassLibLinear.h
Expand Up @@ -37,6 +37,8 @@ namespace shogun
class CMulticlassLibLinear : public CLinearMulticlassMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_MULTICLASS)

/** default constructor */
CMulticlassLibLinear();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/multiclass/MulticlassOCAS.h
Expand Up @@ -23,6 +23,8 @@ namespace shogun
class CMulticlassOCAS : public CLinearMulticlassMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_MULTICLASS)

/** default constructor */
CMulticlassOCAS();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/multiclass/MulticlassSVM.h
Expand Up @@ -26,6 +26,8 @@ class CSVM;
class CMulticlassSVM : public CKernelMulticlassMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_MULTICLASS);

/** default constructor */
CMulticlassSVM();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/multiclass/QDA.h
Expand Up @@ -36,6 +36,8 @@ namespace shogun
class CQDA : public CNativeMulticlassMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_MULTICLASS)

/** constructor
*
* @param tolerance tolerance used in training
Expand Down
19 changes: 10 additions & 9 deletions src/shogun/regression/GaussianProcessRegression.h
Expand Up @@ -38,16 +38,17 @@ namespace shogun
class CGaussianProcessRegression : public CMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_REGRESSION);

/** constructor
*
* @param sigma variance of the Gaussian observation noise
* @param k Kernel for covariance matrix
* @param data training data
* @param lab labels
*/
CGaussianProcessRegression(float64_t sigma, CKernel* k,
CDenseFeatures<float64_t>* data, CLabels* lab);
/** constructor
*
* @param sigma variance of the Gaussian observation noise
* @param k Kernel for covariance matrix
* @param data training data
* @param lab labels
*/
CGaussianProcessRegression(float64_t sigma, CKernel* k,
CDenseFeatures<float64_t>* data, CLabels* lab);

/** default constructor */
CGaussianProcessRegression();
Expand Down
2 changes: 2 additions & 0 deletions src/shogun/regression/KernelRidgeRegression.h
Expand Up @@ -64,6 +64,8 @@ enum ETrainingType
class CKernelRidgeRegression : public CKernelMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_REGRESSION);

/** default constructor */
CKernelRidgeRegression();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/regression/LeastAngleRegression.h
Expand Up @@ -72,6 +72,8 @@ class CFeatures;
class CLeastAngleRegression: public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_REGRESSION);

/** default constructor
*
* @param lasso - when true, it runs the LASSO, when false, it runs LARS
Expand Down
2 changes: 2 additions & 0 deletions src/shogun/regression/LeastSquaresRegression.h
Expand Up @@ -40,6 +40,8 @@ namespace shogun
class CLeastSquaresRegression : public CLinearRidgeRegression
{
public:
MACHINE_PROBLEM_TYPE(PT_REGRESSION);

/** default constructor */
CLeastSquaresRegression();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/regression/LinearRidgeRegression.h
Expand Up @@ -42,6 +42,8 @@ namespace shogun
class CLinearRidgeRegression : public CLinearMachine
{
public:
MACHINE_PROBLEM_TYPE(PT_REGRESSION);

/** default constructor */
CLinearRidgeRegression();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/regression/svr/LibSVR.h
Expand Up @@ -51,6 +51,8 @@ namespace shogun
class CLibSVR : public CSVM
{
public:
MACHINE_PROBLEM_TYPE(PT_REGRESSION);

/** default constructor */
CLibSVR();

Expand Down
2 changes: 2 additions & 0 deletions src/shogun/regression/svr/MKLRegression.h
Expand Up @@ -25,6 +25,8 @@ namespace shogun
class CMKLRegression : public CMKL
{
public:
MACHINE_PROBLEM_TYPE(PT_REGRESSION);

/** Constructor
*
* @param s SVM to use as constraint generator in MKL SILP
Expand Down
2 changes: 2 additions & 0 deletions src/shogun/regression/svr/SVRLight.h
Expand Up @@ -62,6 +62,8 @@ namespace shogun
class CSVRLight: public CSVMLight
{
public:
MACHINE_PROBLEM_TYPE(PT_REGRESSION);

/** default constructor */
CSVRLight();

Expand Down

0 comments on commit 3801ecf

Please sign in to comment.