naywhayare changed the topic of #mlpack to: http://www.mlpack.org/ -- We don't respond instantly... but we will respond. Give it a few minutes. Or hours. -- Channel logs: http://www.mlpack.org/irc/
Anand has joined #mlpack
< jenkins-mlpack> Project mlpack - nightly matrix build build #473: STILL UNSTABLE in 1 hr 33 min: http://big.cc.gt.atl.ga.us:8080/job/mlpack%20-%20nightly%20matrix%20build/473/
Anand has quit [Ping timeout: 240 seconds]
Anand has joined #mlpack
Anand has quit [Ping timeout: 240 seconds]
sumedh_ has quit [Ping timeout: 240 seconds]
sumedh_ has joined #mlpack
< marcus_zoq> sumedh_: Hello, you should now be able to push to the repository.
< sumedh_> marcus_zoq: Thank you :)
andrewmw94 has joined #mlpack
< sumedh_> marcus_zoq: How to format text in online editor?? As in bullets, title and everything??
Anand has joined #mlpack
andrewmw94 has left #mlpack []
andrewmw94 has joined #mlpack
andrewmw94 has quit [Remote host closed the connection]
andrewmw94 has joined #mlpack
< marcus_zoq> sumedh_: You can use markdown to format your text: use '*' or '-' for bullets or '===' to mark a text as title.
< marcus_zoq> sumedh_: This the the raw file/post from anand: https://raw.githubusercontent.com/zoq/blog/master/content/blog/AnandWeekTwo.md
< sumedh_> like if I write '=== Collaborative filtering' it will be title... right??
< sumedh_> okay thanks that helps :)
< marcus_zoq> sumedh_: Put the '===' under the text to mark a text as title. https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
govg has joined #mlpack
govg has quit [Changing host]
govg has joined #mlpack
govg has quit [Quit: Changing server]
andrewmw94 has quit [Remote host closed the connection]
andrewmw94 has joined #mlpack
govg has joined #mlpack
andrewmw94 has quit [Remote host closed the connection]
andrewmw94 has joined #mlpack
govg has quit [Ping timeout: 252 seconds]
govg has joined #mlpack
govg has quit [Ping timeout: 252 seconds]
Anand has quit [Ping timeout: 240 seconds]
Anand has joined #mlpack
< Anand> Hi Marcus!
< Anand> I added some of the one vs alls yesterday
< Anand> Look at the mean predictive information implementation once
< Anand> By default, it assumes only two classes 0 and 1
< Anand> We need to change this
< Anand> I am wondering if using [highest class label] instead of '1' in the formula will work
< Anand> what do you think?
< Anand> Seems to be a work around
govg has joined #mlpack
govg_ has joined #mlpack
govg_ has quit [Client Quit]
govg_ has joined #mlpack
govg_ has left #mlpack []
andrewmw94 has quit [Remote host closed the connection]
andrewmw94 has joined #mlpack
andrewmw94 has left #mlpack []
govg has quit [Ping timeout: 276 seconds]
govg has joined #mlpack
govg has quit [Ping timeout: 255 seconds]
andrewmw94 has joined #mlpack
< marcus_zoq> Anand: I think that should work, I'll look at it more closely in a few minutes.
Anand has quit [Ping timeout: 240 seconds]
< marcus_zoq> andrewmw94: Hello, you should now be able to push to the repository.
< andrewmw94> thanks
< marcus_zoq> andrewmw94: You're welcome!
sumedh__ has joined #mlpack
sumedh_ has quit [Ping timeout: 240 seconds]
< marcus_zoq> andrewmw94: Now the author tag actually works like expected.
< sumedh__> naywhayare: Free for little while??
< naywhayare> sumedh__: sure
< naywhayare> andrewmw94: thanks for the post :)
< sumedh__> Okay... I tested sparse NMF with different parameters on GroupLens... Getting good results... but there is only one problem...
< sumedh__> When I run AMF.Apply() for the first time it is giving me results when I run it second time... it does not...
< naywhayare> there must be some local parameter in AMF that isn't being reset
< naywhayare> oh, I bet it's 'iteration'
< sumedh__> yeah I checked... they are fine... for some reason second time residues are different...
< naywhayare> no, I'm sorry, that can't be it, I misread
< naywhayare> what rules are you using?
< sumedh__> I am printing residue after every 500 iterations ...
< sumedh__> they seem to differ a lot...
< sumedh__> The only reason I can think of it randomInitialization....
< naywhayare> try setting math::RandomSeed() to a constant value before each run
< sumedh__> I am currently using modified NMF_ALS
< naywhayare> i.e. math::RandomSeed(0); amf.Apply(v, r, w, h); math::RandomSeed(0); amf.Apply(v, r, w, h);
< naywhayare> and maybe that will give the same results
< sumedh__> normal als giving residue 9.98*e-11 for grouplens and sparse with sparseness parameter 0.3 giving 6.2*e-11...
< naywhayare> but you run sparse amf the second time and it gives a completely wrong result?
< sumedh__> No I reinitialize the object and then run Apply with different parameter... :)
< sumedh__> Ohh.. sorry... yes... if I run Apply again with any parameter it does not stop...
< naywhayare> can you show me the code that you're using?
< sumedh__> and after debugging I realized that residue is not converging... floating above minResidue...
< naywhayare> so the test file and the modified rules
< sumedh__> So firstly I modified Apply so that it returns the residue ...
< sumedh__> and I am printing that... then...
< sumedh__> H = pinv(W.t() * W) * (W.t() * V - 0.3);
< sumedh__> this is the new update for H...
< sumedh__> sparseness parameter is 0.3...
< sumedh__> W = (V * H.t() - 0.3) * pinv(H * H.t());
< sumedh__> and this for W...
< sumedh__> this is it...
< naywhayare> ok, what about the code that is running amf twice?
< sumedh__> #include <iostream>
< sumedh__> #include <mlpack/core.hpp>
< sumedh__> #include <mlpack/methods/amf/amf.hpp>
< sumedh__> #include <mlpack/methods/amf/update_rules/nmf_als.hpp>
< sumedh__> #include <mlpack/methods/amf/init_rules/random_init.hpp>
< sumedh__> using namespace std;
< sumedh__> using namespace arma;
< sumedh__> using namespace mlpack;
< sumedh__> using namespace mlpack::amf;
< sumedh__> int main()
< sumedh__> {
< sumedh__> mat test;
< sumedh__> data::Load("GroupLens100k.csv", test);
< sumedh__> AMF<RandomInitialization, NMFALSUpdate> amf;
< sumedh__> mat m1,m2;
< sumedh__> std::cout << amf.Apply(test, 2, m1, m2) << std::endl;
< sumedh__> std::cout << amf.Apply(test, 2, m1, m2) << std::endl;
< sumedh__> std::cout << amf.Apply(test, 2, m1, m2) << std::endl;
< sumedh__> cout << "Hello world!" << endl;
< sumedh__> return 0;
< sumedh__> }
< sumedh__> first result is produced in about 324 iterations...
< sumedh__> second goes beyond 2000...
< naywhayare> add math::RandomSeed(0) before each call to amf.Apply(), so that the random initialization returns the same points
< sumedh__> okay... lets check..
< sumedh__> yup... worked like a charm...
< sumedh__> So the problem is in RandomInitialization...
< naywhayare> no, it's not a problem -- it's random initialization
< naywhayare> so it's possible you will sometimes get good initial positions and sometimes bad ones
< sumedh__> yes... but everytime the first one is good and second one is bad??
< sumedh__> at least there should be some randomness...
< naywhayare> that's because when your program is compiled, the random seed is set statically and it's the same every time you run the program
< naywhayare> you could add math::RandomSeed(std::time(NULL)) (or something like that) at the beginning of the program to ensure that the random seed is different every time the program is called
< sumedh__> with time seed I am getting way better results...
< sumedh__> avg around 5.0*e-11....
< naywhayare> yeah; you will probably get some random spurious results where the initialization was very bad
< naywhayare> but they will probably be fairly uncommon
< sumedh__> yes... Thats why I computed average its around 5... wait if you will be free in like 15 mins I will give you a detailed results :)
< marcus_zoq> sumedh__: Btw, I've set the correct header for your blog post, so that we actually see the post :)
< sumedh__> Ohh sorry... what did I do wrong??
< naywhayare> sumedh__: I'll still be here for probably two more hours before dinner, so I'm happy to look at results when you get them
< marcus_zoq> sumedh__: You need to set a header (title, author, date) here is the diff: https://github.com/zoq/blog/commit/ed5ae3b23bdeb343c5817b2fcd2cdfddee831113
< naywhayare> I added a link to the gsoc blog on the mlpack homepage
< naywhayare> the homepage is getting cluttered... lots of links. maybe time for a redesign? not sure... don't have time to do a redesign soon, either way
< sumedh__> Ohh okay... Thanks :) I will do that from next time...
< marcus_zoq> naywhayare: Great, I like the design, just as it is :)
< marcus_zoq> sumedh__: Maybe, when I have the time I'll go and add a script that creates automatically the header ...
< sumedh__> marcus_zoq: haha... That would be great...
< andrewmw94> I like how I start writing comments and try to end my sentences with a semicolon
< naywhayare> andrewmw94: that's a good thing, because I'll crash trying to read them otherwise
< sumedh__> naywhayare: The results are not constant... Too much random... not able compare... :(
< naywhayare> you could try one of the other initialization schemes
< naywhayare> RandomAColInit I think is one
sumedh__ has quit [Ping timeout: 240 seconds]
sumedh__ has joined #mlpack
< sumedh__> naywhayare: Sorry I checked your msg just now. okay... I will try it with RandomAColInit...
andrewmw94 has quit [Quit: andrewmw94]
< jenkins-mlpack> Starting build #1929 for job mlpack - svn checkin test (previous build: SUCCESS)
< jenkins-mlpack> Project mlpack - svn checkin test build #1929: SUCCESS in 32 min: http://big.cc.gt.atl.ga.us:8080/job/mlpack%20-%20svn%20checkin%20test/1929/
< jenkins-mlpack> * andrewmw94: Fix/update some comments, almost finish the splitting algorithm. Several miscellaneous changes.
< jenkins-mlpack> * Ryan Curtin: Trivial spelling fix.