17 using namespace shogun;
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)