SHOGUN  v3.1.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOSVMHelper.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) 2013 Shell Hu
8  * Copyright (C) 2013 Shell Hu
9  */
10 
11 #ifndef __SOSVM_HELPER_H__
12 #define __SOSVM_HELPER_H__
13 
14 #include <shogun/base/SGObject.h>
15 #include <shogun/lib/SGVector.h>
17 
18 namespace shogun
19 {
20 
29 class CSOSVMHelper : public CSGObject
30 {
31 public:
33  CSOSVMHelper();
34 
39  CSOSVMHelper(int32_t bufsize);
40 
42  virtual ~CSOSVMHelper();
43 
45  virtual const char* get_name() const { return "SOSVMHelper"; }
46 
56 
67 
75 
84  virtual void add_debug_info(float64_t primal, float64_t eff_pass, float64_t train_error,
85  float64_t dual = -1, float64_t dgap = -1);
86 
92 
98 
104 
110 
116 
119  void terminate();
120 
121 private:
123  void init();
124 
125 private:
127  SGVector<float64_t> m_primal;
128 
130  SGVector<float64_t> m_dual;
131 
133  SGVector<float64_t> m_duality_gap;
134 
136  SGVector<float64_t> m_eff_pass;
137 
139  SGVector<float64_t> m_train_error;
140 
142  int32_t m_tracker;
143 
145  int32_t m_bufsize;
146 
147 }; /* CSOSVMHelper */
148 
149 } /* namespace shogun */
150 
151 #endif
static float64_t dual_objective(SGVector< float64_t > w, float64_t b_alpha, float64_t lbda)
Definition: SOSVMHelper.cpp:80
virtual const char * get_name() const
Definition: SOSVMHelper.h:45
static float64_t primal_objective(SGVector< float64_t > w, CStructuredModel *model, float64_t lbda)
Definition: SOSVMHelper.cpp:56
static float64_t average_loss(SGVector< float64_t > w, CStructuredModel *model)
Definition: SOSVMHelper.cpp:85
SGVector< float64_t > get_dual_values() const
Class SGObject is the base class of all shogun objects.
Definition: SGObject.h:102
double float64_t
Definition: common.h:48
class CSOSVMHelper contains helper functions to compute primal objectives, dual objectives, average training losses, duality gaps etc. These values will be recorded to check convergence. This class is inspired by the matlab implementation of the block coordinate Frank-Wolfe SOSVM solver [1].
Definition: SOSVMHelper.h:29
Class CStructuredModel that represents the application specific model and contains most of the applic...
virtual void add_debug_info(float64_t primal, float64_t eff_pass, float64_t train_error, float64_t dual=-1, float64_t dgap=-1)
SGVector< float64_t > get_duality_gaps() const
SGVector< float64_t > get_primal_values() const
SGVector< float64_t > get_train_errors() const
SGVector< float64_t > get_eff_passes() const

SHOGUN Machine Learning Toolbox - Documentation