Interfaces: ClusterBase.java, and Cluster.java in Clustering For the classifier, Bayes has two interfaces in bayes/interfaces as Algorithm.java and Datastore.java The Taste part has a generic recommender interface at cf.taste.recommender and the implementations are in cf.taste.impl.recommender.
I've been mostly sticking to the Taste part, so I might have missed interfaces elsewhere. On Wed, May 26, 2010 at 8:40 AM, Shannon Quinn <[email protected]> wrote: > Hi all, > > Had a few questions regarding my project; I've been watching the mailing > list carefully, so I apologize if the answers to these questions snuck by > me. > > 1) There was a thread early on regarding having the students keep blogs > about their projects. Should we be using our own blogs for this purpose, or > do this somewhere on the Mahout wiki, or other? > > 2) In getting a feel for Mahout, I've been running a few of the examples on > my own, and have noticed that if I supply the "-h" argument by itself to > some of the available programs, I get an exception, followed by the list of > available options for that program. For instance, in running "./bin/mahout > seq2sparse -h": > > May 25, 2010 10:21:09 PM org.slf4j.impl.JCLLoggerAdapter error > SEVERE: Exception > org.apache.commons.cli2.OptionException: Missing required option --output > at > > org.apache.commons.cli2.option.DefaultOption.validate(DefaultOption.java:172) > at org.apache.commons.cli2.option.GroupImpl.validate(GroupImpl.java:265) > at org.apache.commons.cli2.commandline.Parser.parse(Parser.java:104) > at > > org.apache.mahout.text.SparseVectorsFromSequenceFiles.main(SparseVectorsFromSequenceFiles.java:123) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > > org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68) > at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139) > at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:171) > Usage: > > [...snip...] > > Running "kmeans" and "seqdirectory" will give me the same error. Running > "clusterdump", however, gave me only the "Usage" output, not an exception. > I > tested this on the latest Mahout build from the trunk. If I supply all the > needed arguments to run some sort of test using data, it works just fine. > Just wondering if I'm doing something wrong? > > 3) Saving the best for last :) I'm having some trouble getting off the > ground with my code, and was hoping I could bounce some ideas around with > the experts who are intimately familiar with the architecture (I'm working > to implement MAHOUT-363). > > I see that there are drivers associated with each program, specifically to > handle initializing the algorithm and process inputs from the command line. > It looks like the functions main() and runJob() are always present, along > with other high-level methods (though private) that invoke the other > classes > in the respective clustering folders. I also see all the clustering > algorithms have mapper classes, responsible for implementing the map/reduce > portion. > > I suppose my question here is, is there a "standard" architecture for > implementing a new algorithm aside from what I've just described (i.e. am I > missing anything)? Are there any superclasses/interfaces I should pay > particular attention to in terms of extending/implementing? Also, my > algorithm depends in no small part on calculating eigenvalues and > eigenvectors of affinity/markov transition matrices, and I understand that > Mahout has a parallel eigensolver implemented. How can I make use of this? > > And as always, any other "general" pointers regarding the overall Mahout > architecture? :) > > I apologize if any of these questions are pedantic...and I apologize in > advance, as I'll likely be a regular fixture here with more questions as > the > summer continues :) Thank you very much for your help! > > Regards, > Shannon > -- SK
