Skip to content

wildboar-foundation/wildboar

Repository files navigation

Wildboar logo

wildboar

wildboar is a Python module for temporal machine learning and fast distance computations built on top of scikit-learn and numpy distributed under the BSD 3-Clause license.

It is currently maintained by Isak Samsten

Features

Data Classification Regression Explainability Metric Unsupervised Dimension selection Outlier
Repositories ShapeletForestClassifier ShapeletForestRegressor ShapeletForestCounterfactual UCR-suite ShapeletForestTransform DimensionVarianceThreshold IsolationShapeletForest
Classification (wildboar/ucr) ExtraShapeletTreesClassifier ExtraShapeletTreesRegressor KNearestCounterfactual MASS RandomShapeletEmbedding SelectDimensionPercentile
Regression (wildboar/tsereg) RocketTreeClassifier RocketRegressor PrototypeCounterfactual DTW RocketTransform SelectDimensionTopK
Outlier detection (wildboar/outlier:easy) RocketClassifier RandomShapeletRegressor IntervalImportance DDTW IntervalTransform SelectDimensionSignificance
RandomShapeletClassifier RocketTreeRegressor ShapeletImportance WDTW FeatureTransform
RocketForestClassifier RocketForestRegressor MSM MatrixProfileTransform
IntervalTreeClassifier IntervalTreeRegressor TWE FlossSegmenter
IntervalForestClassifier IntervalForestRegressor LCSS Motif discovery
ProximityTreeClassifier CastorRegressor ERP SAX
ProximityForestClassifier EDR PAA
HydraClassifier ADTW MatrixProfileTransform
KNeighborsClassifier HydraTransform
ElasticEnsembleClassifier KMeans with (W)DTW support
DilatedShapeletClassifier KMedoids
CastorClassifier DilatedShapeletTransform
CastorTransform
QuantTransform

See the documentation for examples.

Installation

Binaries

wildboar is available through pip and can be installed with:

pip install wildboar

Universal binaries are compiled for Python 3.9, 3.10, 3.11 and 3.12 running on GNU/Linux, Windows and macOS.

Compilation

If you already have a working installation of numpy, scikit-learn, scipy and cython, compiling and installing wildboar is as simple as:

pip install .

To install the requirements, use:

pip install -r requirements.txt

For complete instructions see the documentation

Usage

from wildboar.ensemble import ShapeletForestClassifier
from wildboar.datasets import load_dataset
x_train, x_test, y_train, y_test = load_dataset("GunPoint", merge_train_test=False)
c = ShapeletForestClassifier()
c.fit(x_train, y_train)
c.score(x_test, y_test)

The User guide includes more detailed usage instructions.

Changelog

The changelog records a history of notable changes to wildboar.

Development

Contributions are welcome! The developer's guide has detailed information about contributing code and more!

In short, pull requests should:

  • be well motivated
  • be formatted using Black
  • add relevant tests
  • add relevant documentation

Source code

You can check the latest sources with the command:

git clone https://github.com/wildboar-foundation/wildboar

Documentation

Citation

If you use wildboar in a scientific publication, I would appreciate citations to the paper:

  • Karlsson, I., Papapetrou, P. Boström, H., 2016. Generalized Random Shapelet Forests. In the Data Mining and Knowledge Discovery Journal

    • ShapeletForestClassifier
  • Isak Samsten, 2020. isaksamsten/wildboar: wildboar. Zenodo. doi:10.5281/zenodo.4264063

  • Karlsson, I., Rebane, J., Papapetrou, P. et al. Locally and globally explainable time series tweaking. Knowl Inf Syst 62, 1671–1700 (2020)

    • ShapeletForestCounterfactual
    • KNearestCounterfactual