Как я могу иметь дело с выходом Liblinear в C ++?

Я пытаюсь получить liblinear работать в C ++, но вызов библиотеки train(problem*, parameter*) отправляет вывод на терминал. Иногда говорится, что оптимизация завершена, иногда кажется, что выводится внутреннее состояние (почему?). Что означает этот вывод, и можно ли его подавить или перенаправить в журнал? я использую boost::log в остальной части программы, и я хотел бы контролировать то, что программа отображает. Я запускаю это на Ubuntu 12.10.

пример вывода:

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

или же

..*
optimization finished, #iter = 25
Objective value = -0.332340
nSV = 173

для train позвоните, мои параметры:

solver_type = L2R_L2LOSS_SVR
eps = 0.001
C = 0.02
nr_weight = 0
weight_label = nullptr
weight = nullptr
p = 0.005

Мои входные данные содержат около 10 000 ~ 100 000 точек данных, каждая из которых содержит 62 объекта.

Кроме того, выходная модель имеет 124 веса. Я предполагаю, что это 62 веса для набора, представленного положительными метками, и 62 для отрицательных меток? Как мне узнать, в каком порядке они находятся? model->label является NULL для меня solver_type,

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]