SHOGUN  v3.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
StructuredOutputMachine.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation; either version 3 of the License, or
5  * (at your option) any later version.
6  *
7  * Written (W) 2012 Fernando José Iglesias García
8  * Copyright (C) 2012 Fernando José Iglesias García
9  */
10 
11 #ifndef _STRUCTURED_OUTPUT_MACHINE__H__
12 #define _STRUCTURED_OUTPUT_MACHINE__H__
13 
16 #include <shogun/machine/Machine.h>
20 
21 namespace shogun
22 {
23 
30 {
36 };
37 
38 class CStructuredModel;
39 
42 {
43  public:
46 
49 
56 
58  virtual ~CStructuredOutputMachine();
59 
64  void set_model(CStructuredModel* model);
65 
70  CStructuredModel* get_model() const;
71 
73  virtual const char* get_name() const
74  {
75  return "StructuredOutputMachine";
76  }
77 
82  virtual void set_labels(CLabels* lab);
83 
88  void set_features(CFeatures* f);
89 
94  CFeatures* get_features() const;
95 
100  void set_surrogate_loss(CLossFunction* loss);
101 
107 
116  virtual float64_t risk(float64_t* subgrad, float64_t* W,
118 
119  protected:
148 
157 
166 
175 
184 
185  private:
187  void register_parameters();
188 
189  protected:
192 
198 
199 }; /* class CStructuredOutputMachine */
200 
201 } /* namespace shogun */
202 
203 #endif /* _STRUCTURED_OUTPUT_MACHINE__H__ */

SHOGUN Machine Learning Toolbox - Documentation