I use liblinear with my program to classify across multiple classes using a solver L2R_L2LOSS_SVC_DUAL. In the current test setup, I have 1600 instances of 9 classes with 1000 functions each.
I am trying to determine the optimal C parameter for training with 5x cross-validation, but even with a little C 1.0 liblinear reaches the maximum number of iterations:
................................................................................
....................
optimization finished, #iter = 1000
WARNING: reaching max number of iterations
Using -s 2 may be faster (also see FAQ)
Objective value = -637.100923
nSV = 783
The FAQ section mentions two possible reasons:
- Data is not scalable.
- Large parameter C is used.
- Many instances are used with few features, so the solver
L2R_L2LOSS_SVCcan be faster.
. - , , [0,1].
liblinear :
struct parameter svmParams;
svmParams.solver_type = L2R_L2LOSS_SVC_DUAL;
svmParams.eps = 0.1;
svmParams.nr_weight = 0;
svmParams.weight_label = NULL;
svmParams.weight = NULL;
svmParams.p = 0.1;
svmParams.C = 1.0;
: , FAQ, , liblinear ?