scikit-learn 是 Python 生态系统中广泛使用的一个开源库,专为机器学习相关任务而设计。它基于 NumPy、SciPy 和 Matplotlib 构建,提供一套强大的工具和算法,用于执行数据分析、预处理、模型开发和评估等机器学习任务。
scikit-learn 的核心组件是其精心设计的 API,可确保各种机器学习工作流的一致性和简便性。这便于开发者和数据科学家使用类似 API 轻松实施回归、分类、聚类和降维等任务。借助该库可以高效实施各种热门算法,如支持向量机、随机森林、XGBoost、梯度提升、k 均值聚类和 DBSCAN 等。
scikit-learn 还集成了其他数据处理和分析 Python 库,例如用于处理结构化数据集的 pandas 和用于创建可视化效果的 Matplotlib。由于它集成了 NumPy 生态系统,因此可进行高效的数值计算,而与 SciPy 的集成可确保提供先进的科学计算功能。
scikit-learn 主要使用 Python 编写,而 Cython 和 C/C++ 用于实施大多数计算密集型运算,以提高性能。scikit-learn 本质上不支持多线程,这限制了其高效处理大型数据集以及利用现代多线程计算平台的能力。可以利用新库和技术实现更高性能,同时兼顾易用性。
作为一个开源库,scikit-learn 离不开庞大开发者和研究人员社区的贡献,其源代码托管在 GitHub 上。使用 Sphinx 等工具,可以创建全面的文档和教程,该工具采用常见的文档布局,便于用户更轻松地学习 scikit-learn 并用它解决实际问题,尤其适用于以前遇到过此类文档的用户。
scikit-learn 与 Linux、macOS 和 Windows 等热门操作系统兼容,已成为采用 Python 的数据科学家事实使用的机器学习框架。它提供可重复使用的简单 Python API,并附带大量工具和算法,无论初学者还是专家,都可以轻松学习和采用。
scikit-learn 是一个强大的 Python 库,也是实施机器学习模型的事实标准。scikit-learn 以简单易用、精心设计的 API 和活跃的社区而闻名,提供丰富多样的工具,可用于执行数据准备、预处理、模型构建、评估、推理和优化等机器学习运维任务。
scikit-learn 中的关键模组支持各种机器学习技术,包括:
凭借对逻辑回归、决策树、随机森林和降维等工具的支持,scikit-learn 已成为处理机器学习任务的标准 Python 库。
scikit-learn 是一个基于 NumPy 构建的通用 Python 库,已针对高性能线性代数和数组运算进行了优化。为了提高性能,核心 scikit-learn 算法通常以 Cython 实施。它提供了一个高效的高级框架,使用极少的代码即可构建、训练和评估机器学习模型。
本质上,scikit-learn 提供一致的 API,用于构建机器学习工作流,尤其注重模块化和易用性。其文档针对每项功能提供了详细指导,确保对开发者清晰易用。
通过管道将转换器、估计器和评估器串联在一起,scikit-learn 确保了机器学习工作流的可重现性和高效性。从预处理输入数据到使用网格搜索进行微调,该库提供了一整套工具,可为数据科学家提供强效助力。
scikit-learn 是一个各行各业广泛应用于机器学习和数据分析的通用工具。它提供的整套算法、指标和实用程序支持监督式学习和无监督式学习,因此在使用 Python 解决实际问题方面具有重要价值。
凭借其通用性和易用性,scikit-learn 为执行降维、分类和高级机器学习任务提供了实用解决方案。
GPU 提供专为并行处理数千个线程而优化的大规模并行架构,从而引领数据科学领域的变革。相比之下,CPU 的核心数量较少,并且针对顺序处理进行了优化。利用 NVIDIA 的 cuML 库,熟悉 scikit-learn 的数据科学家和机器学习工程师能够充分利用 GPU 的优势。
cuML 是一套经 GPU 加速的快速机器学习算法,专为数据科学和分析任务而设计,采用与 scikit-learn 类似的 API。它是 NVIDIA RAPIDS™ 开源库套件的一部分,提供了一个用于在 GPU 上执行端到端数据科学工作流的可扩展平台。GPU 的这一优势可以加速优化数据科学工作流,在数据处理、机器学习、深度学习、降维以及神经网络训练和推理等任务方面表现尤为突出。
NVIDIA cuML 利用 NVIDIA® CUDA® 基元提供低级别计算优化,同时通过 Python 友好型 scikit-learn API 实现 GPU 的强大功能。cuML 可在 GitHub 上获取,从业者无须在 GPU 上进行编程,即可轻松获得拟合-预测-转换范式。
NVIDIA RAPIDS 生态系统与类似 scikit-learn 的 API 相结合,有助于数据科学家更高效地处理计算密集型机器学习和深度学习任务。
内容改编自:GPU 和 CPU 上的 cuML
所有安装文档均可在 RAPIDS 安装指南中找到。NVIDIA RAPIDS cuML 可以在 CPU 和 GPU 系统上运行。对于 GPU 系统,cuML 符合 RAPIDS 要求。cuML 的 CPU 功能有两种主要用法。CPU 软件包 cuml-cpu 是 cuML 软件包的一个子集,因此在使用纯 CPU 系统运行代码时,无需更改任何代码。除了无需更改代码即可在 CPU 系统中执行以外,在使用装有完整 cuML 的系统时,用户还可以手动控制由哪些设备执行部分代码。默认情况下,cuML 在 GPU/设备上执行估计器。但它也提供用于更改默认设备的全局配置选项,这在将 cuML 与占用大部分 GPU 算力的深度学习框架并行运行的共享系统中非常有用。此操作可以通过 set_global_device_type 函数来完成。
cuMl 24.12.00 文档中提供了完整的已加速函数表,如下表所示。
类别 | 算法 | 支持在 CPU 上执行 | 支持在 CPU 与 GPU 之间导出 |
聚类 | 基于密度的噪声应用空间聚类 (DBSCAN) | 是 | 否 |
基于密度的噪声应用层次空间聚类 (HDBSCAN) | 是 | 部分 | |
K 均值 | 是 | 否 | |
单链接聚合聚类 | 否 | 否 | |
降维 | 主成分分析 (PCA) | 是 | 是 |
增量 PCA | 否 | 否 | |
截断奇异值分解 (tSVD) | 是 | 是 | |
统一流形逼近与投影 (UMAP) | 是 | 部分 | |
随机投影 | 否 | 否 | |
t-分布随机邻域嵌入 (TSNE) | 否 | 否 | |
用于回归或分类的线性模型 | 线性回归 (OLS) | 是 | 是 |