IRC logs of #shogun for Thursday, 2011-04-28

--- Log opened Thu Apr 28 00:00:01 2011
--- Day changed Thu Apr 28 2011
blackburnserialhex: there is many fields we can work in :)00:00
blackburnthere are!00:00
blackburnthere are00:00
blackburnthere are00:00
serialhexsweet!00:00
serialhexit's an interesting article & i reccomend reading it if you have a chance00:00
blackburnI will :)00:01
serialhexhe has a bunch more published papers for free on his site: http://www.fil.ion.ucl.ac.uk/~karl/00:01
* serialhex loves free science papers!!!00:01
blackburnbookmarked00:01
serialhexi think this will be _really_ cool to implement when the peson who is doing the realtime stuff gets done... then it can do on-line learning and be really spiffy!!!00:02
serialhexi have a bunch more stuff on this hiding on my HDD if you like... or you can search for it yourself :D00:04
blackburn:)00:04
blackburnokay00:05
* serialhex knows 10^6 more theory than implementation... but still knows very little theory :(00:06
* blackburn is angry with java EE :)00:07
serialhexwhat? the JEE stuff isnt working right??00:08
blackburnnow working but it is such pain in ass00:09
serialhexyeah, yesterday i went to the college and grabbed a book on designing algorithms, and the only one they had was in java... i'm not happy that i'm going to have to learn java right now :(00:10
blackburnjava se is good, I like it very much00:11
* serialhex ; hates; semicolons; after; every; stinking; line; of; code; i; type;00:12
blackburnbut EE is not java SE, it is something terrible :) for example one error in SQL query causing to throw ~60-70 exceptions in EJB 2.000:12
serialhexoooh... thats ugly!!!00:12
blackburnbut it is enterprise, bla-bla :)00:13
serialhexyeah, there's a ruby EE also... supposedly more secure & efficient but it's ruby 1.8.7 (the newest is 1.9.2)00:14
blackburnI'm now learning java EE at netcracker corp.00:14
serialhexso it's missing some cool new features, but it's the same thing: Enterprise Edition00:14
serialhexnetcracker corp??00:16
blackburnyeap, they have some courses on java ee here00:16
serialhexcool00:17
blackburnoh it is 02-22 here00:22
serialhexdamn... sleep time??00:23
blackburnyeah it is00:23
serialhexaiit, g'nite!00:23
blackburnsee you00:24
-!- blackburn [~qdrgsm@188.168.2.98] has quit [Quit: Leaving.]00:24
-!- f-x [~gen@180.149.49.227] has quit [Quit: leaving]00:36
-!- serialhex-10 [~androirc@99.101.149.136] has joined #shogun00:49
-!- sploving [~root@124.16.139.196] has left #shogun []03:34
-!- serialhex [~quassel@99-101-149-136.lightspeed.wepbfl.sbcglobal.net] has quit [Remote host closed the connection]04:02
-!- serialhex [~quassel@99-101-149-136.lightspeed.wepbfl.sbcglobal.net] has joined #shogun04:04
CIA-90shogun: Soeren Sonnenburg master * r479c5cd / src/modular/SGBase.i : comment init code for SWIGR - http://bit.ly/isxdMf04:59
serialhexsonney2k: isnt it a little early for you to be making commits??05:10
@sonney2kserialhex, too late to complain05:10
serialhexahh, ok :D05:11
@sonney2kawake now ... and yay it really compiles for all languages now05:11
serialhexyour kid have you awake this early in the am?05:11
serialhexsweet!!05:11
@sonney2kno just couldn't sleep05:14
@sonney2kI guess I had to check if you had the typemaps ready ;-)05:15
serialhexahh... i'm about to head to sleep myself, going to start shogun compiling then catch some zzzz's05:15
serialhexnoooo... not even close yet :P05:15
serialhexfor some reason the /configure script defaults to enabling 'libshogun libshogunui cmdline python python_modular' but not ruby / java modular interfaces... is that intentional?05:17
@sonney2kserialhex, yes05:18
serialhexok, just making sure05:18
@sonney2kyou need to manually specify new languages on the cmdline05:18
@sonney2konly rock-stable ones are enabled by default05:18
serialhexi did05:18
@sonney2k./configure --interfaces=libshogun,ruby_modular ?05:18
serialhexerm... --interfaces=libshogun,libshogunui,python,cmdline,ruby_modular,java_modular,python_modular05:19
@sonney2kwhy would you want all the others?05:19
serialhexthe whole shebang, cause i'm going to sleep & i can exercize my dominance of my pc this way :D05:19
@bettyboofunny05:19
serialhexomfg... thats crazy!!05:20
@sonney2k./configure --interfaces=libshogun,libshogunui,python,r,octave,cmdline,octave_modular,r_modular,lua_modular,java_modular,csharp_modular,java_modular,matlab05:20
@sonney2kif you have all of that05:20
serialhexi dont have the rest, i'm compiling what i have on my system05:20
@sonney2kI guess no matlab maybe in your case05:20
serialhexno matlab, octave or lua (yet)05:21
@sonney2kit doesnt take that long05:21
serialhexi figure it's another system to debug against if anything goes wrong05:21
serialhex...i'm running a 3ghz p4 it takes a while05:21
serialhexi've already had some problems with swig & rvm not wanting to play nicely together... ubuntu dosnt have the latest version of ruby and i want to be able to use the new features, rvm lets me switch between rubies but for some reason it's not playing nicely :(05:23
serialhexi dont know who to complain to, the ruby people, the swig people, or the rvm people (rvm == ruby version manager)05:24
serialhexbut, thats something for tomorrow, as i mist sleep now and see the doctor in the am!05:24
@sonney2kserialhex, have a nice sleep!05:25
* serialhex feels like this right now: http://xkcd.com/676/05:25
CIA-90shogun: Soeren Sonnenburg master * rfec837d / README : update readme to mention the new interfaces - http://bit.ly/lG4bdE05:25
@sonney2kheh05:27
CIA-90shogun: Soeren Sonnenburg master * rb10f479 / src/modular/SGBase.i :05:44
CIA-90shogun: use #if defined and friends to make the file more readable and to only05:44
CIA-90shogun: include init functions in the csharp and java modular interfaces. - http://bit.ly/mD0rj705:44
-!- serialhex [~quassel@99-101-149-136.lightspeed.wepbfl.sbcglobal.net] has quit [Remote host closed the connection]06:07
-!- serialhex [~quassel@99-101-149-136.lightspeed.wepbfl.sbcglobal.net] has joined #shogun06:07
-!- ameerkat [~ameerkat@184-98-140-155.phnx.qwest.net] has joined #shogun06:13
-!- serialhex-10 [~androirc@99.101.149.136] has quit [Quit: AndroIRC]06:18
-!- serialhex-10 [~androirc@99-101-149-136.lightspeed.wepbfl.sbcglobal.net] has joined #shogun06:18
-!- serialhex [~quassel@99-101-149-136.lightspeed.wepbfl.sbcglobal.net] has quit [Remote host closed the connection]07:35
-!- serialhex [~quassel@99-101-149-136.lightspeed.wepbfl.sbcglobal.net] has joined #shogun07:38
-!- akhil_ [75d35896@gateway/web/freenode/ip.117.211.88.150] has joined #shogun08:10
-!- akhil_ [75d35896@gateway/web/freenode/ip.117.211.88.150] has quit [Quit: Page closed]08:25
-!- Tanmoy [75d35896@gateway/web/freenode/ip.117.211.88.150] has joined #shogun09:23
-!- Tanmoy [75d35896@gateway/web/freenode/ip.117.211.88.150] has quit [Client Quit]09:25
-!- blackburn [~qdrgsm@188.168.4.9] has joined #shogun09:36
@sonney2kblackburn about time ;-)09:38
@bettyboo:) sonney2k09:38
blackburnyeah?09:38
@sonney2kCompiles now09:38
blackburnsonney2k: what was wrong with evaluation?09:38
@sonney2kNot with evaluation but general problem09:39
blackburnah, I see09:40
blackburnnow inspecting commits09:40
@sonney2kActually in swig and R09:40
@sonney2kAnyways going swimming now09:42
@sonney2kLater09:42
-!- ameerkat [~ameerkat@184-98-140-155.phnx.qwest.net] has quit [Ping timeout: 248 seconds]10:02
blackburnfound some wonderful matlab implementation of ALL algos I proposed10:27
blackburnthe task became simplier to me :)10:28
-!- blackburn [~qdrgsm@188.168.4.9] has quit [Quit: Leaving.]10:52
@sonney2kBlackburn yeah just do them all :-)11:51
* sonney2k wonders whether blackburn meant this one http://homepage.tudelft.nl/19j49/Matlab_Toolbox_for_Dimensionality_Reduction.html13:05
alesis-novikGood day14:22
alesis-novik3 exams done, 5 to go14:22
-!- mlsec_ [~mlsec@bane.ml.tu-berlin.de] has joined #shogun14:56
@sonney2kalesis-novik, did things go better in the last days?14:56
alesis-novikYeah, they did :)14:56
-!- mode/#shogun [+o mlsec_] by ChanServ14:57
-!- heiko [~heiko@134.91.10.201] has joined #shogun14:57
-!- Netsplit *.net <-> *.split quits: @mlsec14:59
-!- mlsec_ is now known as mlsec14:59
-!- mlsec [~mlsec@bane.ml.tu-berlin.de] has quit [Client Quit]14:59
-!- mlsec [~mlsec@bane.ml.tu-berlin.de] has joined #shogun15:00
-!- mode/#shogun [+o mlsec] by ChanServ15:00
@sonney2kvery good15:01
alesis-novikNext exam on Monday and the good thing is that I got ready for some of it by getting ready for GSoC15:03
alesis-novikBecause it has things like PCA, FA, EM in it15:03
@sonney2kheh15:06
@sonney2kheiko, around?15:06
heikohej yes15:06
heikojust read the logs from yesterday15:06
@sonney2kok15:07
@sonney2kany questions?15:07
heikonope15:08
@sonney2kif not then we should talk about the project :)15:08
heikosorry that I couldnt be there yesterday, it was just too short before when I read the mail15:08
heikoalright15:08
heikoI was just going to start implementing the things that we talked about yesterday15:09
@sonney2ksince I am not availabe for irc starting from next week - would it be possible to talk on the phone?15:09
heikoyes15:09
heikoactually, I prefer talking to chatting :)15:09
@sonney2kI can probably call while driving a baby around :)15:09
@sonney2kok15:09
heikoalright, nice :)15:09
@sonney2kthen email me how I can contact you15:09
@sonney2kbesides I think the safe things to do are of course15:10
heikoIt might also be that I am in Berlin in the next month15:10
@sonney2k1) implement the register_param() function in all classes that registers both x-val and real params15:10
heiko(for some dayas)15:10
@sonney2k2) continue the feature subset thing for all feature types15:11
@sonney2kand write examples for the feature subsetting thing in python_modular + do some tests15:11
heikoyes, these should be straightforward15:12
@sonney2kso whenever you are stuck and cannot reach me work on those :)15:12
@sonney2kbut lets continue with the plan15:12
heikook15:13
@sonney2ksay we have means to actually set the values for all the parameters15:13
heikoyes, this should work15:13
@sonney2kthen we more high level need a class say CModelSelection that can generate parameter values from a list or ranges of values15:14
heikoyes, and there was the idea with the base class from which all methods of model selection inherit from15:15
@sonney2kso we need a) a way to actually register parameters to perform model selection over15:15
@sonney2kb) to iterate/sample from these15:16
@sonney2kc) different data splitting schemes15:16
@sonney2kd) performance measure15:16
@sonney2kblackburn aka Sergey has done a great job and did d) for us already15:16
heikowhat has he done?15:17
@sonney2kimplemented all the performance measures I can think of15:17
heikoalright :)15:17
@sonney2kthere is a class CEvaluation15:17
@sonney2k(that provides an interface evaluate(CLabel* predicted, CLabel* truth)15:17
@sonney2kand returns a real values score15:18
@sonney2kthat we can use to measure if sth is good or not15:18
@sonney2kso I think the CModelSelection class should have a function - set_evaluation_criteria(CEvaluation* crit)15:18
@sonney2kthen it needs a function set_labels(), set_model(CClassifier* c)15:19
@sonney2k(we will rename CClassifier to CModel at some point - so don't get confused - regression clustering etc all are derived from that)15:19
heikook, no problem :)15:20
@sonney2kand then I guess we either have CModelSelection as interface and implement all the schemes in derived classes or have a separate class doing this - up to you (I am fine with deriving things)15:22
@sonney2kso the critical point here is to define a means to select parameters and ranges15:23
-!- f-x [b49531e5@gateway/web/freenode/ip.180.149.49.229] has joined #shogun15:25
@sonney2kheiko, did I write too much?15:25
heikono15:25
heikoI checked out another project:15:25
heikothere it went like this for alle the params15:25
heikoyou provided min, max, step15:26
@sonney2k(that works only for real-values)15:26
heikoand a possible function that produces the steps15:26
heikoyes of course15:26
heikojust searching where I had to documentation of this ...15:27
@sonney2kwe want sth. where we can specify e.g. for an SVM a number of different kernels and their kernel parameters even15:27
heikook15:28
heikothen this is kind of hard problem: selecting parameters/ranges15:28
@sonney2kheiko, not too hard actually15:28
@sonney2kjust think of nested lists15:29
@sonney2kwith all the values explicitly available15:29
@sonney2kthen one has to traverse the list recursively and generate all the possible values15:29
heikook nice idea15:29
heikoand the lists are generated in our model selection class15:30
heikoso, should all objects that contain x-val parameters know about their possible ranges and steps?15:32
@sonney2kyes or we for now assume that they are provided somehow15:32
@sonney2kheiko, they have to somehow15:32
heikoso lets have an example: this list consists of two kernels15:33
heikoeach kernel has some parameters15:33
@sonney2kwhile I see that this is feasible for e.g. floating point numbers I have no idea how this will work in the general case15:33
@sonney2kyes15:33
heikoNo idea also, actually, it is new to me to perform model selection for something different than real/natural numbers15:34
heikobut ok15:34
@sonney2ke.g. [ [ GaussianKernel, [ 0.1, 1, 10]], [ ... ]]15:34
f-xsonney2k: hey! have some really important assignments to submit today and tomorrow... so i think i can be active from tomorrow night only15:35
f-xis it okay?15:35
@sonney2kf-x, sure! Just resume work when you have time and start to communicate again!15:36
heikosonney2k, this looks quite similar to15:37
heikohttp://scikit-learn.sourceforge.net/auto_examples/grid_search_digits.html15:37
f-xsonney2k: great! be back tomorrow.15:37
f-xsee ya15:37
heikobye f-x15:37
-!- f-x [b49531e5@gateway/web/freenode/ip.180.149.49.229] has quit [Quit: Work!!!]15:38
@sonney2kheiko, since it would be too difficult to parse such [] things from any language I would use shogun's list object and to register these things15:38
@sonney2kI think we need some range object then and some constant's too15:39
heikoyes true15:39
heikojust meant the list15:39
@sonney2kso one would say15:39
@sonney2kp=ModelSelectionParameters()15:40
@sonney2kkp=ModelSelectionParameters()15:40
@sonney2kkp.add(GaussianKernel)15:40
@sonney2kkp.add_logrange('width', -2,2)15:41
@sonney2kp.add(kp)15:41
@sonney2ketc15:41
heikothis is really cool like this ! :)15:42
@bettybooHA15:42
@sonney2kfor certain languages one could make convenience functions to really work like the gridsearch above - but this here is the most general case15:43
@sonney2kbtw, when will you be in berlin and where in berlin actually?15:44
heikothis is not perfectly clear, probably somewhere in may. Somewhere in Schöneberg, Kreuzberg or Mitte15:45
heikoI visit some friends and want to apply for a Master at the TU15:45
heikoisnt there a problem with these range-setters in the ModelSelectionParameters class above?15:46
heikoit has to be somehow clear to which parameter the ranges belong15:46
@sonney2kit should be kp.add('kernel', GaussianKernel)15:47
heiko(I though of perhaps make a visit at your office, if you are interested :)15:48
@sonney2kbut I am not there15:48
@sonney2kI am from july on only again15:48
heikook, well we will see15:48
heikoso now we have this tree of ModelSelectionParameter instances15:49
heikoand the ModelSelection class is able to generate all parameter combinations from these15:49
@sonney2kyeah you do a depth first traversal15:50
heikoto get all parameters15:51
heikobut for actuall cross.-validation, these have to be multiplicated to get all combinations15:51
heiko(cartesian-multiplication)15:52
CIA-90shogun: Soeren Sonnenburg master * r2be31a4 / (6 files in 2 dirs): Merge branches 'streaming' and 'master' of git://github.com/frx/shogun - http://bit.ly/iseEiD15:53
@sonney2kheiko, you are right - so we need multiple trees like this15:54
@sonney2khmmhh that needs some more thought15:56
heikoyes, perhaps mixing all the parameters that are to be selected with their ranges and stuff in one structure is critical15:57
@sonney2kit should somehow reflect the tuned_parameters in scikits15:58
@sonney2klets think15:58
@sonney2kif we have nested lists15:59
@sonney2kthe top level in the list could be independent parameters / or not15:59
heikoby independent you mean?15:59
heikofor example kernel?16:00
heikodifferent kernels?=16:00
@sonney2kheiko, parameters that you can simultaneously select without conflict16:00
heikocan you give an example?16:02
@sonney2kheiko, like [ 'kernel', 'C']16:04
@sonney2kif we have ranges for both, they could be selected simultaneously16:05
@sonney2kI mean your parameter multiplication explosion16:05
heikosimultaneously means both values are changed at the same time?16:05
@sonney2kto get all combinarionts16:05
@sonney2kyes16:05
heikobut if you change your kernel,16:06
heikodont you have to reconsider your C choice16:06
heikobecause the feature space changes?16:06
@sonney2kyes that is why all combinations16:06
heikook, then I misunderstood you16:06
@sonney2kso #C * #kernels(+kernel parameter values)16:06
heikoand dependent parameters?16:07
@sonney2ke.g. kernel -> GaussianKernel, PolyKernel ...16:08
@sonney2kand parameters attached16:08
heikoah alright now i get you16:08
heikoso you mean certain parameters imply other parameters16:08
heikoand therefore, not all combination sof all parameters16:09
heikoare "valid"16:09
heikoif one would just use the tree16:09
@sonney2kyes and you can only select one not multiple of them at the same time16:09
@sonney2kyesz16:09
@sonney2kI am looking at the nested lists again16:09
@sonney2k(leaving this problem aside for now)16:10
heikook16:10
@sonney2kin the top level of the list one would only expect parameters for the respective CModel16:10
@sonney2kin one level below parameters for a parameter of CModel and so on16:10
@sonney2kthe problem now is that there could be 'kernel', GaussianKernel and 'kernel', PolyKernel16:11
@sonney2kso what needs to restructure this list to have all kernels in one list16:12
heiko'kernel' in set_range you mean?16:12
@sonney2k p=ModelSelectionParameters()16:12
@sonney2k kp=ModelSelectionParameters()16:12
@sonney2kerr16:13
@sonney2kp.add('kernel', GaussianKernel)16:13
@sonney2kp.add('kernel', PolyKernel)16:13
heikowhat do you mean by 'so what needs to restructure this list to have all kernels in one list'?16:19
@sonney2kheiko, ok new try - now 'much easier'16:20
@sonney2k[['kernel', [ [ GaussianKernel, ['width', [ 1,2,3 ]] ], [ PolyKernel, ['degree', [1,2]] ] ]], ['C', [0.1, 1, 10]]16:20
@sonney2kwe do it in a way that parameters that are independent from each other have to be specified in one go16:21
@sonney2kso in the example, 'kernel' can be one of GaussianKernel or PolyKernel with respective parameters16:21
@sonney2kand C is independent of this so any value of C can be combined with 'kernel'16:22
heikook, this sounds good16:24
-!- serialhex [~quassel@99-101-149-136.lightspeed.wepbfl.sbcglobal.net] has quit [Read error: Connection reset by peer]16:26
@sonney2klet me draft a ModelSelectionParametrers() example16:26
-!- serialhex [~quassel@99-101-149-136.lightspeed.wepbfl.sbcglobal.net] has joined #shogun16:27
@sonney2kpar=ModelSelectionParameter()16:28
@sonney2kkernel_par=ModelSelectionParameter()16:28
@sonney2kgaussian_par=ModelSelectionParameter()16:28
@sonney2kgaussian_par.add_range('width', 1,3, 3)16:28
@sonney2kpoly_par=ModelSelectionParameter()16:28
@sonney2kpoly_par.add_range('degree', 1,2,2)16:28
@sonney2kkernel_par.add('GaussianKernel', gaussian_par)16:28
@sonney2kkernel_par.add('PolyKernel', poly_par)16:28
@sonney2kpar.add('kernel', kernel_par)16:29
@sonney2kpar.add_logrange('C', -1,1, 3)16:29
@sonney2kto explain16:30
@sonney2kyou create par - the master parameter16:30
heikoyes, think I get it16:30
@sonney2kthen you create a kernel parameter that will contain gaussian and poly and add that later and also add C later16:31
@sonney2ksince gaussian/poly have paramters too we need also params for them16:31
@sonney2kok16:31
heikopossible combinations are represented by a path from an element in par to a leaf16:33
heikoand all possible paths for every element in the top level have to be combined16:33
-!- serialhex-10 [~androirc@99-101-149-136.lightspeed.wepbfl.sbcglobal.net] has quit [Read error: Operation timed out]16:35
@sonney2kheiko, now the messy(tm) part is what happens when the kernel itself has another independent parameter, e.g. say the way a kernel is normalized16:36
heikosounds messy(tm) ;)16:37
heikolet me get a sheet of paper ...16:37
@sonney2kI have a workaround idea for that16:39
@sonney2kI mean it is complicated enough already in the example above16:40
@sonney2kluckily people will usually only do model selection over one paramter range and maybe one more parameter16:40
heikobecomes unfeasible quite fast if you go for more16:41
@sonney2kso the workaround would be to put 'kernel.normalizer' in there and parse the '.' or assume that people give us simply kernels with different normalizers anyways16:41
@sonney2kthen this is not necessary at all16:41
@sonney2kin the tuned_parameters of scikits learn parameter names are flattened it seems ... no idea what they do if they have two objects with same paramter names16:43
-!- ameerkat [~ameerkat@184-98-140-155.phnx.qwest.net] has joined #shogun16:43
heikosorry phone ringing ...16:51
@sonney2kheiko, back?17:02
heiko2mins17:03
heikore17:05
@sonney2kI have a more clear picture now17:06
heikook give it to me17:06
heikoerr, tell me ;)17:06
@sonney2kin my example above we have two ways17:06
@sonney2kof adding a parameter17:07
@sonney2kone is adding a [ <name>, <range|param_list> ]17:07
@sonney2kand one is adding a [ <value>, <param_list> ]17:08
@sonney2kwhenever we add a new name we know these are independent things so they will need 'expansion' later on17:09
@sonney2kthe others are just nested values for a certain <name>17:09
heikoyes17:12
heikoso this may be applied to the kernel.normalizer17:12
@sonney2kso that makes clear how/when to recurse17:12
@sonney2kthat would even work with the kernel normalizer then17:13
@sonney2kit is just another nested thing17:14
heikoi am a bit unsure with the line17:14
heikokernel_par.add('GaussianKernel', gaussian_par)17:14
heikobecause it is a new name17:15
@sonney2khttp://dpaste.com/536807/17:15
@sonney2kthe way how lists are nested17:15
heikook and the name addings are only for 'kernel' and 'C'17:15
@sonney2kyes17:16
@sonney2kand if one adds another name it will need a recursion17:16
heikook17:19
@sonney2kis that more or less clear?17:21
heikothen now we have this list17:21
heikooh, yes17:21
@sonney2knested list yes17:21
heikowell ok, then it should be possible to set these parameters to the shogun objects17:23
@sonney2kyeah and you need to open a recursion whenever you hit a new name for a parameter17:24
@sonney2kI guess we define just a few for the beginning: float64_t and SGObject17:25
heikoyes17:26
heikothe next step should be to evaluate the classifier17:26
heikos17:26
@sonney2kthen the modsel object can generate a new values and these are registered in a CParamter object that is then applied to the shogun object17:26
@sonney2kheiko, the classifier always has a function train()17:27
@sonney2kand classify()17:27
heikoyes17:27
@sonney2kclassify() returns a label object17:27
@sonney2kand then you call the evaluate() function of your evaluation object17:27
heikoby evaluate I meant to test it on data and calculate a performance measure17:28
heikook, same thing17:28
heikobut the question before that is on which data to train and to test17:28
heikoso the spliiting of the data17:28
@sonney2kyes you change the data splitting dependent on which ModelSelection() class you are in17:29
@sonney2kNFoldModelSelection, LOOModelSelection or so17:30
heikoisnt the way the data is split up independent from the model selection process?17:30
heikoi mean, for example the grid search just iterates over all parameters and selects the classifier with the best acheived performance measure17:30
@sonney2kmaybe we have a name clash here17:30
heikobut only the evaluation of a classifier is dependent on the way the data is split up17:31
@sonney2kwell the search part is the same it is only that you use different data splits17:31
@sonney2kyes17:31
heikowouldnt it be good to seperate this?17:31
heikolike:17:31
@sonney2kas I said either have different ModSel objects one for each way you split the data or set the data splitting via some extra class17:32
heikohaving a class that evaluates a classifier based on a certain strategy.17:32
heikoand this (or another) class is used by the search class17:32
heikoi think i would prefer a base class for splitting up the data and specializations of this class are used by any search class17:34
@sonney2kI am fine with both approaches17:34
heikook17:34
@sonney2k(I was assuming that this is what the ModelSelection class does)17:35
heikobut there also might be different methods of selecting a model17:35
@sonney2kapart from that it looks like we have a more concrete plan or?17:35
heikolike grid-search, bisection, gradient descent etc17:35
heikoyes17:35
@sonney2kheiko, now I understand grid-search etc17:35
@sonney2kyes17:35
@sonney2kok then do it as you proposed17:35
@sonney2kany problem you see right now?17:36
@sonney2kthere will probably many when it comes to the details but for now high-level wise?17:36
heikowith the overall process?17:36
@sonney2kyeah17:36
heikono this looks all quite good to me17:37
@sonney2kbecause I see one potential bug in all kernel based methods now...17:37
@sonney2kthat will kill things17:37
@sonney2kdo you want to know or was that enough for today?17:38
heikono tell me :)17:38
heikoif you have time, I have17:38
@sonney2kcurrently kernel machines only remember the training indices but don't keep the actual data around17:39
heikooh17:39
@sonney2kso that means our feature subsetting thing will kabooom17:39
heikoand changing the data all time ..17:39
heikowell17:39
heikoand now?17:40
@sonney2kso start with linear classifiers :)17:40
heikohehe ;)17:40
heikowhat about storing pointers to data?17:41
heikomy first intend17:41
@sonney2kdoesn't work - features can be on-the-fly computed17:41
@sonney2kso pointers are not really valid17:41
@sonney2kI think kernel machines have to actually really store the training data for all alphas != 017:42
heikothe SV-alphas you mean, right?17:42
@sonney2kyes17:42
@sonney2kor somehow have a view of the features17:42
heikowhat about some mapping?17:43
heikommh, but this only works in the other direction17:44
@sonney2kor multiple views on data17:44
heikoah ok I understadn17:45
heikohmm, so the machine has an internal map17:46
heikothese view must be located in the features, right?17:50
heikobecause the learning machine gets access via the features, who operate on the subset17:50
heikoquite complicated.17:50
heikowhat about storing the data?17:50
heikotoo much stuff?17:51
heikoi do not know how large problems become, i my BA I had some thousend SVs and the feature space dimension was huge, but there might be problems with storing the data doubled17:53
heikoso the views would be a more performant approach, while being more complicated17:53
heikoto implement and to use17:53
@sonney2kheiko, and the view cannot be stored internally in the features / or one would have to select the view all the time17:54
@sonney2kmessy17:54
@sonney2kone could argue that kernel machines are not largescale anyway and so just duplicate the data17:55
heikowhat if a way to avoid the subset of features is added and used by kernel machines?17:55
@sonney2kbut that is also hacky or?17:55
@sonney2kthen you have to do that for all machines differntly17:56
heikoyes17:56
heikonot to cool17:56
heikoso storing17:57
@sonney2kor maybe write an email to the mailinglist - maybe someone has a better idea17:57
@sonney2kor17:58
@sonney2kone has a trainign and test view on data17:58
@sonney2kthough I would very much prefer that a classifier is self contained after training, that is has all the things necessary to be called later on with some test features.17:59
@sonney2kthe problem then of course is that e.g. KNN has to copy all the data17:59
@sonney2kand the kernel machine in the end too18:00
heikonearest neighbour?18:00
@sonney2kyes18:00
heikotrue18:00
@sonney2kanyway got to go18:00
heikook, lets talk about it later18:00
heikohave a nice evening and thanks for all your time18:00
@sonney2kso ask on the ML and try to draw a picture of the plan or document it somehow18:01
@sonney2kotherwise channel logs :)18:01
@sonney2ktry to get into the certain parts and see if it all still makes sense after a night of sleep18:01
@sonney2kok18:01
@sonney2kl8r18:01
@sonney2kthanks for the discussion!18:01
* sonney2k Re18:24
-!- ameerkat [~ameerkat@184-98-140-155.phnx.qwest.net] has quit [Ping timeout: 248 seconds]18:41
-!- alesis-novik [~alesis@188.74.87.84] has quit [Quit: I'll be Bach]18:56
-!- heiko [~heiko@134.91.10.201] has quit [Ping timeout: 258 seconds]19:20
-!- heiko [~heiko@134.91.55.152] has joined #shogun19:28
-!- akhil_ [75d35896@gateway/web/freenode/ip.117.211.88.150] has joined #shogun19:37
-!- blackburn [~qdrgsm@188.168.2.109] has joined #shogun19:39
blackburnhello19:44
blackburnnow reading student google group19:45
blackburnit is something terrible19:45
-!- akhil_ [75d35896@gateway/web/freenode/ip.117.211.88.150] has quit [Ping timeout: 252 seconds]20:03
@sonney2kblackburn, what is going on in there?20:43
blackburnsonney2k: guys are asking all the way about 'enrollment proof'20:44
blackburnand there is A LOT of messages like 'I haven't received any email asking me to proof that. WHAT SHOULD I DO??!!!'20:44
blackburnthese guys are really mad :D20:44
@bettyboohehe!20:44
@sonney2koh well20:46
-!- heiko [~heiko@134.91.55.152] has left #shogun []20:48
@sonney2kblackburn, is it this toolbox http://homepage.tudelft.nl/19j49/Matlab_Toolbox_for_Dimensionality_Reduction.html ?21:01
blackburnhm21:01
blackburnit isn't21:01
@sonney2k33 methods!21:02
blackburnbut that link could be useful too21:02
blackburnsonney2k: thank you21:03
blackburndownloaded21:03
blackburnwith time all of these methods could be implemented..21:04
@sonney2kso you will have a busy summer :D21:05
blackburnhey! I will not work 80 hours a week :)21:05
@sonney2kjust 33 methods - how many weeks are there?21:06
@sonney2kerr days21:06
@sonney2k1 method 3 days?21:07
@sonney2k:)21:07
blackburnoh well one method per 3 days :D21:07
blackburnso then let google paid me 33K21:07
@sonney2k1100K per 3 days?21:08
@sonney2kI would wish I get this much money :D21:09
@sonney2ker 1.1K21:09
blackburnyeah I wish to get it too :D21:09
blackburnwith expenses I have now I could not work for 11 years :D21:11
@bettyboohaha blackburn21:11
@sonney2kblackburn, lets see what you say when you are 11 years older21:12
@sonney2kor even my age :)21:12
blackburnsonney2k: of course, I will say it is not sufficient in next 2 years21:12
blackburnsonney2k: your age is quite similar to me 11 years older21:16
@sonney2ksimilar is not sufficient :)21:17
@sonney2kanyway check licenses of the toolboxes you use or ask the author if they are not compatible and you just port the dim red method21:18
blackburnsonney2k: eh. but is port clashes with license?21:18
@sonney2kif you use their source code and are not allowed to do so - I think so21:19
blackburnI mean it just the same way to do it21:19
blackburnsonney2k: ok, I will check for it21:20
blackburnnow I want to make port to python, I could better comprehend it21:20
@sonney2kwaste of time - I mean you can use octave to run the code and it is as simple to read as python or even better21:21
blackburnsonney2k: do you suggest to port it right in C++?21:22
blackburnand.. why should I use octave, I used matlab to run it21:23
@sonney2kblackburn, yes - but of course the methods you are really interested in you should try to understant oo21:23
@sonney2kdidn't know you have matlab21:23
@sonney2kexpensive...21:23
blackburnsonney2k: just recall where I live21:24
@sonney2kI see university ;)21:24
@sonney2kanyways doesn't matter21:24
blackburnI mean I have no problem to crack it, nobody cares there.. :D21:24
@bettybooblackburn, rotfl21:24
@sonney2kbut seriously look at the code - it is pretty easy to understand.21:25
blackburnsonney2k: yeah it is21:25
@sonney2kand I guess when he has 33 dim red methods implemented he must have had some plan21:25
blackburnsonney2k: I already checked for papers about21:26
blackburnI have papers about algos I proposed21:26
blackburnsonney2k: well my plan to port it is really wasting of time21:27
blackburnnow understand it :)21:27
blackburnsonney2k: http://www.math.ucla.edu/~wittman/mani/ that one has more 'beauty' code21:28
blackburnnot 33 but has ones I proposed21:29
@sonney2kare you joking?21:30
@sonney2kI mean you meant mani.m right?21:31
* sonney2k couldn't understand this code - only the one from the 33 examples21:34
blackburnsonney2k: it is because there are some GUI issues21:42
@sonney2kit is only gui right?21:43
blackburnsonney2k: nope, there are methods too21:43
blackburnsonney2k: for example line 876 for hessian lle21:43
blackburnat least it generates some nice pictures :D21:44
@bettyboohoho21:44
@sonney2kI see - but yeah I am not a gui guy :)21:46
blackburnoh I really want to start working on it21:48
blackburnbut now have to write some ejbLoad(), ejbStore(), ...21:48
@sonney2kblackburn, enjoy!21:53
blackburnsonney2k: now you are joking :D21:53
@sonney2kBTW, when will you finally have holidays?21:53
blackburn15-20 june21:53
blackburnbut in june I only have 3 exams and nothing more21:54
@sonney2kohh so you are pretty busy - will be tough for you to get any work done ...21:55
blackburnsonney2k: anyway I will done everything, do not worry :)21:56
@sonney2kyeah, I hope you will manage21:57
blackburnsonney2k: now I just have to finish my java ee project and other studies is pretty easy to me21:58
@sonney2kjust do it!21:59
blackburnsonney2k: yeah, working now :)22:00
@sonney2kblackburn, good luck and good night22:40
--- Log closed Fri Apr 29 00:00:37 2011

Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!