Skip to main content

SciKit-Learn Laboratory makes it easier to run machine learning experiments with scikit-learn.

Project description

Build status Latest version on PyPI License Conda package for SKLL Supported python versions for SKLL DOI for citing SKLL 1.0.0

This Python package provides command-line utilities to make it easier to run machine learning experiments with scikit-learn. One of the primary goals of our project is to make it so that you can run scikit-learn experiments without actually needing to write any code other than what you used to generate/extract the features.

Command-line Interface

The main utility we provide is called run_experiment and it can be used to easily run a series of learners on datasets specified in a configuration file like:

experiment_name = Titanic_Evaluate_Tuned
# valid tasks: cross_validate, evaluate, predict, train
task = evaluate

# these directories could also be absolute paths
# (and must be if you're not running things in local mode)
train_directory = train
test_directory = dev
# Can specify multiple sets of feature files that are merged together automatically
# (even across formats)
featuresets = [["family.ndj", "misc.csv", "socioeconomic.arff", "vitals.csv"]]
# List of scikit-learn learners to use
learners = ["RandomForestClassifier", "DecisionTreeClassifier", "SVC", "MultinomialNB"]
# Column in CSV containing labels to predict
label_col = Survived
# Column in CSV containing instance IDs (if any)
id_col = PassengerId

# Should we tune parameters of all learners by searching provided parameter grids?
grid_search = true
# Function to maximize when performing grid search
objectives = ['accuracy']

# Also compute the area under the ROC curve as an additional metric
metrics = ['roc_auc']
# The following can/should be absolute paths
log = output
results = output
predictions = output
models = output

For more information about getting started with run_experiment, please check out our tutorial, or our config file specs.

We also provide utilities for:

Python API

If you just want to avoid writing a lot of boilerplate learning code, you can also use our simple Python API which also supports pandas DataFrames. The main way you’ll want to use the API is through the Learner and Reader classes. For more details on our API, see the documentation.

While our API can be broadly useful, it should be noted that the command-line utilities are intended as the primary way of using SKLL. The API is just a nice side-effect of our developing the utilities.

A Note on Pronunciation

SKLL logo

SciKit-Learn Laboratory (SKLL) is pronounced “skull”: that’s where the learning happens.


The following packages can be optionally installed for additional features but are not required:


  • Simpler Machine Learning with SKLL 1.0, Dan Blanchard, PyData NYC 2014 (video | slides)
  • Simpler Machine Learning with SKLL, Dan Blanchard, PyData NYC 2013 (video | slides)


SKLL is featured in Data Science at the Command Line by Jeroen Janssens.


See GitHub releases.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for skll, version 1.5.3
Filename, size File type Python version Upload date Hashes
Filename, size skll-1.5.3.tar.gz (8.6 MB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page