{"id":14958302,"url":"https://github.com/sktime/skpro","last_synced_at":"2025-05-15T02:03:43.501Z","repository":{"id":83615133,"uuid":"103107372","full_name":"sktime/skpro","owner":"sktime","description":"A unified framework for tabular probabilistic regression, time-to-event prediction, and probability distributions in python","archived":false,"fork":false,"pushed_at":"2025-05-09T16:41:09.000Z","size":12195,"stargazers_count":266,"open_issues_count":82,"forks_count":54,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-05-09T21:08:54.703Z","etag":null,"topics":["ai","data-science","distributional-regression","distributions","failure-prediction","framework","machine-learning","prediction","probability-distributions","python","regression","sklearn","sktime","survival-analysis","survival-models","survival-prediction","time-to-event"],"latest_commit_sha":null,"homepage":"https://skpro.readthedocs.io/en/latest","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sktime.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.rst","codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-11T08:03:54.000Z","updated_at":"2025-05-09T08:00:07.000Z","dependencies_parsed_at":"2023-09-24T07:17:42.429Z","dependency_job_id":"56fc1032-df1d-4544-977d-c8adfaf4ca71","html_url":"https://github.com/sktime/skpro","commit_stats":{"total_commits":466,"total_committers":20,"mean_commits":23.3,"dds":0.4227467811158798,"last_synced_commit":"7722ad277bcf14be88de87379f2db246175bdc7f"},"previous_names":["alan-turing-institute/skpro"],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sktime%2Fskpro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sktime%2Fskpro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sktime%2Fskpro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sktime%2Fskpro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sktime","download_url":"https://codeload.github.com/sktime/skpro/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253700655,"owners_count":21949698,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","data-science","distributional-regression","distributions","failure-prediction","framework","machine-learning","prediction","probability-distributions","python","regression","sklearn","sktime","survival-analysis","survival-models","survival-prediction","time-to-event"],"created_at":"2024-09-24T13:16:42.637Z","updated_at":"2025-05-15T02:03:43.483Z","avatar_url":"https://github.com/sktime.png","language":"Python","readme":"\u003ca href=\"https://skpro.readthedocs.io/en/latest\"\u003e\u003cimg src=\"https://github.com/sktime/skpro/blob/main/docs/source/images/skpro-banner.png\" width=\"500\" align=\"right\" /\u003e\u003c/a\u003e\n\n:rocket: **Version 2.9.1 out now!** [Read the release notes here.](https://skpro.readthedocs.io/en/latest/changelog.html).\n\n`skpro` is a library for supervised probabilistic prediction in python.\nIt provides `scikit-learn`-like, `scikit-base` compatible interfaces to:\n\n* tabular **supervised regressors for probabilistic prediction** - interval, quantile and distribution predictions\n* tabular **probabilistic time-to-event and survival prediction** - instance-individual survival distributions\n* **metrics to evaluate probabilistic predictions**, e.g., pinball loss, empirical coverage, CRPS, survival losses\n* **reductions** to turn `scikit-learn` regressors into probabilistic `skpro` regressors, such as bootstrap or conformal\n* building **pipelines and composite models**, including tuning via probabilistic performance metrics\n* symbolic **probability distributions** with value domain of `pandas.DataFrame`-s and `pandas`-like interface\n\n| Overview | |\n|---|---|\n| **Open Source** |  [![BSD 3-clause](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://github.com/sktime/sktime/blob/main/LICENSE) |\n| **Tutorials** | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/sktime/skpro/main?filepath=examples) [![!youtube](https://img.shields.io/static/v1?logo=youtube\u0026label=YouTube\u0026message=tutorials\u0026color=red)](https://www.youtube.com/playlist?list=PLKs3UgGjlWHqNzu0LEOeLKvnjvvest2d0) |\n| **Community** | [![!discord](https://img.shields.io/static/v1?logo=discord\u0026label=discord\u0026message=chat\u0026color=lightgreen)](https://discord.com/invite/54ACzaFsn7) [![!slack](https://img.shields.io/static/v1?logo=linkedin\u0026label=LinkedIn\u0026message=news\u0026color=lightblue)](https://www.linkedin.com/company/scikit-time/) |\n| **CI/CD** | [![github-actions](https://img.shields.io/github/actions/workflow/status/sktime/sktime/wheels.yml?logo=github)](https://github.com/sktime/skpro/actions/workflows/wheels.yml) [![!codecov](https://img.shields.io/codecov/c/github/sktime/skpro?label=codecov\u0026logo=codecov)](https://codecov.io/gh/sktime/skpro) [![readthedocs](https://img.shields.io/readthedocs/skpro?logo=readthedocs)](https://skpro.readthedocs.io/en/latest/) [![platform](https://img.shields.io/conda/pn/conda-forge/skpro)](https://github.com/sktime/skpro) |\n| **Code** |  [![!pypi](https://img.shields.io/pypi/v/skpro?color=orange)](https://pypi.org/project/skpro/) [![!conda](https://img.shields.io/conda/vn/conda-forge/skpro)](https://anaconda.org/conda-forge/skpro) [![!python-versions](https://img.shields.io/pypi/pyversions/skpro)](https://www.python.org/) [![!black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) |\n| **Downloads** | ![PyPI - Downloads](https://img.shields.io/pypi/dw/skpro) ![PyPI - Downloads](https://img.shields.io/pypi/dm/skpro) [![Downloads](https://static.pepy.tech/personalized-badge/skpro?period=total\u0026units=international_system\u0026left_color=grey\u0026right_color=blue\u0026left_text=cumulative%20(pypi))](https://pepy.tech/project/skpro) |\n| **Citation** | [![DOI](https://zenodo.org/badge/103107372.svg)](https://zenodo.org/doi/10.5281/zenodo.11002671) |\n\n## :books: Documentation\n\n| Documentation              |                                                                |\n| -------------------------- | -------------------------------------------------------------- |\n| :star: **[Tutorials]**        | New to skpro? Here's everything you need to know!              |\n| :clipboard: **[Binder Notebooks]** | Example notebooks to play with in your browser.              |\n| :woman_technologist: **[User Guides]**      | How to use skpro and its features.                             |\n| :scissors: **[Extension Templates]** | How to build your own estimator using skpro's API.            |\n| :control_knobs: **[API Reference]**      | The detailed reference for skpro's API.                        |\n| :hammer_and_wrench: **[Changelog]**          | Changes and version history.                                   |\n| :deciduous_tree: **[Roadmap]**          | skpro's software and community development plan.                                   |\n| :pencil: **[Related Software]**          | A list of related software. |\n\n[tutorials]: https://skpro.readthedocs.io/en/latest/tutorials.html\n[binder notebooks]: https://mybinder.org/v2/gh/sktime/skpro/main?filepath=examples\n[user guides]: https://skpro.readthedocs.io/en/latest/user_guide.html\n[extension templates]: https://github.com/sktime/skpro/tree/main/extension_templates\n[api reference]: https://skpro.readthedocs.io/en/latest/api_reference.html\n[changelog]: https://skpro.readthedocs.io/en/latest/changelog.html\n[roadmap]: https://skpro.readthedocs.io/en/latest/roadmap.html\n[related software]: https://skpro.readthedocs.io/en/latest/related_software.html\n\n\n## :speech_balloon: Where to ask questions\n\nQuestions and feedback are extremely welcome!\nWe strongly believe in the value of sharing help publicly, as it allows a wider audience to benefit from it.\n\n`skpro` is maintained by the `sktime` community, we use the same social channels.\n\n| Type                            | Platforms                               |\n| ------------------------------- | --------------------------------------- |\n| :bug: **Bug Reports**              | [GitHub Issue Tracker]                  |\n| :sparkles: **Feature Requests \u0026 Ideas** | [GitHub Issue Tracker]                       |\n| :woman_technologist: **Usage Questions**          | [GitHub Discussions] · [Stack Overflow] |\n| :speech_balloon: **General Discussion**        | [GitHub Discussions] |\n| :factory: **Contribution \u0026 Development** | `dev-chat` channel · [Discord] |\n| :globe_with_meridians: **Community collaboration session** | [Discord] - Fridays 13 UTC, dev/meet-ups channel |\n\n[github issue tracker]: https://github.com/sktime/skpro/issues\n[github discussions]: https://github.com/sktime/skpro/discussions\n[stack overflow]: https://stackoverflow.com/questions/tagged/sktime\n[discord]: https://discord.com/invite/54ACzaFsn7\n\n\n## :dizzy: Features\n\nOur objective is to enhance the interoperability and usability of the AI model ecosystem:\n\n* ``skpro`` is compatible with [scikit-learn] and [sktime], e.g., an ``sktime`` proba forecaster can\nbe built with an ``skpro`` proba regressor which in an ``sklearn`` regressor with proba mode added by ``skpro``\n\n* ``skpro`` provides a mini-package management framework for first-party implementations,\nand for interfacing popular second- and third-party components,\nsuch as [cyclic-boosting], [MAPIE], or [ngboost] packages.\n\n[scikit-learn]: https://scikit-learn.org/stable/\n[sktime]: https://www.sktime.net\n[MAPIE]: https://mapie.readthedocs.io/en/latest/\n[cyclic-boosting]:  https://cyclic-boosting.readthedocs.io/en/latest/\n[ngboost]: https://stanfordmlgroup.github.io/projects/ngboost/\n\n``skpro`` curates libraries of components of the following types:\n\n| Module | Status | Links |\n|---|---|---|\n| **[Probabilistic tabular regression]** | maturing | [Tutorial](https://github.com/sktime/skpro/blob/main/examples/01_skpro_intro.ipynb) · [API Reference](https://skpro.readthedocs.io/en/latest/api_reference/regression.html) · [Extension Template](https://github.com/sktime/skpro/blob/main/extension_templates/regression.py) |\n| **[Time-to-event (survival) prediction]** | maturing |  [Tutorial](https://github.com/sktime/skpro/blob/main/examples/02_skpro_survival.ipynb) · [API Reference](https://skpro.readthedocs.io/en/latest/api_reference/survival.html) · [Extension Template](https://github.com/sktime/skpro/blob/main/extension_templates/survival.py) |\n| **[Performance metrics]** | maturing | [API Reference](https://skpro.readthedocs.io/en/latest/api_reference/metrics.html) |\n| **[Probability distributions]** | maturing | [Tutorial](https://github.com/sktime/skpro/blob/main/examples/03_skpro_distributions.ipynb) · [API Reference](https://skpro.readthedocs.io/en/latest/api_reference/distributions.html) · [Extension Template](https://github.com/sktime/skpro/blob/main/extension_templates/distributions.py) |\n\n[Probabilistic tabular regression]: https://github.com/sktime/skpro/tree/main/skpro/regression\n[Time-to-event (survival) prediction]: https://github.com/sktime/skpro/tree/main/skpro/survival\n[Performance metrics]: https://github.com/sktime/skpro/tree/main/skpro/metrics\n[Probability distributions]: https://github.com/sktime/skpro/tree/main/skpro/distributions\n\n\n## :hourglass_flowing_sand: Installing `skpro`\n\nTo install `skpro`, use `pip`:\n\n```bash\npip install skpro\n```\n\nor, with maximum dependencies,\n\n```bash\npip install skpro[all_extras]\n```\n\nReleases are available as source packages and binary wheels. You can see all available wheels [here](https://pypi.org/simple/skpro/).\n\n## :zap: Quickstart\n\n### Making probabilistic predictions\n\n``` python\nfrom sklearn.datasets import load_diabetes\nfrom sklearn.ensemble import RandomForestRegressor\nfrom sklearn.linear_model import LinearRegression\nfrom sklearn.model_selection import train_test_split\n\nfrom skpro.regression.residual import ResidualDouble\n\n# step 1: data specification\nX, y = load_diabetes(return_X_y=True, as_frame=True)\nX_train, X_new, y_train, _ = train_test_split(X, y)\n\n# step 2: specifying the regressor - any compatible regressor is valid!\n# example - \"squaring residuals\" regressor\n# random forest for mean prediction\n# linear regression for variance prediction\nreg_mean = RandomForestRegressor()\nreg_resid = LinearRegression()\nreg_proba = ResidualDouble(reg_mean, reg_resid)\n\n# step 3: fitting the model to training data\nreg_proba.fit(X_train, y_train)\n\n# step 4: predicting labels on new data\n\n# probabilistic prediction modes - pick any or multiple\n\n# full distribution prediction\ny_pred_proba = reg_proba.predict_proba(X_new)\n\n# interval prediction\ny_pred_interval = reg_proba.predict_interval(X_new, coverage=0.9)\n\n# quantile prediction\ny_pred_quantiles = reg_proba.predict_quantiles(X_new, alpha=[0.05, 0.5, 0.95])\n\n# variance prediction\ny_pred_var = reg_proba.predict_var(X_new)\n\n# mean prediction is same as \"classical\" sklearn predict, also available\ny_pred_mean = reg_proba.predict(X_new)\n```\n\n### Evaluating predictions\n\n``` python\n# step 5: specifying evaluation metric\nfrom skpro.metrics import CRPS\n\nmetric = CRPS()  # continuous rank probability score - any skpro metric works!\n\n# step 6: evaluat metric, compare predictions to actuals\nmetric(y_test, y_pred_proba)\n\u003e\u003e\u003e 32.19\n```\n\n## :wave: How to get involved\n\nThere are many ways to get involved with development of `skpro`, which is\ndeveloped by the `sktime` community.\nWe follow the [all-contributors](https://github.com/all-contributors/all-contributors)\nspecification: all kinds of contributions are welcome - not just code.\n\n| Documentation              |                                                                |\n| -------------------------- | --------------------------------------------------------------        |\n| :gift_heart: **[Contribute]**        | How to contribute to skpro.          |\n| :school_satchel:  **[Mentoring]** | New to open source? Apply to our mentoring program! |\n| :date: **[Meetings]** | Join our discussions, tutorials, workshops, and sprints! |\n| :woman_mechanic:  **[Developer Guides]**      | How to further develop the skpro code base.                             |\n| :medal_sports: **[Contributors]** | A list of all contributors. |\n| :raising_hand: **[Roles]** | An overview of our core community roles. |\n| :money_with_wings: **[Donate]** | Fund sktime and skpro maintenance and development. |\n| :classical_building: **[Governance]** | How and by whom decisions are made in the sktime community.   |\n\n[contribute]: https://skpro.readthedocs.io/en/latest/get_involved/contributing.html\n[donate]: https://opencollective.com/sktime\n[developer guides]: https://skpro.readthedocs.io/en/latest/developer_guide.html\n[contributors]: https://github.com/sktime/skpro/blob/main/CONTRIBUTORS.md\n[governance]: https://www.sktime.net/en/latest/get_involved/governance.html\n[mentoring]: https://github.com/sktime/mentoring\n[meetings]: https://calendar.google.com/calendar/u/0/embed?src=sktime.toolbox@gmail.com\u0026ctz=UTC\n[roles]: https://www.sktime.net/en/latest/about/team.html\n\n\n## :wave: Citation\n\nTo cite `skpro` in a scientific publication, see [citations](CITATION.rst).\n","funding_links":["https://opencollective.com/sktime"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsktime%2Fskpro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsktime%2Fskpro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsktime%2Fskpro/lists"}