SHOGUN  3.2.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/lib/config.h>
15 
16 #include <shogun/base/SGObject.h>
17 #include <shogun/lib/SGVector.h>
19 
20 namespace shogun
21 {
22 
31 class CSOSVMHelper : public CSGObject
32 {
33 public:
35  CSOSVMHelper();
36 
41  CSOSVMHelper(int32_t bufsize);
42 
44  virtual ~CSOSVMHelper();
45 
47  virtual const char* get_name() const { return "SOSVMHelper"; }
48 
58 
69 
77 
86  virtual void add_debug_info(float64_t primal, float64_t eff_pass, float64_t train_error,
87  float64_t dual = -1, float64_t dgap = -1);
88 
94 
100 
106 
112 
118 
121  void terminate();
122 
123 private:
125  void init();
126 
127 private:
129  SGVector<float64_t> m_primal;
130 
132  SGVector<float64_t> m_dual;
133 
135  SGVector<float64_t> m_duality_gap;
136 
138  SGVector<float64_t> m_eff_pass;
139 
141  SGVector<float64_t> m_train_error;
142 
144  int32_t m_tracker;
145 
147  int32_t m_bufsize;
148 
149 }; /* CSOSVMHelper */
150 
151 } /* namespace shogun */
152 
153 #endif
static float64_t dual_objective(SGVector< float64_t > w, float64_t b_alpha, float64_t lbda)
Definition: SOSVMHelper.cpp:82
virtual const char * get_name() const
Definition: SOSVMHelper.h:47
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:87
SGVector< float64_t > get_dual_values() const
Class SGObject is the base class of all shogun objects.
Definition: SGObject.h:98
double float64_t
Definition: common.h:50
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:31
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