跳至主要内容
Ctrl+K
scikit-learn homepage
  • 安装
  • 用户指南
  • API
  • 示例
  • 社区
    • 入门
    • 发布历史
    • 术语表
    • 开发
    • 常见问题解答
    • 支持
    • 相关项目
    • 路线图
    • 治理
    • 关于我们
  • GitHub
  • 安装
  • 用户指南
  • API
  • 示例
  • 社区
  • 入门
  • 发布历史
  • 术语表
  • 开发
  • 常见问题解答
  • 支持
  • 相关项目
  • 路线图
  • 治理
  • 关于我们
  • GitHub
  • 相关项目

相关项目#

鼓励实现 scikit-learn 估计器 API 的项目使用 scikit-learn-contrib 模板,该模板有助于测试和记录估计器的最佳实践。 scikit-learn-contrib GitHub 组织 还接受符合此模板的存储库的高质量贡献。

以下是姊妹项目、扩展和特定领域包的列表。

互操作性和框架增强#

这些工具使 scikit-learn 适应与其他技术一起使用,或者以其他方式增强 scikit-learn 估计器的功能。

数据格式

  • sklearn_pandas 用于 scikit-learn 管道和 pandas 数据帧的桥梁,具有专用的转换器。

  • sklearn_xarray 提供了 scikit-learn 估计器与 xarray 数据结构的兼容性。

自动机器学习

  • auto-sklearn 一个自动机器学习工具包,可以替代 scikit-learn 估计器。

  • autoviml 使用一行代码自动构建多个机器学习模型。旨在作为一种更快的使用 scikit-learn 模型的方法,无需预处理数据。

  • TPOT 一个自动机器学习工具包,它优化一系列 scikit-learn 运算符来设计机器学习管道,包括数据和特征预处理器以及估计器。可以替代 scikit-learn 估计器。

  • Featuretools 一个用于执行自动特征工程的框架。它可以用于将时间和关系数据集转换为用于机器学习的特征矩阵。

  • Neuraxle 一个用于构建简洁管道的库,提供正确的抽象来简化机器学习应用程序的研究、开发和部署。与深度学习框架和 scikit-learn API 兼容,它可以流式传输小批量数据,使用数据检查点,构建奇特的管道,并使用自定义的每步保存器序列化模型。

  • EvalML EvalML 是一个自动机器学习库,它使用特定于领域的客观函数构建、优化和评估机器学习管道。它在一个 API 下整合了多个建模库,EvalML 创建的对象使用与 sklearn 兼容的 API。

实验和模型注册框架

  • MLFlow MLflow 是一个开源平台,用于管理 ML 生命周期,包括实验、可重复性、部署和中央模型注册表。

  • Neptune 用于 MLOps 的元数据存储,专为运行大量实验的团队而构建。它为您提供了一个单一位置来记录、存储、显示、组织、比较和查询所有模型构建元数据。

  • Sacred 帮助您配置、组织、记录和重现实验的工具

  • Scikit-Learn 实验室 一个围绕 scikit-learn 的命令行包装器,使使用多个学习器和大型特征集运行机器学习实验变得容易。

模型检查和可视化

  • dtreeviz 一个用于决策树可视化和模型解释的 Python 库。

  • eli5 一个用于调试/检查机器学习模型并解释其预测的库。

  • sklearn-evaluation 简化机器学习模型评估:图表、表格、HTML 报告、实验跟踪和 Jupyter Notebook 分析。可视化分析、模型选择、评估和诊断。

  • yellowbrick 一套用于 scikit-learn 估计器的自定义 matplotlib 可视化器,用于支持可视化特征分析、模型选择、评估和诊断。

模型选择

  • scikit-optimize 一个用于最小化(非常)昂贵且嘈杂的黑盒函数的库。它实现了多种用于基于模型的顺序优化的方法,包括 GridSearchCV 或 RandomizedSearchCV 的替代方案,以使用任何这些策略进行交叉验证参数搜索。

  • sklearn-deap 在 scikit-learn 中使用进化算法而不是网格搜索。

用于生产的模型导出

  • sklearn-onnx 将许多 Scikit-learn 管道序列化为 ONNX 以进行交换和预测。

  • skops.io 比 pickle 更安全的持久化模型,可以在大多数常见情况下替代 pickle。

  • sklearn2pmml 在 JPMML-SkLearn 库的帮助下,将各种 scikit-learn 估计器和转换器序列化为 PMML。

  • sklearn-porter 将训练好的 scikit-learn 模型转换为 C、Java、Javascript 等语言。

  • m2cgen 一个轻量级库,允许将训练好的机器学习模型(包括许多 scikit-learn 估计器)转换为 C、Java、Go、R、PHP、Dart、Haskell、Rust 和许多其他编程语言的本机代码。

  • treelite 将基于树的集成模型编译为 C 代码,以最大限度地减少预测延迟。

  • micromlgen MicroML 将机器学习算法引入微控制器。通过将它们转换为 C 代码来支持多种 scikit-learn 分类器。

  • emlearn 在 C99 中实现 scikit-learn 估计器,用于嵌入式设备和微控制器。支持多种分类器、回归和异常检测模型。

