相关项目#
鼓励实现 scikit-learn 估计器 API 的项目使用 scikit-learn-contrib 模板,该模板有助于实现测试和文档编制估计器的最佳实践。 scikit-learn-contrib GitHub 组织 也接受符合此模板的仓库的高质量贡献。
以下是姐妹项目、扩展和特定领域包的列表。
互操作性和框架增强#
这些工具使 scikit-learn 能够与其他技术一起使用,或以其他方式增强 scikit-learn 估计器的功能。
自动机器学习 (Auto-ML)
auto-sklearn 一个自动化机器学习工具包,可以替代 scikit-learn 估计器
autoviml 只需一行代码即可自动构建多个机器学习模型。设计用于以更快的方式使用 scikit-learn 模型,而无需进行数据预处理。
TPOT 一个自动化机器学习工具包,可优化一系列 scikit-learn 操作符来设计机器学习管道,包括数据和特征预处理器以及估计器。可以替代 scikit-learn 估计器。
Featuretools 一个用于执行自动化特征工程的框架。可用于将时间序列和关系数据集转换为用于机器学习的特征矩阵。
EvalML 一个 AutoML 库,使用特定领域的目标函数构建、优化和评估机器学习管道。它将多个建模库整合到一个 API 下,并且 EvalML 创建的对象使用与 sklearn 兼容的 API。
MLJAR AutoML 一个用于表格数据的 AutoML Python 包,具有特征工程、超参数调整、解释和自动文档功能。
实验和模型注册框架
MLFlow 一个开源平台,用于管理 ML 生命周期,包括实验、可重现性、部署和中央模型注册表。
Neptune 一个用于 MLOps 的元数据存储库,专为运行大量实验的团队而构建。它为您提供了一个统一的位置来记录、存储、显示、组织、比较和查询所有模型构建元数据。
Sacred 一个帮助您配置、组织、记录和重现实验的工具
Scikit-Learn Laboratory scikit-learn 的命令行包装器,可以轻松地使用多个学习器和大型特征集运行机器学习实验。
模型检查和可视化
dtreeviz 一个用于决策树可视化和模型解释的 Python 库。
model-diagnostics 用于诊断和评估(机器学习)模型(在 Python 中)的工具。
sklearn-evaluation 使机器学习模型评估变得简单:绘图、表格、HTML 报告、实验跟踪和 Jupyter Notebook 分析。视觉分析、模型选择、评估和诊断。
yellowbrick 一套用于 scikit-learn 估计器的自定义 matplotlib 可视化工具,支持视觉特征分析、模型选择、评估和诊断。
用于生产的模型导出
sklearn-onnx 将许多 Scikit-learn 管道序列化为 ONNX 以进行交换和预测。
skops.io 一种比 pickle 更安全的持久化模型,可以在大多数常见情况下替代 pickle 使用。
sklearn2pmml 借助 JPMML-SkLearn 库将各种 scikit-learn 估计器和转换器序列化为 PMML。
treelite 将基于树的集成模型编译成 C 代码,以最大限度地减少预测延迟。
emlearn 在 C99 中实现 scikit-learn 估计器,用于嵌入式设备和微控制器。支持多种分类器、回归和异常检测模型。
模型吞吐量
Intel(R) Extension for scikit-learn 主要在高端 Intel(R) 硬件上,在某些情况下加速一些 scikit-learn 模型的训练和推理。该项目由 Intel(R) 维护,scikit-learn 的维护者不参与该项目的开发。另请注意,在某些情况下,使用
scikit-learn-intelex下的工具和估计器可能会给出与scikit-learn本身不同的结果。如果您在使用此项目时遇到问题,请务必在其各自的存储库中报告潜在问题。
与基因组应用的 R 接口
BiocSklearn 公开了一些降维设施,作为 basilisk 协议用于 Python 与 R 接口的示例。旨在作为更完整互操作性的跳板。
其他估计器和任务#
并非所有内容都属于或足够成熟以用于核心 scikit-learn 项目。以下是为附加学习算法、基础设施和任务提供类似于 scikit-learn 接口的项目。
时间序列和预测
Darts 一个用于时间序列的易于使用的预测和异常检测 Python 库。它包含各种模型,从 ARIMA 等经典模型到深度神经网络。所有预测模型都可以以相同的方式使用,即使用 fit() 和 predict() 函数,类似于 scikit-learn。
sktime 一个与 scikit-learn 兼容的用于时间序列机器学习的工具箱,包括时间序列分类/回归和(监督/面板)预测。
skforecast 一个 Python 库,可简化使用 scikit-learn 回归器作为多步预测器。它也适用于任何与 scikit-learn API 兼容的回归器。
tslearn 一个用于时间序列的机器学习库,提供用于预处理和特征提取的工具以及用于聚类、分类和回归的专用模型。
梯度(树)提升
请注意 scikit-learn 自己的现代梯度提升估计器 HistGradientBoostingClassifier 和 HistGradientBoostingRegressor。
XGBoost XGBoost 是一个经过优化的分布式梯度提升库,旨在实现高效率、灵活性和可移植性。
LightGBM LightGBM 是一个使用基于树的学习算法的梯度提升框架。它旨在实现分布式和高效。
结构化学习
HMMLearn 隐马尔可夫模型的实现,以前是 scikit-learn 的一部分。
pomegranate 用于 Python 的概率建模,重点是隐马尔可夫模型。
深度神经网络等
skorch 一个与 scikit-learn 兼容的神经网络库,它包装了 PyTorch。
scikeras 提供了一个围绕 Keras 的包装器,用于将其与 scikit-learn 接口。SciKeras 是
tf.keras.wrappers.scikit_learn的后续版本。
联邦学习
Flower 一个友好的联邦学习框架,采用统一方法,可以联合任何工作负载、任何 ML 框架和任何编程语言。
隐私保护机器学习
Concrete ML 一个基于 Concrete 构建的隐私保护 ML 框架,通过全同态加密与传统 ML 框架绑定。所谓的 Concrete ML 内置模型的 API 与 scikit-learn API 非常接近。
广泛范围
mlxtend 包括许多额外的估计器以及模型可视化实用程序。
scikit-lego 许多与 scikit-learn 兼容的自定义转换器、模型和指标,专注于解决实际的行业任务。
其他回归和分类
gplearn 用于符号回归任务的遗传编程。
scikit-multilearn 多标签分类,重点是标签空间操作。
分解和聚类
lda: Cython 中潜在狄利克雷分配的快速实现,它使用 Gibbs 采样 从真实的后验分布中采样。(scikit-learn 的
LatentDirichletAllocation实现使用 变分推理 从主题模型的后验分布的可处理近似中采样。)kmodes 用于分类数据的 k-modes 聚类算法及其几种变体。
hdbscan HDBSCAN 和稳健单链接聚类算法用于稳健的可变密度聚类。从 scikit-learn 1.3.0 版本开始,有
HDBSCAN。
预处理
categorical-encoding 一个与 sklearn 兼容的分类变量编码器库。从 scikit-learn 1.3.0 版本开始,有
TargetEncoder。skrub : 促进在数据帧上学习,具有与 sklearn 兼容的编码器(类别、日期、字符串)等。
imbalanced-learn 用于欠采样和过采样数据集的各种方法。
Feature-engine 一个与 sklearn 兼容的转换器库,用于缺失数据插补、分类编码、变量转换、离散化、异常值处理等。Feature-engine 允许将预处理步骤应用于选定的变量组,并且与 Scikit-learn Pipeline 完全兼容。
拓扑数据分析
giotto-tda 一个用于 拓扑数据分析 的库,旨在提供与 scikit-learn 兼容的 API。它提供了将数据输入(点云、图表、时间序列、图像)转换为适合拓扑摘要计算的形式的工具,以及专用于提取拓扑起源的标量特征集的组件,这些组件可以与 scikit-learn 中的其他特征提取方法一起使用。
使用 Python 进行统计学习#
其他对数据分析和机器学习有用的包。
Pandas 用于处理异构和列式数据、关系查询、时间序列和基本统计信息的工具。
statsmodels 估计和分析统计模型。比 scikit-learn 更侧重于统计检验,而不是预测。
PyMC 贝叶斯统计模型和拟合算法。
Seaborn 一个基于 matplotlib 的可视化库。它提供了一个高级接口来绘制吸引人的统计图形。
scikit-survival 一个实现从删失时间到事件数据(也称为生存分析)学习的模型的库。模型与 scikit-learn 完全兼容。
推荐引擎包#
implicit, 用于隐式反馈数据集的库。
lightfm 混合推荐系统的 Python/Cython 实现。
Surprise Lib 用于显式反馈数据集的库。
特定领域包#
scikit-network 图上的机器学习。
scikit-image Python 中的图像处理和计算机视觉。
Natural language toolkit (nltk) 自然语言处理和一些机器学习。
gensim 用于主题建模、文档索引和相似性检索的库
NiLearn 用于神经成像的机器学习。
AstroML 用于天文学的机器学习。
scikit-learn 文档翻译#
翻译的目的是方便非英语母语者阅读和理解。其目的是帮助那些不懂英语或对其解释有疑问的人。此外,有些人更喜欢用母语阅读文档,但请记住,唯一的官方文档是英文文档 [1]。
这些翻译工作是社区倡议,我们无法控制它们。如果您想为翻译做出贡献或报告问题,请联系翻译的作者。此处链接了一些可用的翻译,以提高其传播并促进社区努力。
脚注