Orange3 Data Mining Framework

raw JSON →
3.40.0 verified Sat May 09 auth: no python

Orange3 is a component-based data mining framework for Python, offering visual programming and a rich set of widgets for data preprocessing, modeling, and evaluation. The current stable version is 3.40.0, with a release cadence of approximately 2-3 minor versions per year.

pip install orange3
error ImportError: cannot import name 'Table' from 'Orange.data'
cause Typo or outdated Orange version; Table is in Orange.data since Orange 3.x. In Orange 2.x it was Orange.OrangeTable.
fix
Ensure you have orange3 (not orange) installed: pip install orange3 and use 'from Orange.data import Table'.
error ModuleNotFoundError: No module named 'PyQt5'
cause Orange3 GUI requires PyQt5; missing on some headless Linux systems or Python installations without Qt.
fix
Install PyQt5: pip install PyQt5 or use conda: conda install pyqt. Alternatively, set environment variable DISPLAY if using GUI.
breaking Orange3 requires Python >=3.11 as of version 3.40.0. Python 3.10 or earlier will fail to install.
fix Upgrade Python to 3.11+.
gotcha On Windows, pip install orange3 may fail due to missing Qt DLLs. Conda install (conda-forge) is strongly recommended.
fix Use: conda install -c conda-forge orange3
gotcha Loading datasets with Table('dataset_name') will automatically download the dataset to ~/Orange/datasets if not present. This can cause silent network access in production environments.
fix Manually download datasets and use local file paths: Table('/path/to/data.tab')
deprecated Orange.classification.SimpleRandomForestLearner is deprecated as of 3.33. Use RandomForestLearner (wraps sklearn's RandomForestClassifier).
fix Replace SimpleRandomForestLearner with RandomForestLearner.
conda install -c conda-forge orange3

Loads the Iris dataset, normalizes features, trains a Random Forest, and evaluates with 5-fold cross-validation.

from Orange.data import Table
from Orange.preprocess import Normalize
from Orange.classification import RandomForestLearner
from Orange.evaluation import CrossValidation, scoring

# Load dataset (automatically downloads if not present)
data = Table('iris')

# Preprocess: normalize features
normalizer = Normalize()
data_norm = normalizer(data)

# Train a random forest model
learner = RandomForestLearner(n_estimators=50, random_state=42)

# Cross-validation
results = CrossValidation(data_norm, [learner], k=5)
print('CA:', scoring.CA(results)[0])