#include <lpboost.h>
Inheritance diagram for LPBoost:
Public Member Functions | |
LPBoost (REAL _C=1.0) | |
LPBoost (std::istream &is) | |
virtual const id_t & | id () const |
virtual LPBoost * | create () const |
Create a new object using the default constructor. | |
virtual LPBoost * | clone () const |
Create a new object by replicating itself. | |
virtual REAL | train () |
Train with preset data set and sample weight. | |
REAL | C () const |
The regularization constant C. | |
void | set_C (REAL _C) |
Set the regularization constant C. |
With a similar idea to the original LPBoost [1], which solves
we instead implement the algorithm to solve
by column generation. Note that the dual problem is
Column generation corresponds to generating the constraints (*). We actually use individual upper bound proportional to example's initial weight.
If we treat , the normalized version of
, as the sample weight, and
as the normalization constraint, (*) is the same as
which means
Assume that we have found so far, solving the dual problem with
(*) constraints gives us
. If for every remaining
in
,
the duality condition tells us that even if we set
for those remaining
, the solution is still optimal. Thus, we can train the weak learner with sample weight
in each iteration, and terminate if the best hypothesis has satisfied (**).
[1] A. Demiriz, K. P. Bennett, and J. Shawe-Taylor. Linear programming boosting via column generation. Machine Learning, 46(1-3):225-254, 2002.
Definition at line 58 of file lpboost.h.
|
Definition at line 62 of file lpboost.h. References LPBoost::set_C(). Referenced by LPBoost::clone(), and LPBoost::create(). |
|
|
|
The regularization constant C.
|
|
Create a new object by replicating itself.
return new Derived(*this);
Reimplemented from Boosting. Definition at line 67 of file lpboost.h. References LPBoost::LPBoost(). |
|
Create a new object using the default constructor. The code for a derived class Derived is always return new Derived(); Reimplemented from Boosting. Definition at line 66 of file lpboost.h. References LPBoost::LPBoost(). |
|
Reimplemented from Boosting. |
|
Set the regularization constant C.
Definition at line 74 of file lpboost.h. Referenced by LPBoost::LPBoost(). |
|
Train with preset data set and sample weight.
Reimplemented from Boosting. Definition at line 20 of file lpboost.cpp. References Aggregating::empty(), Boosting::grad_desc_view, Aggregating::lm_base, Aggregating::n_in_agg, LearnModel::n_samples, LearnModel::ptd, LearnModel::ptw, and U. |