Skip to main content

Timeline for LibSVM parameter tuning

Current License: CC BY-SA 3.0

11 events
when toggle format what by license comment
Oct 19, 2015 at 11:00 vote accept Furkan Gözükara
Oct 16, 2015 at 17:19 comment added Furkan Gözükara also L2 and no normalization execution times are almost same. L1 accuracy is really low and execution time is really high. these are for all Linear. still testing other kernels and since they have more parameter to test, waiting them. TY very much again. here i made few posts about multi threading problem : github.com/cjlin1/libsvm/issues/48 , github.com/ccerhan/LibSVMsharp/issues/7
Oct 16, 2015 at 17:15 comment added Furkan Gözükara do you know parameter trial ranges? i mean for example for coef0 which ranges? or for degree? it is written in the internet try 2^-5 to 2^15 for C values like 4,8,16 etc or for gama values 2^-15 to 2^3. However i could not find rage for degree or coef0 or other parameters. also so far my tests are interesting. for example when you do not make normalization C parameter is much bigger. when there is no normalization best C parameter is 2048 while when L2 norm, it is only 2. The accuracy is same in both cases. i also tested shrink and it makes 0 difference both execution time or accuracy.
Oct 16, 2015 at 17:14 comment added Furkan Gözükara Marc ty for answer. yes i have both labelled and none labelled data. i want to use libsvm because i can have maximum performance with natively written in c++ code in my c# application via wrapper. I just need to find which parameters and kernels would work best for my dataset. once i trained i can use it. well it is not have to be parallelizeable. the problem is they probably use same objects when called from even public static functions in the memory. so when i start multiple independent tasks, it causes error. if all objects was separate from each call, it would be multi threading safe.
Oct 16, 2015 at 15:27 comment added Marc Claesen Finally, the description of your application implies a semi-supervised context (you have scores for some purchases but not others). I recommend learning the basics of that before delving into the specifics of SVM. Essentially, you probably want to weigh data instances with known scores higher than others, but use both labeled and unlabeled instances to build your models. All of this is possible via LIBSVM, but I reiterate that you are likely better off using a higher level library. LIBSVM is really intended for experts, you are probably going to lose time using it for your application.
Oct 16, 2015 at 15:24 comment added Marc Claesen LIBSVM doesn't support multithreading because the training of kernel SVM's is almost not parallelizable. Nu-SVM is just a different parameterization, so I wouldn't bother with it. The ranges you should consider depend on a lot of things, including the normalization of your data and the amount of instances, so I can't say.
Oct 16, 2015 at 15:22 comment added Marc Claesen Run svm-train without further arguments to get a documentation dump. For the polynomial kernel you need degree, coef0 and gamma , for sigmoid you need gamma and coef0 (coef0 is quite important in both cases). In practice, don't bother with the sigmoid kernel. It's usually a safe bet to start with the linear kernel and if the performance isn't adequate move on to RBF. If neither of those work well, you typically use another learning method (easy) or manually design a more appropriate kernel function (hard, don't do this unless you really know what you're doing).
Oct 16, 2015 at 14:39 comment added Furkan Gözükara ok so just to be sure when using rbf i have to tweak only gama and C, when polynomial gama, C and degree (coef0 not very important right?), when linear only C and when sigmoid only gama and C right? in addition when using Nu_SVC i use nu value instead of C and nothing else changes right? also are there any documentation about what ranges should i try? i mean for example for degree i should try like 1,2,3,4 ? I also have to use C# and it has to be 64 bit supported. it is very sad that libsvm is not supporting multi-threading :(
Oct 16, 2015 at 14:37 comment added Furkan Gözükara ty very much for answer. I have implemented libsvm to my own c# application. I am going to use it to classify commercial products comments. Assume there is sold iphone and people commented but no comment score. So i will classify those comments as negative and positive. Yes it is true that i don't have too much knowledge about svms as because i don't have that much time at the moment. i am working on multiple issues. I am using grid search for optimization of parameters it is correct.
Oct 16, 2015 at 10:00 history edited Marc Claesen CC BY-SA 3.0
added 484 characters in body
Oct 16, 2015 at 9:54 history answered Marc Claesen CC BY-SA 3.0