5

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.

Sveltely
  • 822
  • 1
  • 8
  • 22
  • have you tried passing it into the _predict_ function? or cross validation within the _train_ function? I'm getting the same messages, but my test hasn't finished yet – Tu Bui Apr 27 '14 at 14:07
  • 4
    hi, do anyone understand what the `act`,`pre`,`|g|`,`f` means – Allan Ruin Feb 14 '16 at 14:44

0 Answers0