Xtra-Computing / thundersvm

ThunderSVM: A Fast SVM Library on GPUs and CPUs
Apache License 2.0
1.56k stars 216 forks source link

Probability estimates are not output for predictions when enabled? #149

Closed aaroncaffrey closed 5 years ago

aaroncaffrey commented 5 years ago

When I run the following command:

First: thundersvm-train.exe -b 1 diabetes_scale.txt

Second, either: thundersvm-predict.exe diabetes_scale.txt diabetes_scale.txt.model diabetes_scale.txt.out or, thundersvm-predict.exe -b 1 diabetes_scale.txt diabetes_scale.txt.model diabetes_scale.txt.out

This does create the 'diabetes_scale.txt.out' file. However, it only contains the predicted class labels, but not the class probabilities, such as libsvm would with svm-train.exe and svm-predict.exe.

Please could you tell me, which function or variable within the thundersvm source code could I use to obtain the class probability estimates to allow me to patch this issue, (and as such, make the output the same as libsvm with '-b 1' set on predictions)?

Thank you.

QinbinLi commented 5 years ago

Hi @aaroncaffrey ,

Thanks for your feedback. We have fixed this issue. You can update the library and try again. The output should be consistent with libsvm now.

aaroncaffrey commented 5 years ago

Thanks for that bug fix - much appreciated. I have tested it and it appears to work correctly for when probability estimates are enabled.

However, it has caused another issue: When probability estimates are disabled, then the output file now only contains a single line, ("labels -1 1 "), without any of the class predictions. Also, this "labels" line should not be output when probability estimates are disabled (to maintain libsvm compatibility).

Thank you.

QinbinLi commented 5 years ago

It is our mistake... We have fixed it. You can try again. Thanks!

aaroncaffrey commented 5 years ago

Thank you so much for fixing this, and so quickly too! I have tested the updates and all seems good! Thanks!!!