I'm trying to get liblinear
to work in c++, but the library call to train(problem*, parameter*)
is sending output to the terminal. Sometimes it says the optimization finished, other times it seems to be outputting internal state (why?). What does this output mean, and is it possible to suppress it or divert it to a log somewhere? I'm using boost::log
in the rest of the program, and I'd like to control what the program displays. I'm running this on Ubuntu 12.10.
example output:
iter 1 act -6.742e-01 pre 1.191e-02 delta 3.443e-02 f 5.940e-02 |g| 1.730e-01 CG 1
cg reaches trust region boundary
iter 1 act -3.040e-02 pre 5.211e-03 delta 8.607e-03 f 5.940e-02 |g| 1.730e-01 CG 1
cg reaches trust region boundary
iter 1 act 5.453e-04 pre 1.442e-03 delta 6.791e-03 f 5.940e-02 |g| 1.730e-01 CG 1
cg reaches trust region boundary
iter 2 act 6.299e-04 pre 5.985e-04 delta 8.812e-03 f 5.886e-02 |g| 2.525e-01 CG 2
cg reaches trust region boundary
iter 3 act 2.610e-04 pre 2.449e-04 delta 1.583e-02 f 5.823e-02 |g| 4.313e-02 CG 2
iter 4 act 1.510e-04 pre 1.585e-04 delta 1.583e-02 f 5.796e-02 |g| 2.927e-02 CG 4
or
..*
optimization finished, #iter = 25
Objective value = -0.332340
nSV = 173
for the train
call, my parameters are:
solver_type = L2R_L2LOSS_SVR
eps = 0.001
C = 0.02
nr_weight = 0
weight_label = nullptr
weight = nullptr
p = 0.005
My input data has some 10,000 ~ 100,000 data points, each with 62 feautres.
Also, the output model has 124 weights.. I'm assuming that's 62 weights for the set represented by the positive labels and 62 for the negative labels? How do I know which order they are in? model->label
is NULL
for my solver_type
.