概率分布和概率监督回归的统一框架
项目描述
:rocket: 版本2.6.0现已发布! 在此处阅读发布说明。.
skpro
是一个用于Python中监督概率预测的库。它提供了与 scikit-learn
-like 和 scikit-base
兼容的接口,用于
- 表格 监督回归器进行概率预测 - 区间、分位数和分布预测
- 表格 概率时间到事件和生存预测 - 实例-个体生存分布
- 评估概率预测的指标,例如,弹珠损失、经验覆盖度、CRPS、生存损失
- 缩减,将
scikit-learn
回归器转换为概率skpro
回归器,例如自助法或一致性方法 - 构建 管道和复合模型,包括通过概率性能指标进行调优
- 具有值域为
pandas.DataFrame
和类似pandas
接口的符号概率分布
概述 | |
---|---|
开源 | |
教程 | |
社区 | |
CI/CD | |
代码 | |
下载 | |
引用 |
:books: 文档
文档 | |
---|---|
:star: 教程 | 新接触 skpro?这里有你需要知道的一切! |
:clipboard: Binder 笔记本 | 在浏览器中玩耍的示例笔记本。 |
:woman_technologist: 用户指南 | 如何使用 skpro 及其功能。 |
:scissors: 扩展模板 | 如何使用 skpro 的 API 构建自己的估计器。 |
:control_knobs: API 参考 | skpro API 的详细参考。 |
:hammer_and_wrench: 变更日志 | 变更和版本历史。 |
:deciduous_tree: 路线图 | skpro 的软件和社区开发计划。 |
:pencil: 相关软件 | 相关软件列表。 |
:speech_balloon: 哪里可以提问
问题和反馈非常受欢迎!我们坚信公开分享帮助的价值,因为它可以让更广泛的受众从中受益。
skpro
由 sktime
社区维护,我们使用相同的社交渠道。
类型 | 平台 |
---|---|
:bug: 错误报告 | GitHub 问题跟踪器 |
:sparkles: 功能请求和想法 | GitHub 问题跟踪器 |
:woman_technologist: 使用问题 | GitHub 讨论区 · Stack Overflow |
:speech_balloon: 一般讨论 | GitHub 讨论区 |
:factory: 贡献与发展 | dev-chat 频道 · Discord |
:globe_with_meridians: 社区协作会议 | Discord - 每周五 13 UTC,dev/meet-ups 频道 |
:dizzy: 功能
我们的目标是增强 AI 模型生态系统的互操作性和可用性
-
skpro
与 scikit-learn 和 sktime 兼容,例如,可以使用添加了概率模式的skpro
概率回归器构建sktime
概率预测器,该模式由skpro
添加到sklearn
回归器中 -
skpro
为第一方实现提供小型包管理框架,并为接口流行的第二方和第三方组件,如 cyclic-boosting、MAPIE 或 ngboost 软件包提供接口。
skpro
精选以下类型的组件库
模块 | 状态 | 链接 |
---|---|---|
概率表格回归 | 成熟 | 教程 · API 参考 · 扩展模板 |
事件时间(生存)预测 | 成熟 | 教程 · API 参考 · 扩展模板 |
性能指标 | 成熟 | API 参考 |
概率分布 | 成熟 | 教程 · API 参考文档 · 扩展模板 |
:hourglass_flowing_sand: 安装 skpro
要安装 skpro
,请使用 pip
pip install skpro
或者,使用最大依赖项:
pip install skpro[all_extras]
发行版作为源代码包和二进制轮子提供。您可以在这里查看所有可用的轮子。
:zap: 快速入门
制作概率预测
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)
评估预测
# 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: 如何参与
有许多方式可以参与到 skpro
的开发中,它是由 sktime
社区开发的。我们遵循 all-contributors 规范:欢迎所有形式的贡献——而不仅仅是代码。
文档 | |
---|---|
:gift_heart: 贡献 | 如何为 skpro 贡献。 |
:school_satchel: 导师项目 | 如果您是开源新手,请申请我们的导师项目! |
:date: 会议 | 加入我们的讨论、教程、研讨会和冲刺活动! |
:woman_mechanic: 开发者指南 | 如何进一步开发 skpro 代码库。 |
:medal_sports: 贡献者 | 所有贡献者的列表。 |
:raising_hand: 角色 | 我们核心社区角色的概述。 |
:money_with_wings: 捐赠 | 为 sktime 和 skpro 的维护和开发提供资金。 |
:classical_building: 治理 | sktime 社区中决策的制定方式和人员。 |
:wave: 引用
在科学出版物中引用 skpro
,请参阅 引用。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。
源代码分发
skpro-2.6.0.tar.gz (262.0 kB 查看哈希值)
构建分发
skpro-2.6.0-py3-none-any.whl (381.8 kB 查看哈希值)