29 lbfgs_progress_t progress = m_verbose ? &ShareBoostOptimizer::lbfgs_progress : NULL;
31 lbfgs(N, W, &objval, &ShareBoostOptimizer::lbfgs_evaluate, progress,
this, ¶m);
33 int32_t w_len = m_sb->m_activeset.
vlen;
38 std::copy(W + i*w_len, W + (i+1)*w_len, w.
vector);
51 optimizer->m_sb->compute_pred(W);
52 optimizer->m_sb->compute_rho();
54 int32_t m = optimizer->m_sb->m_activeset.
vlen;
61 for (int32_t i=0; i < m; ++i)
63 for (int32_t j=0; j < k; ++j)
65 int32_t idx = j*m + i;
67 for (int32_t ii=0; ii < fea.
num_cols; ++ii)
68 g += fea(optimizer->m_sb->m_activeset[i], ii) *
69 (optimizer->m_sb->m_rho(j,ii)/optimizer->m_sb->m_rho_norm[ii] -
78 for (int32_t ii=0; ii < fea.
num_cols; ++ii)
80 objval +=
CMath::log(optimizer->m_sb->m_rho_norm[ii]);
87 int ShareBoostOptimizer::lbfgs_progress(
100 if (k != 1 && k % 100 != 0)
104 SG_SPRINT(" fx = %f, x[0] = %f, x[1] = %f\n", fx, x[0], x[1])
105 SG_SPRINT(" xnorm = %f, gnorm = %f, step = %f\n", xnorm, gnorm, step)
int32_t lbfgs(int32_t n, float64_t *x, float64_t *ptr_fx, lbfgs_evaluate_t proc_evaluate, lbfgs_progress_t proc_progress, void *instance, lbfgs_parameter_t *_param, lbfgs_adjust_step_t proc_adjust_step)
virtual void set_w(const SGVector< float64_t > src_w)
CDynamicObjectArray * m_machines
Multiclass Labels for multi-class classification.
CMulticlassStrategy * m_multiclass_strategy
int32_t get_int_label(int32_t idx)
Class LinearMachine is a generic interface for all kinds of linear machines like classifiers.
int32_t get_num_classes() const
all of classes and functions are contained in the shogun namespace
static float64_t log(float64_t v)
CSGObject * get_element(int32_t index) const
int(* lbfgs_progress_t)(void *instance, const float64_t *x, const float64_t *g, const float64_t fx, const float64_t xnorm, const float64_t gnorm, const float64_t step, int n, int k, int ls)
void lbfgs_parameter_init(lbfgs_parameter_t *param)