--- Log opened Thu Jun 14 00:00:41 2012 | ||
-!- heiko [~heiko@host86-183-72-166.range86-183.btcentralplus.com] has joined #shogun | 00:08 | |
-!- heiko [~heiko@host86-183-72-166.range86-183.btcentralplus.com] has quit [Ping timeout: 265 seconds] | 00:23 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Read error: Connection timed out] | 00:49 | |
-!- emrecelikten [~Anubis@176.41.25.77] has joined #shogun | 01:05 | |
-!- emrecelikten [~Anubis@176.41.25.77] has quit [Quit: Leaving.] | 01:34 | |
-!- emrecelikten [~emrecelik@176.41.25.77] has joined #shogun | 01:35 | |
-!- gsomix [~gsomix@188.168.5.148] has quit [Ping timeout: 240 seconds] | 03:07 | |
-!- gsomix [~gsomix@188.168.5.148] has joined #shogun | 03:09 | |
-!- emrecelikten1 [~emrecelik@176.40.254.205] has joined #shogun | 03:12 | |
-!- emrecelikten [~emrecelik@176.41.25.77] has quit [Ping timeout: 245 seconds] | 03:13 | |
-!- emrecelikten1 is now known as emrecelikten | 03:20 | |
-!- emrecelikten [~emrecelik@176.40.254.205] has quit [Quit: Leaving.] | 03:32 | |
-!- gsomix [~gsomix@188.168.5.148] has quit [Ping timeout: 244 seconds] | 03:34 | |
-!- gsomix [~gsomix@188.168.5.148] has joined #shogun | 03:34 | |
-!- vikram360 [~vikram360@117.192.163.180] has quit [Ping timeout: 248 seconds] | 04:00 | |
-!- vikram360 [~vikram360@117.192.176.63] has joined #shogun | 04:34 | |
-!- vikram360 [~vikram360@117.192.176.63] has quit [Ping timeout: 248 seconds] | 04:43 | |
-!- vikram360 [~vikram360@117.192.175.104] has joined #shogun | 04:44 | |
-!- wiking [~wiking@ip191.67-202-72.static.steadfastdns.net] has joined #shogun | 04:47 | |
-!- wiking [~wiking@ip191.67-202-72.static.steadfastdns.net] has quit [Changing host] | 04:47 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 04:47 | |
-!- vikram360 [~vikram360@117.192.175.104] has quit [Ping timeout: 244 seconds] | 04:48 | |
-!- vikram360 [~vikram360@117.192.175.104] has joined #shogun | 04:49 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 265 seconds] | 05:23 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 05:24 | |
-!- vikram360 [~vikram360@117.192.175.104] has quit [Read error: Connection reset by peer] | 05:31 | |
-!- vikram360 [~vikram360@117.192.175.104] has joined #shogun | 05:46 | |
-!- gsomix [~gsomix@188.168.5.148] has quit [Ping timeout: 246 seconds] | 08:21 | |
-!- gsomix [~gsomix@188.168.5.148] has joined #shogun | 08:31 | |
-!- uricamic [~uricamic@2001:718:2:1634:5c39:53a4:ae34:8c40] has joined #shogun | 08:51 | |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has joined #shogun | 08:55 | |
-!- gsomix [~gsomix@188.168.5.148] has quit [Ping timeout: 265 seconds] | 09:03 | |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has quit [Quit: leaving] | 09:06 | |
-!- heiko1 [~heiko@host86-181-80-133.range86-181.btcentralplus.com] has joined #shogun | 10:44 | |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has joined #shogun | 12:27 | |
-!- vikram360 [~vikram360@117.192.175.104] has quit [Ping timeout: 240 seconds] | 12:28 | |
n4nd0 | uricamic: hi! how is it going? | 12:29 |
---|---|---|
uricamic | hi n4nd0 | 12:29 |
uricamic | I have noticed that you have done some changes in the so framework | 12:29 |
n4nd0 | yes, I had a discussion with Nico, he didn't support the design separated into classes different classes for the argmax, the loss, etc | 12:30 |
n4nd0 | uricamic: does the change affects you a lot? | 12:31 |
uricamic | ok, in that case I think the class for the Risk function is not necessary and it would be better to provide the risk function in the same way as you did it with argmax, etc. | 12:31 |
n4nd0 | yes | 12:33 |
-!- vikram360 [~vikram360@117.192.175.104] has joined #shogun | 12:34 | |
n4nd0 | but at first sight it shouldn't be problematic right? | 12:34 |
n4nd0 | I mean if you have some implementation already done in a risk function class | 12:35 |
n4nd0 | what we should do is | 12:35 |
n4nd0 | 1) add a method for the risk function in CStructuredModel | 12:35 |
n4nd0 | 2) the computation of the risk you may have done is moved to a class that inherits from CStructuredModel | 12:36 |
n4nd0 | do you agree? | 12:36 |
uricamic | yes, I agree, the computation of the risk will be provided only in some examples, for example you are now working on the multiclass classifier, I can easily extend this example with the possibility to use dual BM solver instead of the primal one | 12:37 |
uricamic | so, I can write the implementation of the risk function for the multiclass classifier | 12:38 |
uricamic | now I just need some of your pieces of so framework to be pushed into shogun, then I will be able to create some examples, and so on | 12:39 |
n4nd0 | ok | 12:40 |
n4nd0 | aobut the multiclass classification example | 12:40 |
n4nd0 | I would like to ask you about it | 12:41 |
n4nd0 | since my results are pretty bad right now | 12:41 |
n4nd0 | i.e. there must be something wrong :D | 12:41 |
uricamic | ok | 12:41 |
uricamic | I will look for my implementation of risk function etc. in matlab | 12:41 |
n4nd0 | so I wonder if the election of the matrix C can be the problem | 12:41 |
n4nd0 | is this important? | 12:42 |
n4nd0 | right now I am just using the identity matrix | 12:42 |
uricamic | C is the regularizer? | 12:42 |
n4nd0 | yes | 12:42 |
n4nd0 | it is the matrix in the quadratic term of the optimization problem | 12:43 |
uricamic | well, I was using just a single regularization constant | 12:43 |
n4nd0 | mmm | 12:43 |
uricamic | I think for the BMRM it is possible to use such matrix also, but then one needs to compute the inverse of this matrix | 12:44 |
n4nd0 | I am just thinking how I should input it to mosek then | 12:44 |
n4nd0 | the problem in mosek is formulated as | 12:44 |
n4nd0 | 0.5?x'Q^0?x | 12:44 |
n4nd0 | Q^0 is all zeros except the left-top most part | 12:45 |
n4nd0 | that is the regularizer C | 12:45 |
n4nd0 | if I want to input a constant, then I guess I have to give a matrix of all terms equal? | 12:46 |
n4nd0 | or a diagonal matrix? | 12:46 |
n4nd0 | do you see what I mean? | 12:46 |
uricamic | yep, but I need to see the definition of the problem in mosek | 12:47 |
n4nd0 | ok, I am sending it to you | 12:47 |
n4nd0 | http://docs.mosek.com/6.0/capi/node007.html#329747704 | 12:48 |
uricamic | I think it should be diagonal | 12:49 |
n4nd0 | ok | 12:49 |
n4nd0 | so probably to use the identity matrix is not the problem | 12:49 |
uricamic | it shouldn't be, but it is important to choose some reasonable value of the regularization constant | 12:50 |
n4nd0 | how does one choose a reasonable value? | 12:50 |
uricamic | e.g. split training data to 3 parts, 1 part will be training on which you will try several values of this constant, like 1e-3, 1e-2, ... the next part will be validation, on which you will find out which regularization constant performs best on your data and the last one is for testing purposes, where you will use the classifier trained with the "optimal " regularizer | 12:51 |
n4nd0 | ok, like using cross validation then | 12:53 |
uricamic | yep, exactly | 12:54 |
uricamic | so for you it is sufficient now just to have 2 parts - one for training and the other one for validation of the regularization constant | 12:54 |
n4nd0 | ok | 12:55 |
uricamic | you will train the classifier with all regularization constants from you set and then according to the value of the objective function computed on the validation data you will select the regularizer which minimizes this | 12:55 |
n4nd0 | I will read again the code first though, just in case I can find any bug | 12:55 |
uricamic | ok, sure | 12:56 |
n4nd0 | I think that the results are pretty bad, I thought they should look better even if I am not performing cross validation | 12:56 |
uricamic | I will have to go away for approx. 1 hour | 12:56 |
uricamic | everything depends on the value of the regularization constant | 12:57 |
uricamic | if it is e.g. too high, then the results can be really bad | 12:57 |
n4nd0 | aham | 12:57 |
n4nd0 | I will try with other values then as well | 12:58 |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has quit [Ping timeout: 265 seconds] | 13:16 | |
-!- vikram360 [~vikram360@117.192.175.104] has quit [Ping timeout: 244 seconds] | 13:30 | |
-!- heiko1 [~heiko@host86-181-80-133.range86-181.btcentralplus.com] has quit [Ping timeout: 265 seconds] | 13:34 | |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has joined #shogun | 13:37 | |
-!- nicococo [~nico@lacedcoffee.ml.tu-berlin.de] has joined #shogun | 13:41 | |
-!- cronor [~cronor@fb.ml.tu-berlin.de] has joined #shogun | 13:42 | |
cronor | How can I enable debug output in Python? I get: terminate called after throwing an instance of 'shogun::ShogunException' | 13:45 |
n4nd0 | cronor: hi | 13:50 |
n4nd0 | cronor: you should run ./configure --enable-debug and re-compile shogun | 13:50 |
-!- blackburn [d5578d4d@gateway/web/freenode/ip.213.87.141.77] has joined #shogun | 13:52 | |
nicococo | n4nd0: hi there | 13:53 |
n4nd0 | nicococo: hey | 13:53 |
nicococo | so, the example is working, you wrote? | 13:54 |
n4nd0 | nicococo: but the results are not good | 13:55 |
blackburn | hey I am a bit lost last days | 13:55 |
blackburn | :D | 13:55 |
blackburn | n4nd0: does everything go ok? :) | 13:55 |
n4nd0 | I am going to try with different values for the regularization C | 13:55 |
nicococo | n4nd0: thats a good idea.. they should have comparable results | 13:55 |
n4nd0 | blackburn: so so, I keep on working :) | 13:55 |
n4nd0 | nicococo: as I told you, I am just using C = I, is that a good election? | 13:56 |
n4nd0 | blackburn: done with your thesis and exams? | 13:56 |
blackburn | n4nd0: just had hmm lets say pre-defence talk :) | 13:56 |
n4nd0 | blackburn: all right | 13:57 |
blackburn | yesterday passed my exam about everything | 13:57 |
n4nd0 | blackburn: I bet you'll defend it good | 13:57 |
n4nd0 | nice, congrats | 13:57 |
nicococo | yes, thats fine.. if you want to change the regularization just multiply the constant with the identity matrix R = reg*I | 13:57 |
blackburn | thanks | 13:57 |
-!- vikram360 [~vikram360@117.192.175.104] has joined #shogun | 14:00 | |
n4nd0 | nicococo: any good intuition for a value for reg? | 14:00 |
nicococo | 1 ;) | 14:01 |
n4nd0 | well | 14:02 |
n4nd0 | that is to use the identity matrix right? | 14:02 |
nicococo | take the same as for the other method | 14:02 |
n4nd0 | that is what I was doing and getting bad results | 14:02 |
n4nd0 | the other method? | 14:02 |
nicococo | one-vs-rest svm | 14:02 |
nicococo | is the formulation of the 1-vs-rest svm with or without biad term? | 14:03 |
nicococo | ops.. bias term | 14:03 |
blackburn | gmnp should support bias | 14:04 |
blackburn | not regularized - true bias I mean | 14:04 |
n4nd0 | with bias | 14:04 |
n4nd0 | blackburn: I am using liblinear | 14:04 |
nicococo | that would be a reason.. we are currently not using a bias term, right? | 14:04 |
blackburn | n4nd0: multiclassliblinear? | 14:04 |
n4nd0 | blackburn: no, one vs rest strategy built with liblinear | 14:05 |
blackburn | ahh | 14:05 |
blackburn | ok | 14:05 |
n4nd0 | blackburn: but those results are ok, perfect | 14:05 |
n4nd0 | it is multiclass so what fails | 14:05 |
n4nd0 | so my bad | 14:05 |
blackburn | I understand | 14:05 |
blackburn | I just wanted to say composition of liblinears won't exactly coincide | 14:05 |
n4nd0 | blackburn: ok, thank you :) | 14:07 |
n4nd0 | I don't think that is exactly the problem now though | 14:07 |
blackburn | yeah got it | 14:07 |
n4nd0 | blackburn: why are the two different Cs in LibLinear btw? | 14:07 |
blackburn | n4nd0: pos / neg | 14:07 |
n4nd0 | aham, all right | 14:07 |
n4nd0 | nicococo: it is set to 1 as well | 14:08 |
blackburn | allows you to balance a little | 14:08 |
n4nd0 | nicococo: so there must be some bugs in the code definetely | 14:08 |
blackburn | e.g. if you have 10 pos and 10000000 negs | 14:08 |
blackburn | :) | 14:08 |
n4nd0 | blackburn: yeah, I guess it can be good for applications with skewed training data | 14:08 |
n4nd0 | blackburn: exactly | 14:08 |
n4nd0 | nicococo: so it seems that the bias was playing an important role | 14:11 |
n4nd0 | nicococo: now the results of one-vs-rest are bad too | 14:12 |
n4nd0 | but still, they are very different | 14:12 |
n4nd0 | nicococo: https://dl.dropbox.com/u/11020840/results | 14:13 |
n4nd0 | if you want to see the results ^ | 14:13 |
nicococo | i would suggest to use c=2 classes .. the code looks okay to me | 14:13 |
n4nd0 | the first column is so-multiclass and the second one-vs-rest | 14:14 |
-!- pluskid [~pluskid@202.130.113.138] has joined #shogun | 14:14 | |
n4nd0 | and at the beginning of each line is a number for the index of the training example that has no use :D | 14:15 |
nicococo | seems that there are only two classes assigned (9 and 4) | 14:15 |
n4nd0 | nicococo: oh wait | 14:15 |
n4nd0 | nicococo: it looks that they are not using the same labeling or something, what I find pretty weird | 14:16 |
n4nd0 | but with an example for 2 classes | 14:16 |
n4nd0 | thre results are entirely swapped | 14:16 |
nicococo | swapped means that sosvm delivers 1-vs-r-svm result *(-1) ?? | 14:17 |
n4nd0 | yeah | 14:17 |
n4nd0 | nicococo: https://dl.dropbox.com/u/11020840/results | 14:18 |
nicococo | did you assign -1 and +1 classes the right way for 1-vs-rest (seems that you swapped these classes) | 14:18 |
n4nd0 | nicococo: I just used some code in shogun for one-vs-rest, let me check | 14:19 |
n4nd0 | nicococo: eeeh in the last file I sent everything looks all right | 14:21 |
n4nd0 | ok | 14:23 |
n4nd0 | I have executed several times and it looks good | 14:23 |
n4nd0 | for two classes | 14:23 |
nicococo | ok. | 14:23 |
nicococo | do both algorithm train on the very same (same same) data (not just same distribution) | 14:24 |
n4nd0 | I am using the same same data | 14:24 |
nicococo | and you test on the train set | 14:25 |
n4nd0 | nicococo: do you want to use the come for the example? | 14:25 |
n4nd0 | yes, I am testing in the training test | 14:25 |
nicococo | then you also have corresponding slack variables.. right | 14:25 |
n4nd0 | corresponding? | 14:25 |
nicococo | for each training example exist one slack variable | 14:26 |
n4nd0 | in sosvm we're doing it like that yes | 14:26 |
n4nd0 | I am not sure about one-vs-rest | 14:26 |
n4nd0 | I am using the primal for it | 14:26 |
nicococo | not important.. but you can plot:: id: true_class pred_class slack for each example | 14:27 |
n4nd0 | the slack in sosvm? | 14:27 |
nicococo | yes | 14:27 |
n4nd0 | what do you want me to print associated to each class exactly? | 14:29 |
n4nd0 | the variable introduced in the optimization vector for each training example? | 14:29 |
nicococo | the outcome of the optimization is a vector x containing the w_i and slack_n n=1..#train_exmaple | 14:30 |
n4nd0 | yes | 14:32 |
nicococo | hence, for each example you have the true class, the predicted class and the slack-value.. if you print this information instead of just id: pred_class we probably see more whats going on | 14:33 |
nicococo | when 90% of the example have a slack >0 we can assume that the regularization-value is too restrictive | 14:34 |
n4nd0 | aham, good idea | 14:35 |
n4nd0 | let me do that then | 14:35 |
n4nd0 | nicococo: we should use the slacks of the last time the optimization problem is solved? | 14:48 |
n4nd0 | with use I mean to print them on screen | 14:48 |
nicococo | yes | 14:48 |
n4nd0 | nicococo: but one thing | 14:51 |
n4nd0 | so we are doing | 14:51 |
n4nd0 | min w'*C*w + sum_i slack_i | 14:51 |
n4nd0 | right? | 14:51 |
nicococo | jep | 14:52 |
nicococo | 0.5w'Cw ... | 14:52 |
n4nd0 | yeah | 14:52 |
n4nd0 | ok sorry, I thought one thing wrong :D | 14:53 |
n4nd0 | anyway | 14:53 |
n4nd0 | right now I get that all the slacks are equal to zero | 14:53 |
n4nd0 | I am going to check more carefully | 14:53 |
nicococo | if they are zero then there shouldn't be any wrong label assignment | 14:53 |
n4nd0 | true | 14:54 |
cronor | Why is there no module Labels? i.e. I have to from shogun.Features import RegressionLabels, why not from shogun.Labels import RegressionLabels? | 15:07 |
n4nd0 | cronor: they are in features | 15:10 |
n4nd0 | cronor: the labels were placed inside this directory | 15:10 |
n4nd0 | cronor: the creation of the labels directory is somewhat new and regarding the modules they remain in the same place so far | 15:10 |
cronor | ah ok | 15:11 |
n4nd0 | nicococo: so the slacks were not exactly but most of them are very small | 15:11 |
n4nd0 | about e-11 | 15:11 |
nicococo | and the predicted labels == training labels? | 15:12 |
cronor | n4nd0: I recompiled shogun with --enable-debug. How can I enable debug output now? I don't' see any debug messages so far | 15:15 |
-!- emrecelikten [~emre@176.40.254.205] has joined #shogun | 15:15 | |
n4nd0 | nicococo: for the two class problem yes, https://dl.dropbox.com/u/11020840/results | 15:16 |
n4nd0 | nicococo: the order there is true label, predicted label, slack | 15:16 |
n4nd0 | cronor: I think you have to set the debug level somewhere too | 15:17 |
n4nd0 | blackburn: do you know how it works exactly? | 15:17 |
nicococo | well, seems to work pretty good.. now the multiclass example | 15:17 |
n4nd0 | blackburn: cronor is trying to see the debug messages from python | 15:17 |
cronor | I saw .io.set_loglevel(..) but what do i fill in? | 15:18 |
n4nd0 | nicococo: for three clases it looks pretty bad :( https://dl.dropbox.com/u/11020840/results | 15:18 |
n4nd0 | cronor: I am not totally sure because I have never used this functionality | 15:19 |
n4nd0 | cronor: but, set_loglevel accepts an EMessageType | 15:19 |
cronor | from shogun.Regression import MSG_DEBUG; ...io.set_loglevel(MSG_DEBUG) could be possible | 15:20 |
n4nd0 | cronor: http://www.shogun-toolbox.org/doc/en/current/namespaceshogun.html#ad2ca0a3c84404274f8bfaa618869fdf9 | 15:20 |
n4nd0 | these ^ are the possible values of EMessageType | 15:20 |
cronor | i'll ty | 15:20 |
cronor | try | 15:20 |
n4nd0 | but better check it in the code since the doc may not be updated | 15:20 |
nicococo | n4nd0: back in 1h.. | 15:21 |
n4nd0 | nicococo: any clue about this? | 15:21 |
blackburn | +uh | 15:22 |
blackburn | n4nd0: okay shogun.Anything is just for legacy | 15:24 |
blackburn | it is setup somewhere in python modular iirc | 15:24 |
blackburn | set up* | 15:24 |
n4nd0 | yeah | 15:26 |
n4nd0 | the doubt was more related about the debug messages | 15:26 |
n4nd0 | but I think cronor figured it out already | 15:27 |
blackburn | ah sorry | 15:27 |
cronor | yes i have debug output now | 15:27 |
blackburn | I was asleep actually so just woke up with that msg sound :D | 15:27 |
n4nd0 | haha | 15:27 |
n4nd0 | I am sorry I woke you man | 15:27 |
blackburn | no problem I shouldn't be asleep I think :) | 15:28 |
pluskid | hi boys | 15:32 |
n4nd0 | hey | 15:33 |
pluskid | is there any lib in shogun if I want to use gradient descent to solve an optimization problem? | 15:34 |
-!- ckwidmer [8ca3fe9d@gateway/web/freenode/ip.140.163.254.157] has joined #shogun | 15:34 | |
n4nd0 | I don't know about that :S | 15:35 |
pluskid | blackburn: any suggestion? | 15:36 |
blackburn | pluskid: in shogun? | 15:37 |
pluskid | blackburn: yes, one of the algorithm needs a gradient descent in a step | 15:37 |
pluskid | actually, it is using the "Nesterov's accelerated gradient method", but I guess ordinary gradient descent might also work | 15:38 |
blackburn | huh no I don't think we have something here | 15:41 |
blackburn | I port some code from SLEP that is based on Nesterov's method but I don't think it is helpful.. | 15:41 |
wiking | asdf!@$% | 15:49 |
cronor | I get a shogun Exception when I use MKLRegression.apply(). Training works fine. I can't find the error. Can someone check the debug output: http://pastebin.com/5Wp6emf0 ? | 15:58 |
pluskid | so do you guys know there are some 3rd party libraries usable for my case? | 15:59 |
pluskid | n4nd0: I heard you are using an optimization library | 16:00 |
pluskid | what's it for? | 16:00 |
pluskid | is it specifically for convex optimization? or more general? | 16:00 |
blackburn | pluskid: what is type of problem you solve? | 16:00 |
n4nd0 | pluskid: I am using mosek to solve a QP | 16:01 |
pluskid | it IS convex I guess | 16:01 |
n4nd0 | pluskid: I am not sure if they have methods for non-convex problems | 16:02 |
pluskid | hmm, seems to be convex but not QP | 16:03 |
n4nd0 | pluskid: what? | 16:03 |
pluskid | my problem | 16:04 |
n4nd0 | your problem? | 16:04 |
n4nd0 | ok | 16:04 |
pluskid | from ShareBoost | 16:04 |
n4nd0 | but mosek can be used for more apart from QP | 16:04 |
n4nd0 | how does the problem look like? | 16:04 |
pluskid | a little bit complicated, log \sum exp (blah blah) | 16:05 |
pluskid | maybe I should look at mosek | 16:05 |
nicococo | pluskid: log-sum-exp is a convex funktion. | 16:07 |
pluskid | nicococo: ah, ok | 16:07 |
pluskid | and thanks! | 16:07 |
pluskid | then I guess mosek can handle this if it handles general convex problem | 16:08 |
nicococo | i think mosek won't help but it is a smooth function therefore quasi-newton methods | 16:08 |
nicococo | would fit nice | 16:08 |
pluskid | nicococo: should I implement quasi-newton myself or use some library? | 16:08 |
blackburn | generally I'd like to avoid mosek here if you can implement some (even a little worse) method by yourself | 16:09 |
nicococo | use some library, i think there are open source implementations | 16:09 |
pluskid | OK, I see | 16:10 |
pluskid | I'll google for that | 16:10 |
pluskid | or do you already know some famous or standard open source lib for this? | 16:10 |
nicococo | mmhh.. sorry, i just use code snippets flying around my harddrive.. | 16:12 |
pluskid | hmm, thanks anyway | 16:12 |
nicococo | but lookout for l-bfgs.. i guess they are implemented more or less the same (have a look at marc schmidts homepage .. http://www.di.ens.fr/~mschmidt/) | 16:13 |
-!- blackburn [d5578d4d@gateway/web/freenode/ip.213.87.141.77] has quit [Quit: Page closed] | 16:13 | |
pluskid | ok | 16:13 |
pluskid | seems most of his codes are for matlab? | 16:15 |
nicococo | ahh.. yes.. sorry.. we like c++ , i sometimes forget this ;) | 16:16 |
pluskid | :D | 16:16 |
-!- pluskid [~pluskid@202.130.113.138] has quit [Quit: Leaving] | 16:45 | |
n4nd0 | nicococo: do you know if there is another implementation of the SO framework similar to what we have done so far? | 16:45 |
n4nd0 | I think it could be useful to find the bugs | 16:45 |
-!- eric_ [2e1fd566@gateway/web/freenode/ip.46.31.213.102] has joined #shogun | 16:46 | |
eric_ | hi | 16:46 |
nicococo | n4nd0: the hmsvm toolbox (from mloss.org) is quite similar | 16:46 |
n4nd0 | nicococo: aham, I thought it was exclusively for hmsvm | 16:49 |
ckwidmer | hi | 16:50 |
ckwidmer | anyone here? | 16:50 |
n4nd0 | ckwidmer: yes | 16:50 |
ckwidmer | what's the new speak for labels->get_labels() for the current design? | 16:50 |
ckwidmer | cplex is still broken | 16:51 |
ckwidmer | trying to fix cplex svm | 16:51 |
ckwidmer | I haven't followed too closely how the new label classes work | 16:51 |
n4nd0 | I am not sure what you mean with new speak :S | 16:51 |
n4nd0 | probably my bad | 16:51 |
ckwidmer | how to express it now | 16:52 |
nicococo | n4nd0: yes, but the solver is still the same.. otherwise i don't know any implementation of multi-class in so-manner | 16:52 |
ckwidmer | what was it replaced by | 16:52 |
nicococo | hi chrissss. | 16:52 |
ckwidmer | hi nicocococococo | 16:52 |
ckwidmer | coco | 16:52 |
-!- heiko [~heiko@host86-181-80-133.range86-181.btcentralplus.com] has joined #shogun | 16:52 | |
ckwidmer | n4nd0, any idea? | 16:53 |
n4nd0 | ckwidmer: so now there's no get_labels in the base Labels class | 16:53 |
n4nd0 | ckwidmer: but I guess you are probably using it for something that needs DenseLabels? | 16:53 |
n4nd0 | then get_labels should work just fine | 16:54 |
ckwidmer | ah | 16:54 |
ckwidmer | so, all the other SVMs use DenseLabels? | 16:54 |
n4nd0 | so maybe you just need to do an explicit casting | 16:54 |
n4nd0 | we have StructuredLabels, BinaryLabels and MulticlassLabels | 16:54 |
n4nd0 | and it looks like this | 16:55 |
n4nd0 | Labels <--- StructuredLabels | 16:55 |
n4nd0 | Labels <--- DenseLabels | 16:55 |
n4nd0 | DenseLabels <--- BinaryLabels | 16:55 |
n4nd0 | DenseLabels <--- MulticlassLabels | 16:55 |
ckwidmer | and are binary labels actually binary | 16:55 |
ckwidmer | as in 0 and 1 | 16:55 |
ckwidmer | or int | 16:55 |
n4nd0 | -1 and 1 | 16:55 |
ckwidmer | or can I get floats from them | 16:55 |
ckwidmer | ok | 16:55 |
n4nd0 | internally are stored with float64_t | 16:55 |
ckwidmer | so for predictions | 16:56 |
ckwidmer | which output scores | 16:56 |
ckwidmer | I use BinaryLabels? | 16:56 |
n4nd0 | maybe RegressionLabels? | 16:56 |
n4nd0 | I forgot to tell you about those :O | 16:56 |
ckwidmer | okok | 16:56 |
n4nd0 | DenseLabel <--- RegressionLabels | 16:56 |
ckwidmer | so even svm *classifiers* output regression labels then? | 16:57 |
-!- uricamic [~uricamic@2001:718:2:1634:5c39:53a4:ae34:8c40] has quit [Quit: Leaving.] | 16:57 | |
n4nd0 | it depends I think | 16:57 |
n4nd0 | in the problem you want to solve | 16:57 |
n4nd0 | I would say that most of them return BinaryLabels | 16:58 |
ckwidmer | but what if you don't want the sign(output), but rather output? | 16:58 |
n4nd0 | then I think you have to look to something different, not to the labels | 16:59 |
n4nd0 | let me check if I see it | 16:59 |
n4nd0 | mmm maybe you can get the weight vector after training and just perform the product? | 17:00 |
n4nd0 | I wonder if that can turn out to be too tedious | 17:01 |
ckwidmer | ah, it's ok for now | 17:01 |
ckwidmer | do you know what happened to SGMatrix? | 17:01 |
n4nd0 | what do you mean? | 17:01 |
ckwidmer | seems there were some changes | 17:01 |
n4nd0 | I know that a bunch of methods from CMath where moved to SGMatrix and SGVector | 17:01 |
ckwidmer | e.g. H.destroy_matrix(); seems to be gone | 17:02 |
-!- vikram360 [~vikram360@117.192.175.104] has quit [Ping timeout: 244 seconds] | 17:02 | |
n4nd0 | aham | 17:02 |
n4nd0 | I think they are not required any more | 17:02 |
n4nd0 | if you just create your matrix using true in the constructor | 17:02 |
ckwidmer | great :) | 17:03 |
n4nd0 | what's done by default | 17:03 |
n4nd0 | then it will be "automagically" dereferenced | 17:03 |
-!- vikram360 [~vikram360@117.192.168.146] has joined #shogun | 17:03 | |
n4nd0 | if you want to it similar to how it used to be, then you should use free_data | 17:04 |
n4nd0 | I think this change comes from the introduction of SGReferencedData, a base class for SGVector and SGMatrix | 17:04 |
n4nd0 | nicococo: I am just thinking how we can debug the method effectively | 17:05 |
nicococo | n4nd0: so the two-class problem works (which is a great indicator) lets try the multi-class again.. check, the slacks and select the regularization .. i have to go now, but tomorrow we can discuss the results. if it is still not convincing we have to dive deeper | 17:09 |
-!- puffin444 [62e3926e@gateway/web/freenode/ip.98.227.146.110] has joined #shogun | 17:11 | |
-!- nicococo [~nico@lacedcoffee.ml.tu-berlin.de] has left #shogun [] | 17:12 | |
ckwidmer | n4nd0, I fixed a few problems with cplex dependent classes and made a pull request | 17:15 |
ckwidmer | there are still problems left in SubGradientLPM, which need to be fixed (adjusting to the new label design) | 17:16 |
ckwidmer | could you please take a look? | 17:16 |
-!- heiko [~heiko@host86-181-80-133.range86-181.btcentralplus.com] has left #shogun [] | 17:33 | |
n4nd0 | ckwidmer: sorry I am half-absent | 17:39 |
n4nd0 | ckwidmer: to the pull request or to the other problems to be fixed? | 17:39 |
ckwidmer | ideally both :) | 17:40 |
-!- eric_ [2e1fd566@gateway/web/freenode/ip.46.31.213.102] has quit [Quit: Page closed] | 17:40 | |
n4nd0 | I have not power to merge pull requests so let's leave that to blackburn or sonney2k | 17:42 |
n4nd0 | I am not proffesional :P | 17:42 |
n4nd0 | and what are the problems with SubGradienLPM? at least it should compile, right? | 17:42 |
ckwidmer | doesn | 17:47 |
ckwidmer | t | 17:47 |
ckwidmer | compile unfortunately | 17:47 |
ckwidmer | there are problems with get_labels all over the place | 17:47 |
ckwidmer | not a biggie | 17:47 |
ckwidmer | but needs to be fixed | 17:47 |
ckwidmer | is sonney2k around today? | 17:47 |
n4nd0 | I think he is a bit off these last days | 17:53 |
ckwidmer | ok | 17:55 |
n4nd0 | ckwidmer: is it only in SubGradientLPM where the compilation with cplex enabled fails or also in other parts? | 17:57 |
ckwidmer | as far as I can tell, it's the only problem left | 17:57 |
ckwidmer | I fixed two other problems | 17:57 |
ckwidmer | in CPLEXSVM | 17:58 |
ckwidmer | and LPM | 17:58 |
n4nd0 | I am saying it because it would be nice to have all these fixes together in a pull request | 17:58 |
n4nd0 | and in any case, how do you manage to continue with the work if the compilation still fails? | 17:59 |
ckwidmer | well | 18:09 |
ckwidmer | disable cplex | 18:09 |
ckwidmer | ;) | 18:09 |
puffin444 | Hey is it better to submit a pull request and ask about small changes to the submitted code, or would it be better to ask them beforehand? | 18:18 |
-!- ckwidmer [8ca3fe9d@gateway/web/freenode/ip.140.163.254.157] has quit [Ping timeout: 245 seconds] | 18:19 | |
-!- vikram360 [~vikram360@117.192.168.146] has quit [Ping timeout: 240 seconds] | 18:25 | |
n4nd0 | puffin444: when they are small details I normally send it and just comment about them | 18:32 |
n4nd0 | but maybe that is not the right way :P | 18:32 |
puffin444 | okay | 18:32 |
puffin444 | I think it would help if people had the code to look at. | 18:33 |
puffin444 | Which would be available in a pull request. | 18:33 |
n4nd0 | sure | 18:34 |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has quit [Ping timeout: 244 seconds] | 18:38 | |
CIA-18 | shogun: Soeren Sonnenburg master * r5477eb7 / (3 files in 2 dirs): Merge pull request #584 from cwidmer/master - http://git.io/oMXCUA | 18:45 |
CIA-18 | shogun: Christian Widmer master * r33a2582 / (3 files in 2 dirs): fixed a few problems with the new label architecture in CPLEX dependent classes - http://git.io/hHQc2Q | 18:45 |
@sonney2k | puffin444, I don't understand the question | 18:46 |
puffin444 | sonney2k, I have a chunk of code ready to be pulled into the main branch. I have some questions about some details, and I wonder whether I should ask them in the pull request or before submitting the request. | 18:47 |
@sonney2k | puffin444, as you wish | 18:48 |
@sonney2k | doesn't make a difference | 18:48 |
puffin444 | ok. | 18:48 |
-!- puffin444 [62e3926e@gateway/web/freenode/ip.98.227.146.110] has quit [Quit: Page closed] | 19:16 | |
shogun-buildbot_ | build #932 of r_static is complete: Failure [failed test_1] Build details are at http://www.shogun-toolbox.org/buildbot/builders/r_static/builds/932 blamelist: sonne@debian.org | 19:28 |
shogun-buildbot_ | build #843 of octave_static is complete: Failure [failed test_1] Build details are at http://www.shogun-toolbox.org/buildbot/builders/octave_static/builds/843 blamelist: sonne@debian.org | 19:32 |
-!- gsomix [~gsomix@109.169.156.50] has joined #shogun | 19:33 | |
gsomix | hi all | 19:33 |
@sonney2k | hi gsomix | 19:33 |
gsomix | philosophy - passed | 19:33 |
gsomix | time to work | 19:33 |
-!- vikram360 [~vikram360@117.192.171.39] has joined #shogun | 19:35 | |
-!- vikram360 [~vikram360@117.192.171.39] has quit [Ping timeout: 244 seconds] | 19:46 | |
shogun-buildbot_ | build #626 of octave_modular is complete: Success [build successful] Build details are at http://www.shogun-toolbox.org/buildbot/builders/octave_modular/builds/626 | 19:47 |
-!- cronor [~cronor@fb.ml.tu-berlin.de] has quit [Ping timeout: 244 seconds] | 19:52 | |
shogun-buildbot_ | build #613 of csharp_modular is complete: Success [build successful] Build details are at http://www.shogun-toolbox.org/buildbot/builders/csharp_modular/builds/613 | 19:55 |
shogun-buildbot_ | build #601 of lua_modular is complete: Failure [failed test_1] Build details are at http://www.shogun-toolbox.org/buildbot/builders/lua_modular/builds/601 blamelist: cwidmer@tuebingen.mpg.de | 20:02 |
-!- ckwidmer [8ca3fe9d@gateway/web/freenode/ip.140.163.254.157] has joined #shogun | 20:37 | |
@sonney2k | ckwidmer, does it compile w/ cplex now? | 20:47 |
ckwidmer | sonney2k, there are still a few problems with CLabels, I asked n4nd0 to take care of them | 20:48 |
ckwidmer | sonney2k, have you recently disabled cplex? | 20:48 |
ckwidmer | there were quite a few problems with it | 20:48 |
ckwidmer | since changes were made to labels | 20:49 |
@sonney2k | ckwidmer, disabled? no. | 20:52 |
@sonney2k | no one has cplex so we don't know if it works | 20:52 |
ckwidmer | ok, so you don't have it either | 20:53 |
ckwidmer | that's where i was going | 20:53 |
ckwidmer | I guess one of the students should have it enabled | 20:53 |
ckwidmer | to catch all the regressions in cplex dependent classes | 20:53 |
ckwidmer | it's apparently free for academic use | 20:54 |
ckwidmer | I wasn't using it myself, but marius wanted to use LPBoost | 20:54 |
@sonney2k | ckwidmer, anyway we didn't change anything that would make it hard to fix | 20:55 |
@sonney2k | only Labels got split up | 20:55 |
ckwidmer | true | 20:55 |
@sonney2k | and functions from CMath moved to reasonable places | 20:55 |
ckwidmer | but there is nothing wrong with checking if it still compiles | 20:55 |
ckwidmer | it's certainly not hard to fix | 20:55 |
ckwidmer | but was broken | 20:55 |
@sonney2k | ckwidmer, sure bot none of us has cplex so we cannot | 20:58 |
ckwidmer | I understand, but it might be worthwhile to have one of the students install it (it's free) | 20:58 |
@sonney2k | ckwidmer, they are all busy... | 21:05 |
ckwidmer | well, I guess then cplex is broken | 21:06 |
@sonney2k | ckwidmer, I wouldn't even mind removing that crap | 21:06 |
ckwidmer | me neighter | 21:06 |
ckwidmer | neither | 21:06 |
ckwidmer | I guess LPBoost could be solved using GLPK anyway | 21:08 |
ckwidmer | right? | 21:08 |
@sonney2k | just slow :D | 21:08 |
ckwidmer | heh, yeah maybe | 21:08 |
@sonney2k | LPBoost == LPM == SVM with L1 norm regularizer | 21:08 |
@sonney2k | ckwidmer, well it uses hotstarts... | 21:09 |
ckwidmer | ah | 21:09 |
ckwidmer | and GLPK doesn't support that? | 21:09 |
@sonney2k | exaclty | 21:09 |
ckwidmer | I mean, I don't really use any of that | 21:09 |
ckwidmer | I know Marius needs LPBoost | 21:09 |
@sonney2k | I think liblinear has that too | 21:09 |
ckwidmer | about the other Cplex dependent stuff, I don't care at all | 21:10 |
@sonney2k | not so sure | 21:10 |
ckwidmer | I just think that if you choose to keep it in there | 21:10 |
ckwidmer | it should at least compile | 21:10 |
@sonney2k | well if someone complains we can fix the errors one by one | 21:10 |
@sonney2k | otherwise there is nothing we can do | 21:10 |
ckwidmer | hmmm | 21:10 |
ckwidmer | don't you have a build server? | 21:11 |
@sonney2k | yes | 21:11 |
@sonney2k | but it will only ever run oss | 21:11 |
ckwidmer | so, why not install cplex there | 21:11 |
ckwidmer | but it would help to catch your errors | 21:11 |
ckwidmer | if no one else has it installed | 21:12 |
ckwidmer | in the end, it's up to you | 21:12 |
ckwidmer | I think it's bad to deliver software that is sure to break if a particular tool is installed | 21:12 |
ckwidmer | no if cplex is not maintained, at least disable it by default | 21:13 |
@sonney2k | well then fix it if you care so much :) | 21:14 |
@sonney2k | it is just a matter of resources... | 21:14 |
ckwidmer | I don't really care that much :P | 21:14 |
ckwidmer | yeah, ok | 21:14 |
ckwidmer | then it should be disabled | 21:14 |
ckwidmer | or checked automatically | 21:14 |
ckwidmer | on a different note | 21:14 |
ckwidmer | is there a sparse matrix class in shogun? | 21:14 |
@sonney2k | yes | 21:15 |
-!- ckwidmer [8ca3fe9d@gateway/web/freenode/ip.140.163.254.157] has quit [Ping timeout: 245 seconds] | 21:23 | |
-!- gsomix [~gsomix@109.169.156.50] has quit [Ping timeout: 245 seconds] | 22:36 | |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has joined #shogun | 22:44 | |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has left #shogun [] | 22:49 | |
-!- ckwidmer [8ca3fe9d@gateway/web/freenode/ip.140.163.254.157] has joined #shogun | 22:54 | |
-!- blackburn [5bde8018@gateway/web/freenode/ip.91.222.128.24] has joined #shogun | 23:08 | |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has joined #shogun | 23:16 | |
n4nd0 | sonney2k: hi there | 23:20 |
-!- cronor [~cronor@e178178115.adsl.alicedsl.de] has joined #shogun | 23:34 | |
--- Log closed Fri Jun 15 00:00:41 2012 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!