模型吞吐量

  • Intel(R) 扩展 for scikit-learn 主要针对高端 Intel(R) 硬件,在某些情况下加速了某些 scikit-learn 模型的训练和推理。该项目由 Intel(R) 维护,scikit-learn 的维护者不参与该项目的开发。还要注意,在某些情况下,使用 scikit-learn-intelex 下的工具和估计器会产生与 scikit-learn 本身不同的结果。如果您在使用该项目时遇到问题,请确保在各自的存储库中报告潜在问题。

其他估计器和任务#

并非所有内容都属于或成熟到足以进入中央 scikit-learn 项目。以下是提供类似于 scikit-learn 的接口的项目,用于其他学习算法、基础设施和任务。

时间序列和预测

  • Darts Darts 是一个 Python 库,用于对时间序列进行用户友好的预测和异常检测。它包含各种模型,从经典的 ARIMA 到深度神经网络。所有预测模型都可以以相同的方式使用,使用与 scikit-learn 类似的 fit() 和 predict() 函数。

  • sktime 一个与 scikit-learn 兼容的工具箱,用于机器学习时间序列,包括时间序列分类/回归和(监督/面板)预测。

  • skforecast 一个 Python 库,简化了将 scikit-learn 回归器用作多步预测器。它还可以与任何与 scikit-learn API 兼容的回归器一起使用。

  • tslearn 一个用于时间序列的机器学习库,提供用于预处理和特征提取的工具,以及用于聚类、分类和回归的专用模型。

梯度(树)提升

注意 scikit-learn 自己的现代梯度提升估计器 HistGradientBoostingClassifier 和 HistGradientBoostingRegressor.

  • XGBoost XGBoost 是一个经过优化的分布式梯度提升库,旨在高效、灵活和可移植。

  • LightGBM LightGBM 是一个使用基于树的学习算法的梯度提升框架。它旨在分布式和高效。

结构化学习

  • HMMLearn 隐藏马尔可夫模型的实现,以前是 scikit-learn 的一部分。

  • PyStruct 通用条件随机场和结构化预测。

  • pomegranate Python 的概率建模,重点是隐藏马尔可夫模型。

  • sklearn-crfsuite 线性链条件随机场 (CRFsuite 具有类似 sklearn 的 API 的包装器)。

深度神经网络等

  • 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 兼容的自定义转换器、模型和指标,重点是解决实际的行业任务。

其他回归和分类

  • ML-Ensemble 广义集成学习(堆叠、混合、子集成、深度集成等)。

  • lightning 快速最先进的线性模型求解器(SDCA、AdaGrad、SVRG、SAG 等)。

  • py-earth 多元自适应回归样条

  • gplearn 用于符号回归任务的遗传编程。

  • scikit-multilearn 多标签分类,重点是标签空间操作。

  • seglearn 使用滑动窗口分割进行时间序列和序列学习。

  • fastFM 与 scikit-learn 兼容的快速分解机实现。

分解和聚类

  • lda: 使用 吉布斯采样 从真实后验分布中采样的 Cython 中潜在狄利克雷分配的快速实现。(scikit-learn 的 LatentDirichletAllocation 实现使用 变分推断 从主题模型后验分布的可处理近似中采样。)

  • kmodes 用于分类数据的 k-modes 聚类算法及其变体。

  • hdbscan 用于鲁棒可变密度聚类的 HDBSCAN 和鲁棒单链接聚类算法。从 scikit-learn 版本 1.3.0 开始,有 HDBSCAN.

  • spherecluster 用于单位超球面上的数据的球形 K 均值和冯·米塞斯·费舍尔混合聚类例程。

预处理

  • categorical-encoding sklearn 兼容的分类变量编码器库。从 scikit-learn 版本 1.3.0 开始,有 TargetEncoder.

  • 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 实现。

  • OpenRec 基于 TensorFlow 的受神经网络启发的推荐算法。

  • Surprise Lib 用于显式反馈数据集的库。

特定领域包#

  • scikit-network 图上的机器学习。

  • scikit-image Python 中的图像处理和计算机视觉。

  • 自然语言工具包 (nltk) 自然语言处理和一些机器学习。

  • gensim 用于主题建模、文档索引和相似性检索的库。

  • NiLearn 用于神经影像的机器学习。

  • AstroML 用于天文学的机器学习。

scikit-learn 文档的翻译#

翻译的目的是便于以英语以外的语言阅读和理解。其目的是帮助那些不理解英语或对英语解释有疑问的人。此外,有些人更喜欢用自己的母语阅读文档,但请记住,唯一官方的文档是英文文档 [1].

这些翻译工作是社区倡议,我们无法控制它们。如果您想为翻译做出贡献或报告翻译问题,请联系翻译的作者。这里链接了一些可用的翻译,以提高它们的传播并促进社区努力。

  • 中文翻译 (源代码)

  • 波斯语翻译 (源代码)

  • 西班牙语翻译 (源代码)

  • 韩语翻译 (源代码)

脚注

[1]

遵循 linux 文档免责声明

previous

支持

next

路线图

本页内容
  • 互操作性和框架增强
  • 其他估计器和任务
  • 使用 Python 进行统计学习
    • 推荐引擎包
    • 特定领域包
  • scikit-learn 文档的翻译
显示源代码

© Copyright 2007 - 2024, scikit-learn 开发者 (BSD 许可证)。