smartcorelib/smartcore

A comprehensive library for machine learning and numerical computing. Apply Machine Learning with Rust leveraging first principles.

它解决了什么问题

smartcore 解决了在 Rust 中需要生产级机器学习库的需求。它提供经典的监督和无监督算法,具有强类型和良好的默认设置,使开发人员无需离开 Rust 生态系统即可构建和部署 ML 模型。该库还旨在符合人体工程学,使其易于用于研究和实验,同时保持生产使用的实用性。

它是如何工作的

smartcore 将算法组织成具有一致特征的清晰模块。它使用模块化的线性代数抽象,并可选支持 ndarray,默认采用以 WASM 为先的姿态以实现可移植性。算法包括线性模型(OLS、Ridge、Lasso、ElasticNet、Logistic 回归)、基于树的方法(随机森林、Extra Trees)、SVM、KNN、聚类(K-Means、DBSCAN、凝聚聚类)、分解(SVD、EVD 等)和预处理工具。用户通过一致的 API 进行交互——例如,拟合 KNN 分类器涉及从向量创建 DenseMatrix 并使用默认参数调用 fit。该库包含可选功能,如数据集生成器、CSV 读取器和惰性归一化模式,以减少 Lasso 和 ElasticNet 中的内存使用。README 强调了有利于对象安全特征和更少结构体的特征系统重构,并且该库已迁移到 Rust 2024 版(MSRV 1.85)。

适用人群

smartcore 面向需要强类型、高效语言中的经典机器学习算法的 Rust 开发人员。它既适用于生产使用(具有稳定的 API 和良好的默认设置),也适用于研究或实验(通过 Jupyter 笔记本和灵活的功能)。以 WASM 为先的方法使其对浏览器和嵌入式部署具有吸引力,可选的 ndarray 集成对偏好数组优先工作流的开发人员具有吸引力。

亮点

  • 广泛覆盖:线性模型、树、集成、SVM、邻居、聚类、分解和预处理。
  • 强大的线性代数特征,可选 ndarray 集成。
  • 以 WASM 为先的默认设置和可选功能(serde、datasets),以实现可移植性和最小占用空间。
  • 实用工具:模型选择、评估、CSV 读取器、数据集生成器、内置数据集。
  • 最近新增:XGBoost 风格回归、单链接聚类、Extra Trees 和多类 SVM 改进。
  • 实时基准图表(criterion 墙钟时间和 iai-callgrind 指令计数)发布在 GitHub Pages 上,以跟踪性能趋势。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目