ayrna / orca

Ordinal Regression and Classification Algorithms
http://www.uco.es/grupos/ayrna/orreview
GNU General Public License v3.0
114 stars 35 forks source link

SVOREX - Segmentation Fault #70

Open dguijo opened 4 years ago

dguijo commented 4 years ago

First of all, I'm running ORCA on Matlab R2018a.

I've been crossvalidating SVOREX with a big set of parameters. At some point (i.e. with a specific combination of parameters detailed below), SVOREX has returned a segmentation fault with the following error description:

Warning: KKT conditions are violated on bias!!! -0.101231 with C=1.000 K=0.001 Segmentation Fault

Up to my knowledge, this comes from the following lines, in the smo_routine.c (included in SVOREX folder):

if (settings->bmu_low[loop-1] - settings->bmu_up[loop-1]>TOL){
    printf("Warning: KKT conditions are violated on bias!!! %f with C=%.3f K=%.3f\r\n",
    settings->bmu_low[loop-1] + settings->bmu_up[loop-1], VC, KAPPA);
    exit(1);
}

In my case, by removing the exit(1); line, the code works successfully, however, I could be omitting any criterion that must be satisfied.

The dataset (patterns and labels of both train and test) is attached to this issue. The algorithm is SVOREX, and the parameter combination is: C=1.000 -- K=0.001.

Dataset.zip

javism commented 4 years ago

Hi. Thanks for reporting this.

I can't see any attached files, please, can you check this?

I don't think we can just remove the KKT conditions test since otherwise, the optimizer can't guarantee that it finds the optimal solution.

Perhaps you can relax the tolerance threshold by increasing #define DEF_TOL (0.001) in smo.h, e.g. 0.15.

best