Skip to content

GSoC Contributions

kernc edited this page Aug 29, 2016 · 16 revisions

These are the student contributions that the Orange project obtained through Google Summer of Code program through the years. If you're looking for next-year's ideas, they're here.

GSoC 2016

Orange Add-on: Recommendation

by Salva Carrión

Add-on for Orange3 to include support for recommender systems. For this purpose, we've built an efficient and unified interface to tackle the problem of collaborative filtering (CF). The scripting library is the core of the add-on, which includes a number of published factorization algorithms as well as methods to optimize them and analyze their outcomes.

Orange Add-on: Educational Series

by Primož Godec

An educational series of Orange widgets can be used for a demonstration of several key data mining and machine learning procedures in a classroom. The widgets are useful for beginners to understand the inner working of key algorithms in the data mining and for teachers to be able to visually explain various methods. The result of my work as a part of GSoC are three widgets that are part of the Orange Educational Add-on: Interactive k-Means widget, Polynomial Classification widget and Gradient Descent widget.

Porting Table to pandas' DataFrame

by Sašo Stanovnik

This project consolidates the whole Orange data structure architecture and ports it to pandas, which provides a stable and mature framework for data storage. It includes an API redesign, a massive amount of refactorings and improvements and the removal of several legacy, unused behaviours. The aim is to make Orange more accessible to users already familiar with pandas, while still preserving as much compatibility with the existing Orange interaction as possible and where sensible. The result is a completely functional core Orange, save for undiscovered bugs. Extensive documentation of the changes, a migration guide, and a further work list exist in the Orange wiki.

Orange Add-on: Text Mining

by Aliaksei Sukharevich

The goal of this project was to improve the Orange3-Text add-on and make it an even more powerful tool for text mining. During the project Twitter's and Wikipedia's public RESTful services were connected to the add-on. Some of the already existing widgets and modules were redesigned and/or reimplemented (Preprocess Text, Topic Modeling, Bag of Words and Tf-Idf). Finally, Simhash, N-grams and POS Tagging widgets were introduced.

Rule induction (CN2)

by Matevž Kren

The goal of the project was foremost to implement supervised rule induction algorithms and rule-based classification methods, but also to devise a more general framework of replaceable individual components that users could fine-tune to their needs. The core result of my work is a scripting library, which can be easily extended to implement additional separate-and-conquer algorithms. Also included are two widgets, which showcase several CN2 induction algorithms by the way of visual programming.

Documentation will be available upon merge and is included in the PR.

GSoC 2012

Computer Vision Add-On for Orange

by Andrej T.

Development of a add-on (set of widgets for Orange Canvas) that will introduce computer vision functionality to Orange. The core of the add-on will be the Python computer vision library OpenCV. The development of this add-on and the gathered findings will be then used for improving the Orange core.

Multi-Target Learning for Orange

by Miran Levar

Orange already has a multi-target tree learner, but it is written in python and is therefore slow, especially when used in a random forest. Implementing the multi-target tree learner in C++ would quicken classification considerably and also lower its spatial complexity. The tree learner would be based on the Top-down induction of clustering trees proposed by Blockeel and De Raedt and would extend Orange's SimpleTreeLearner. Because tree learning algorithms really come to life inside random forests, integration with Orange's random forest would be another focal point. Orange is progressing towards version 3.0, therefore the implemented code would be integrated with the new version. Once the algorithms are implemented and integrated, an experimental study would be performed comparing the implemented multi-target tree classifier with established multi-target classifiers (e.g. PLS, Bayesian classifiers) on benchmark datasets. Finally, tests, documentation and scripting reference would be written.

Widgets for Statistics

by Amela Rakanović

The goal of this project is implementing a set of standard statistical methods in Orange in its own spirit and style. A lot of code for various statistical methods already exists in Python; we will not reimplement what we can reuse. The bulk of the work will be implementation of widgets and not of statistical computation. It is my hope that the project will encourage others to contribute more widgets of this kind.

GSoC 2011

2D Visualization Using PyQt

by Noughmad

Replace the current graph framework based on PyQwt with a pure Qt implementation. This allows greater flexibility, which would be used to make graphs prettier and more readable. It also removes a dependency on PyQwt, which is not available for Python 3.

Matrix Factorization Techniques for Data Mining

by Marinka Žitnik

Our objective is to provide the Orange community with a unified and efficient interface to matrix factorization algorithms and methods. For that purpose we will develop a scripting library which will include a number of published factorization algorithms and initialization methods and will facilitate the combination of these to produce new strategies. Extensive documentation, working examples and visualization methods will be provided to help with the interpretation of the results.

Multi-Label Classification

by Wencan Luo

The main goal of multi-label classification is to extend the Orange to support multi-label, including dataset support, two basic multi-label classifications-problem-transformation methods & algorithm adaptation methods, evaluation measures, GUI support, documentation, testing, and so on.