Shogun is a machine learning toolbox, written in C++, which offers a large variety of machine learning algorithms and also supports high level languages like Python, Lua, Ruby etc. However, Shogun is not very easy to build and has lots of dependencies. Most users install Shogun to use some particular algorithms instead of all the algorithms that Shogun offers, which results in installation redundancies. Moreover, developers also have to build the entire library to test the new features which slows down the development. These problems can be solved by a plugin architecure. A new parameter framework is required to build the plugin architecture, and it also helps to improve and cleanup the API of Shogun.
Initially the goal was -
- To build the new parameter framework and plugin architecture.
- Migrate old code base to use the new parameter framework and plugin architecture.
By mid-term evaluation, we (my mentor and I) decided to only complete the first part of the goal due to the difficulty and time constraint of the project. I have successfully implemented the targeted parameter framework and plugin architecture with a couple of minor features remaining. We have also started using new tags parameter framework in old Shogun code but more work needs to be done here. I plan to continue contributing to Shogun by working on my second part of the original goal of this project.
- My commits on
shogun
/develop
- My commits on
shogun
/feature/tags
- My commits in
shogun-data
/master
- Pending pull requests: Tags-readme, Plugins-readme, MKL binary cookbook, MKL multiclass cookbook.
Below, I have categorized these commits according to the project sub-topics.
Readme explaining this section will be added to Shogun's wiki soon. Pull request for this readme.
- Commit: Add Tags framework on branch
develop
. - Commit: change method names, fix bug and docs on branch
develop
. - Commit: fix bug in any on branch
develop
. - Commit: add swig interface for tags on branch
feature/tags
. - Commit: replace setsX("name", obj_X) by sets("name", obj_X) on branch
feature/tags
.
Readme explaining this section will be added to Shogun's wiki soon. Pull request for this readme.
- Commit: add plugins functionality on branch
feature/tags
.
I also contributed cookbooks (API tutorials) as part of the project.
- Commit: Add GMM cookbook page on branch
develop
. - Commit: add cookbook page for svr on branch
develop
. - Commit: init math for gmm cookbook integration data on branch
develop
. - Commit: add kernel svm cookbook on branch
develop
. - Commit: minor correction in svm cookbook on branch
develop
. - Commit: add cookbook for mkl regression on branch
develop
. - Commit: add cookbook for neural net classification on branch
develop
. - Commit: add svm multiclass cookbook on branch
develop
. - Commit: add cookbook for nn regression on branch
develop
. - Commit: minor change in neural net classification cookbook on branch
develop
. - Commit: change mkl cookbook link on branch
develop
. - Commit: add cmake guard for mkl regression cookbook on branch
develop
. - Commit: add meta-example api tests for literals and enums on branch
develop
. - Commit: add cookbook for euclidean distance on branch
develop
. - Commit: fix linking error in svm cookbook on branch
develop
. - Pull request: add cookbook for mkl multiclass.
- Pull request: add cookbook for mkl binary classification.
- Commit: add data for svr cookbook in
shogun-data
repository. - Commit: add integration data for gmm cookbook in
shogun-data
repository. - Commit: add data for kernel svm cookbook in
shogun-data
repository. - Commit: add data for mkl regression cookbook in
shogun-data
repository. - Commit: rename mkl regression cookbook data in
shogun-data
repository. - Commit: add data for nn cookbook in
shogun-data
repository. - Commit: add data for nn regression example in
shogun-data
repository. - Commit: add integration data for nn regression cookbook in
shogun-data
repository. - Commit: add integration data for multiclass svm cookbook in
shogun-data
repository. - Commit: add data for euclidean distance cookbook in
shogun-data
repository.
- Commit: Fix cdflib warnings for libshogun build on branch
develop
. - Commit: Fix some documentation warnings in python mod build on branch
develop
. - Commit: fix modshogun and python warnings on branch
develop
. - Commit: add new constructor in gaussian kernel on branch
develop
. - Commit: add setters/getters in nn and autoencoders on branch
develop
. - Commit: add %newobject in neuralnet interface on branch
develop
.