Orange (software)

From Verify.Wiki
Jump to: navigation, search

Orange is an open-source data visualization, machine learning and data mining toolkit. It features a visual programming front-end for explorative data analysis and interactive data visualization, and can also be used as a Python library.


Orange is a component-based visual programming software package for data visualization, machine learning, data mining, and data analysis.

Orange components are called widgets and they range from simple data visualization, subset selection, and preprocessing, to empirical evaluation of learning algorithms and predictive modeling.

Visual programming is implemented through an interface in which workflows are created by linking predefined or user-designed widgets, while advanced users can use Orange as a Python library for data manipulation and widget alteration.


Orange is an open-source software package released under GPL. Versions up to 3.0 include core components in C++ with wrappers in Python are available on GitHub. From version 3.0 onwards, Orange uses common Python open-source libraries for scientific computing, such as numpy, scipy and scikit-learn, while its graphical user interface operates within the cross-platform Qt framework. Orange3 has its own separate github.

The default installation includes a number of machine learning, preprocessing and data visualization algorithms in 6 widget sets (data, visualize, classify, regression, evaluate and unsupervised). Additional functionalities are available as add-ons (bioinformatics, data fusion and text-mining).

Orange is supported on macOS, Windows and Linux and can also be installed from the Python Package Index repository (pip install Orange3).

As of May 2018 the stable version is 3.13 and runs with Python 3, while the legacy version 2.7 that runs with Python 2.7 is still available.


Orange consists of a canvas interface onto which the user places widgets and creates a data analysis workflow. Widgets offer basic functionalities such as reading the data, showing a data table, selecting features, training predictors, comparing learning algorithms, visualizing data elements, etc. The user can interactively explore visualizations or feed the selected subset into other widgets.

Classification Tree widget in Orange 3.0

  • Canvas: graphical front-end for data analysis
  • Widgets:
    • Data: widgets for data input, data filtering, sampling, imputation, feature manipulation and feature selection
    • Visualize: widgets for common visualization (box plot, histograms, scatter plot) and multivariate visualization (mosaic display, sieve diagram).
    • Classify: a set of supervised machine learning algorithms for classification
    • Regression: a set of supervised machine learning algorithms for regression
    • Evaluate: cross-validation, sampling-based procedures, reliability estimation and scoring of prediction methods
    • Unsupervised: unsupervised learning algorithms for clustering (k-means, hierarchical clustering) and data projection techniques (multidimensional scaling, principal component analysis, correspondence analysis).
    • Add-ons:
      • Associate: widgets for mining frequent itemsets and association rule learning
      • Bioinformatics: widgets for gene set analysis, enrichment, and access to pathway libraries
      • Data fusion: widgets for fusing different data sets, collective matrix factorization, and exploration of latent factors
      • Educational: widgets for teaching machine learning concepts, such as k-means clustering, polynomial regression, stochastic gradient descent, ...
      • Geo: widgets for working with geospatial data
      • Image analytics: widgets for working with images and ImageNet embeddings
      • Network: widgets for graph and network analysis
      • Text mining: widgets for natural language processing and text mining
      • Time series: widgets for time series analysis and modeling
      • Spectroscopy: widgets for analyzing and visualization of (hyper)spectral datasets

Paint Data widget in combination with hierarchical clustering and k-Means.

Verification history