Skip to main content

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

Project description

Gitlab CI status Azure Pipelines status https://codecov.io/gh/EducationalTestingService/skll/branch/main/graph/badge.svg Latest version on PyPI License Conda package for SKLL Supported python versions for SKLL DOI for citing SKLL 1.0.0 https://mybinder.org/badge_logo.svg

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.

Installation

You can install using either pip or conda. See details here.

Requirements

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:

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

[Input]
# 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
featuresets = [["family.csv", "misc.csv", "socioeconomic.csv", "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

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

[Output]
# Also compute the area under the ROC curve as an additional metric
metrics = ['roc_auc']
# The following can also be absolute paths
logs = output
results = output
predictions = output
probability = true
models = output

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

You can also follow this interactive Jupyter tutorial.

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
doc/spacer.png

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

Talks

  • 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)

Citing

If you are using SKLL in your work, you can cite it as follows: “We used scikit-learn (Pedragosa et al, 2011) via the SKLL toolkit (https://github.com/EducationalTestingService/skll).”

Books

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

Changelog

See GitHub releases.

Contribute

Thank you for your interest in contributing to SKLL! See CONTRIBUTING.md for instructions on how to get started.

Project details


Download files

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

Source Distribution

skll-3.0.0.tar.gz (110.4 kB view details)

Uploaded Source

Built Distribution

skll-3.0.0-py2.py3-none-any.whl (125.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file skll-3.0.0.tar.gz.

File metadata

  • Download URL: skll-3.0.0.tar.gz
  • Upload date:
  • Size: 110.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.0.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for skll-3.0.0.tar.gz
Algorithm Hash digest
SHA256 2683802f6eae1536b75e7d1347b940ac06ce2b9b889850dbf652b57a0d71d07c
MD5 10f778364ba31b16c7313fa19b611d25
BLAKE2b-256 bef6a1c05659009b8a52c184c4cfacd990d254edbc90f4d38447f61022a9770d

See more details on using hashes here.

File details

Details for the file skll-3.0.0-py2.py3-none-any.whl.

File metadata

  • Download URL: skll-3.0.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 125.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.0.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for skll-3.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ac3c10819c88f876bbf27227b8443e6b2081c9e84e7c09f901444e4d5bded27e
MD5 230132c67e58ec540b607308d678d97a
BLAKE2b-256 53cb37522675ff7d4b9764d07c8e397d7690ade62b968aa93374e1ee298eed71

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page