作为一个适用于 Python 编程语言的机器学习 (ML) 库,Scikit-learn 拥有大量算法,可供程序员和数据科学家在机器学习模型中轻松部署。
什么是 Scikit-learn?
Scikit-learn 是一个热门且可靠的机器学习库,拥有各种算法,同时也是用于 ML 可视化、预处理、模型拟合、选择和评估的工具。
Scikit-learn 基于 NumPy、SciPy 和 matplotlib 构建,并具有大量用于分类、回归和集群的高效算法。其中包括支持向量机、随机森林、梯度提升、k-means 和 DBSCAN。
Scikit-learn 拥有一致且设计高效的 API、适用于大多数算法的丰富文档以及大量在线教程,因此相对易于开发。
当前版本可用于 Linux、MacOS 和 Windows 等热门平台。
为何选择 Scikit-learn?
得益于其相对易于使用、且设计周到又充满热情的社区,Scikit-learn API 已成为机器学习实施的实际标准。
Scikit-learn 为 ML 模型构建、拟合及评估提供了以下模块:
Scikit-learn 的工作原理
Scikit-learn 主要采用 Python 编写,并使用 NumPy 进行高性能线性代数以及数组运算。一些核心 Scikit-learn 算法则采用 Cython 编写,以提升整体性能。
作为更高级别的库,它包含各种机器学习算法的几种实施,Scikit-learn 让用户仅使用几行代码即可构建、训练和评估模型。
Scikit-learn 还提供一套统一的高级别 API,以供构建 ML 流程或工作流程使用。
在 Scikit-learn ML 流程中,您可以通过转换器传递数据并提取特征,使用估测器生成模型,并使用评估器测量模型的准确性。
GPU 加速的 Scikit-learn API 和端到端数据科学
在架构方面,CPU 仅由几个具有大缓存内存的核心组成,一次只可以处理几个软件线程。相比之下,GPU 由数百个核心组成,可以同时处理数千个线程。
基于 CUDA-X AI™ 创建的 NVIDIA RAPIDS™ 开源软件库套件使您完全能够在 GPU 上执行端到端数据科学和分析流程。此套件依靠 NVIDIA® CUDA® 基元进行低级别计算优化,但通过用户友好型 Python 接口能够实现 GPU 并行化和高带宽显存速度。
RAPIDS cuML 的机器学习算法和数学基元遵循熟悉的类似于 scikit-learn 的 API。单块 GPU 和大型数据中心部署均支持 XGBoost、随机森林等主流算法。针对大型数据集,相较于同等功效的 CPU,这些基于 GPU 的实施方案能够以 10 到 50 倍的速度更快地完成任务。
借助 RAPIDS GPU DataFrame,数据可以通过一个类似 Pandas 的接口加载到 GPU 上,然后用于各种连接的机器学习和图形分析算法,而无需离开 GPU。这种级别的互操作性可通过 Apache Arrow 等库实现,并且可加速端到端流程(从数据准备到机器学习,再到深度学习)。
RAPIDS 支持在许多热门数据科学库之间共享设备内存。这样可将数据保留在 GPU 上,并省去了来回复制主机内存的高昂成本。
*本文转自 NVIDIA英伟达