Track your Data Science

skore is a Python library to evaluate and get insights from your predictive models.
We structure and store your experiments so that you can easily retrieve them later.

Reports for your Experiments

Evaluate one or several estimators, with a single train-test split or by cross-validation and get a structured report with the evaluate function.


It returns an EstimatorReport, a CrossValidationReport, or a ComparisonReport, all with the same API to discover all facets of your predictive models while experimenting.

Given some data df: (expand for full code)
from skrub.datasets import fetch_california_housing
dataset = fetch_california_housing()
df = dataset.X
y = dataset.y
import sklearn
import skore
import skrub

model = skrub.tabular_pipeline(sklearn.linear_model.Ridge())
report_ridge = skore.evaluate(model, df, y, splitter=5)
report_ridge
Pipeline(steps=[('tablevectorizer',
                 TableVectorizer(datetime=DatetimeEncoder(periodic_encoding='spline'))),
                ('simpleimputer', SimpleImputer(add_indicator=True)),
                ('squashingscaler', SquashingScaler(max_absolute_value=5)),
                ('ridge', Ridge())])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.

Please enable javascript

The skrub table reports need javascript to display correctly. If you are displaying a report in a Jupyter notebook and you see this message, you may need to re-execute the cell or to trust the notebook (button on the top right or "File > Trust notebook").

0 issue(s), 1 tip(s), 1 passed, 0 ignored.

Get Insights that Matter

Quickly generate beautiful visualizations with display.plot()

error = report_ridge.metrics.prediction_error()
error.plot(kind="actual_vs_predicted")
and access the raw data with display.frame()
report_ridge.metrics.summarize().frame(
    aggregate=None
)

Ridge
Split #0 Split #1 Split #2 Split #3 Split #4
Metric
Score 0.592291 0.573757 0.640446 0.588800 0.702893
0.592291 0.573757 0.640446 0.588800 0.702893
RMSE 0.661809 0.706360 0.719187 0.694560 0.657976
MAE 0.528334 0.495339 0.526417 0.522271 0.479352
MAPE 0.452064 0.226631 0.265538 0.336301 0.267484
Fit time (s) 0.059231 0.047790 0.043364 0.044963 0.043547
Predict time (s) 0.013659 0.013046 0.013417 0.013077 0.012912

Store and Retrieve your Reports, Locally or on Skore Hub

Project stores and retrieves your reports so you can revisit insights or compare with new experiments later.

import numpy as np

project = skore.Project(
    name="adult_census_survey", mode="local"
)
for alpha in np.logspace(-5, 5, 11):
    model = skrub.tabular_pipeline(
        sklearn.linear_model.Ridge(alpha=alpha)
    )
    project.put(
        f"ridge-{alpha:g}",
        skore.evaluate(model, df, y, splitter=3),
    )

Store everything locally on disk, or on Skore Hub to enhance your exploration and search for the impactful insights.

Our Community

The skore project is driven by Probabl together with a world-wide community of contributors. Here we display a randomly selected group of 30 contributors.

Try it yourself!

Ready to write less code, focus on what matters, and store your experiments to retrieve them later? Dive into skore now and be part of our growing community!