Package: skll
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.InstallationYou can install using eitherpiporconda. See detailshere.RequirementsPython 3.10, 3.11, or 3.12.beautifulsoup4gridmap(only required if you plan
to run things in parallel on a DRMAA-compatible cluster)joblibpandasruamel.yamlscikit-learnseaborntabulateCommand-line InterfaceThe main utility we provide is calledrun_experimentand 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, traintask=evaluate[Input]# these directories could also be absolute paths# (and must be if you're not running things in local mode)train_directory=traintest_directory=dev# Can specify multiple sets of feature files that are merged together automaticallyfeaturesets=[["family.csv", "misc.csv", "socioeconomic.csv", "vitals.csv"]]# List of scikit-learn learners to uselearners=["RandomForestClassifier", "DecisionTreeClassifier", "SVC", "MultinomialNB"]# Column in CSV containing labels to predictlabel_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 searchobjectives=['accuracy'][Output]# Also compute the area under the ROC curve as an additional metricmetrics=['roc_auc']# The following can also be absolute pathslogs=outputresults=outputpredictions=outputprobability=truemodels=outputFor more information about getting started withrun_experiment, please check
outour tutorial, orour config file specs.You can also follow thisinteractive Jupyter tutorial.We also provide utilities for:converting between machine learning toolkit formats(e.g., ARFF, CSV)filtering feature filesjoining feature filesother common tasksPython APIIf 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
theLearnerandReaderclasses. For more details on our API, seethe 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 PronunciationSciKit-Learn Laboratory (SKLL) is pronounced “skull”: that’s where the learning
happens.TalksSimpler 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)CitingIf 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).”BooksSKLL is featured inData Science at the Command LinebyJeroen Janssens.ChangelogSeeGitHub releases.ContributeThank you for your interest in contributing to SKLL! SeeCONTRIBUTING.mdfor instructions on how to get started.