Hi Ahmed, welcome to Shogun! We are very interested in somebody taking this project, as it is key for Shogun's development in the future. It is c++ heavy, but we are happy for ppl to learn on the way -- as long as they are motivated. See the getting involved guide, which covers exactly such questions.
Regarding example code. See the prototype we made, which is linked from the project description. The point is that we have base Shogun (with a fixed interface for doing ML) and we can load any class at runtime. So the two important steps are 1.) designing the interface (needs to be flexible yet not to specialised, what type of ML algorithms does Shogun have and how to expose them. Start with designing one for supervised learning looking at the current CMachine interface) 2.) building the plugins, this is c++ software engineering. You can get an idea from our prototype, try to understand it first. Ask sergey in irc about details. Looking forward to your contribution! Best Heiko 2016-03-08 22:32 GMT+00:00 Ahmed El-Hinidy <[email protected]>: > Dear Sir, > > I am Ahmed El-Hinidy, a Computer Engineering student at Cairo University. > > I am very interested in GSoC, and of working on Shogun Toolbox and being > part of its community. > > I am interested in working in the following project: > "A unified interface for Machine Learning & a framework for plugin-based > architecture" > > I want to inquire about somethings if I may: > 1- Required technical knowledge: > I am have experience with c++ due to studying it alone and using it on > several projects during university. > I am also self-studying machine learning and data science through 2 tracks > right now: > I. Stanford's Machine Learning course on Coursera (self paced): > https://www.coursera.org/learn/machine-learning > And I will finish it soon > II. Johns Hopkins University's Data Science Specialization on Coursera > (Self Paced): > https://www.coursera.org/specializations/jhu-data-science > > I also have knowledge of Software Engineering (currently enrolled in a SW > course at my university) > > So is this knowledge enough and suitable that I can begin to work on the > project and proceed on learning while working? And if not, could you please > suggest a source or a topic that I can study to better prepare myself. > > 2- Considering the technicalities of the project: > > First, I understand that a unified interface is needed to be created to be > create a plugin architecture, but is it required to change the architecture > of the whole framework into a plugin based one, or just some parts in order > to facilitate extending it in the future? > > Second, Is there any example of Shogun code before and after being changed > to a plugin architecture so I can learn more about the difference and what > should be achieved (I viewed the references on the project's page), or will > this be the first time this is done? > > Sorry for the long message, and thanks for your precious time. > Sincerely, > Ahmed Hamada El-Hinidy > ********************************************************** > Student - Cairo University - Faculty of Engineering > Computer and Communications Engineering > [email protected] > +201227417171 >
