Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

skpro

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

skpro

A unified framework for tabular probabilistic regression, time-to-event prediction, and probability distributions in python

  • 2.8.0
  • PyPI
  • Socket score

Maintainers
2

:rocket: Version 2.8.0 out now! Read the release notes here..

skpro is a library for supervised probabilistic prediction in python. It provides scikit-learn-like, scikit-base compatible interfaces to:

  • tabular supervised regressors for probabilistic prediction - interval, quantile and distribution predictions
  • tabular probabilistic time-to-event and survival prediction - instance-individual survival distributions
  • metrics to evaluate probabilistic predictions, e.g., pinball loss, empirical coverage, CRPS, survival losses
  • reductions to turn scikit-learn regressors into probabilistic skpro regressors, such as bootstrap or conformal
  • building pipelines and composite models, including tuning via probabilistic performance metrics
  • symbolic probability distributions with value domain of pandas.DataFrame-s and pandas-like interface
Overview
Open SourceBSD 3-clause
TutorialsBinder !youtube
Community!discord !slack
CI/CDgithub-actions !codecov readthedocs platform
Code!pypi !conda !python-versions !black
DownloadsPyPI - Downloads PyPI - Downloads Downloads
CitationDOI

:books: Documentation

Documentation
:star: TutorialsNew to skpro? Here's everything you need to know!
:clipboard: Binder NotebooksExample notebooks to play with in your browser.
:woman_technologist: User GuidesHow to use skpro and its features.
:scissors: Extension TemplatesHow to build your own estimator using skpro's API.
:control_knobs: API ReferenceThe detailed reference for skpro's API.
:hammer_and_wrench: ChangelogChanges and version history.
:deciduous_tree: Roadmapskpro's software and community development plan.
:pencil: Related SoftwareA list of related software.

:speech_balloon: Where to ask questions

Questions and feedback are extremely welcome! We strongly believe in the value of sharing help publicly, as it allows a wider audience to benefit from it.

skpro is maintained by the sktime community, we use the same social channels.

TypePlatforms
:bug: Bug ReportsGitHub Issue Tracker
:sparkles: Feature Requests & IdeasGitHub Issue Tracker
:woman_technologist: Usage QuestionsGitHub Discussions · Stack Overflow
:speech_balloon: General DiscussionGitHub Discussions
:factory: Contribution & Developmentdev-chat channel · Discord
:globe_with_meridians: Community collaboration sessionDiscord - Fridays 13 UTC, dev/meet-ups channel

:dizzy: Features

Our objective is to enhance the interoperability and usability of the AI model ecosystem:

  • skpro is compatible with scikit-learn and sktime, e.g., an sktime proba forecaster can be built with an skpro proba regressor which in an sklearn regressor with proba mode added by skpro

  • skpro provides a mini-package management framework for first-party implementations, and for interfacing popular second- and third-party components, such as cyclic-boosting, MAPIE, or ngboost packages.

skpro curates libraries of components of the following types:

ModuleStatusLinks
Probabilistic tabular regressionmaturingTutorial · API Reference · Extension Template
Time-to-event (survival) predictionmaturingTutorial · API Reference · Extension Template
Performance metricsmaturingAPI Reference
Probability distributionsmaturingTutorial · API Reference · Extension Template

:hourglass_flowing_sand: Installing skpro

To install skpro, use pip:

pip install skpro

or, with maximum dependencies,

pip install skpro[all_extras]

Releases are available as source packages and binary wheels. You can see all available wheels here.

:zap: Quickstart

Making probabilistic predictions

from sklearn.datasets import load_diabetes
from sklearn.ensemble import RandomForestRegressor
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

from skpro.regression.residual import ResidualDouble

# step 1: data specification
X, y = load_diabetes(return_X_y=True, as_frame=True)
X_train, X_new, y_train, _ = train_test_split(X, y)

# step 2: specifying the regressor - any compatible regressor is valid!
# example - "squaring residuals" regressor
# random forest for mean prediction
# linear regression for variance prediction
reg_mean = RandomForestRegressor()
reg_resid = LinearRegression()
reg_proba = ResidualDouble(reg_mean, reg_resid)

# step 3: fitting the model to training data
reg_proba.fit(X_train, y_train)

# step 4: predicting labels on new data

# probabilistic prediction modes - pick any or multiple

# full distribution prediction
y_pred_proba = reg_proba.predict_proba(X_new)

# interval prediction
y_pred_interval = reg_proba.predict_interval(X_new, coverage=0.9)

# quantile prediction
y_pred_quantiles = reg_proba.predict_quantiles(X_new, alpha=[0.05, 0.5, 0.95])

# variance prediction
y_pred_var = reg_proba.predict_var(X_new)

# mean prediction is same as "classical" sklearn predict, also available
y_pred_mean = reg_proba.predict(X_new)

Evaluating predictions

# step 5: specifying evaluation metric
from skpro.metrics import CRPS

metric = CRPS()  # continuous rank probability score - any skpro metric works!

# step 6: evaluat metric, compare predictions to actuals
metric(y_test, y_pred_proba)
>>> 32.19

:wave: How to get involved

There are many ways to get involved with development of skpro, which is developed by the sktime community. We follow the all-contributors specification: all kinds of contributions are welcome - not just code.

Documentation
:gift_heart: ContributeHow to contribute to skpro.
:school_satchel: MentoringNew to open source? Apply to our mentoring program!
:date: MeetingsJoin our discussions, tutorials, workshops, and sprints!
:woman_mechanic: Developer GuidesHow to further develop the skpro code base.
:medal_sports: ContributorsA list of all contributors.
:raising_hand: RolesAn overview of our core community roles.
:money_with_wings: DonateFund sktime and skpro maintenance and development.
:classical_building: GovernanceHow and by whom decisions are made in the sktime community.

:wave: Citation

To cite skpro in a scientific publication, see citations.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc