Registry / ai-ml / scikit-base

scikit-base

JSON →
library1.1.1pypypi✓ verified 28d ago

skbase provides base classes for creating scikit-learn-like parametric objects, along with tools to make it easier to build custom packages that follow these design patterns. It is a foundational library, notably used by `sktime`. The current version is 0.13.1, and it has a frequent release cadence with minor and patch updates occurring roughly monthly or bi-monthly.

pip install scikit-base
INSTALL
IMPORT
SIG · SCIKIT-BASE
S
scikit-base
ai-mlpythonv1.1.1
Install
3.4s avg
Import
81ms
Disk
76MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.9–3.13
musl
3.9–3.13
Install & Compatibility
Where this runs
tested against v1.1.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.10–3.910 runs
installs and imports cleanly · install 0.0s · import 0.084s · 19.3MB
glibc
py 3.10–3.910 runs
installs and imports cleanly · install 3.4s · import 0.079s · 20MB
76MB installed
● package 76MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

BaseObject
✓ from skbase.base import BaseObject
✗ from sklearn.base import BaseObject
skbase provides its own BaseObject for creating scikit-learn-like classes; it is not the same as scikit-learn's BaseEstimator.
all_objects
✓ from skbase.lookup import all_objects
Used to retrieve registered skbase objects, often filtered by tags.

This quickstart demonstrates defining a custom object inheriting from `skbase.base.BaseObject`, illustrating how to initialize parameters, retrieve them with `get_params`, modify them with `set_params`, and create a deep copy using `clone()`.

from skbase.base import BaseObject class MyCustomObject(BaseObject): """A simple custom object demonstrating skbase.base.BaseObject.""" def __init__(self, value_a=1, value_b="default_string", random_state=None): self.value_a = value_a self.value_b = value_b self.random_state = random_state super().__init__() # Create an instance of our custom object my_obj = MyCustomObject(value_a=10) print(f"Initial parameters: {my_obj.get_params()}") # Modify parameters using set_params my_obj.set_params(value_b="new_string_value") print(f"Parameters after set_params: {my_obj.get_params()}") # Demonstrate cloning (a common scikit-learn-like pattern) cloned_obj = my_obj.clone() print(f"Cloned object parameters: {cloned_obj.get_params()}") print(f"Is cloned_obj the same instance as my_obj? {cloned_obj is my_obj}")
Debug
Known issues
breakingThe meaning of `filter_tags` arguments (type `str` or `iterable of str`) in `skbase.lookup.all_objects` changed. Previously, it selected objects possessing the tag(s) of any value. From version 0.9.0, it selects objects where the tag's value is explicitly `True` (boolean).
fix
To retain the old behavior (selecting objects with the tag of any value), pass a dictionary with the tag name as key and `re.Pattern('.*')` as value. For example, `from re import Pattern; all_objects(filter_tags={'tag_name': Pattern('.*')})`.
affects: >=0.9.0
gotchaAs of version 0.4.2, `skbase` explicitly removed all core external PyPI dependencies, intending to be a truly base module without implicit requirements beyond Python itself. Developers building on `skbase` should be aware of this and explicitly manage any dependencies their custom objects require.
fix
Ensure all necessary dependencies for your project are explicitly listed in your `pyproject.toml` or `setup.py` and installed, rather than relying on `skbase` to pull them in indirectly.
affects: >=0.4.2
gotchaUsers often confuse `skbase` with `scikit-learn`. `skbase` provides base classes for *creating* scikit-learn-like parametric objects and design patterns, but it is not `scikit-learn` itself and does not contain machine learning algorithms for direct use. Importing `sklearn.base.BaseEstimator` is for `scikit-learn`, not `skbase.base.BaseObject`.
fix
If you intend to use existing machine learning algorithms, use `scikit-learn` (e.g., `from sklearn.ensemble import RandomForestClassifier`). If you are building new estimators that adhere to the `scikit-learn` API, use `skbase.base.BaseObject`.
affects: all
Upgrade
Version history
1.1.1latest on PyPI · released Aug 25, 2026
Audit
Dependencies
pythonrequiredRequired Python interpreter version range.
Agent activity
21 hits · last 30 days
node
16
OpenAI (training)
1
Resources
scikit-base — pip install scikit-base · libregistry