12 个版本 (6 个重大变更)
0.7.0 | 2023 年 10 月 16 日 |
---|---|
0.6.1 | 2022 年 12 月 3 日 |
0.6.0 | 2022 年 6 月 15 日 |
0.5.1 | 2022 年 2 月 27 日 |
0.1.0 | 2018 年 4 月 5 日 |
#49 在 机器学习
32,809 每月下载量
用于 27 个crate(26 个直接使用)
200KB
3.5K SLoC
Linfa
linfa(意大利语)/ sap(英语)
植物中的**重要**循环液体。
linfa
旨在提供一套全面的工具集,用于使用 Rust 构建机器学习应用。
与 Python 的 scikit-learn
精神相契合,它侧重于日常机器学习任务中的常见预处理任务和经典 ML 算法。
当前状态
linfa
目前提供以下算法的子包: 我们在学习吗?
linfa
目前提供以下算法的子包
名称 | 用途 | 状态 | 类别 | 备注 |
---|---|---|---|---|
clustering | 数据聚类 | 测试/基准 | 无监督学习 | 无标签数据的聚类;包含 K-Means、高斯混合模型、DBSCAN 和 OPTICS |
kernel | 数据转换的核方法 | 测试 | 预处理 | 将特征向量映射到高维空间 |
linear | 线性回归 | 测试 | 部分拟合 | 包含普通最小二乘法(OLS)、广义线性模型(GLM) |
elasticnet | Elastic Net | 测试 | 监督学习 | 带有弹性网约束的线性回归 |
logistic | 逻辑回归 | 测试 | 部分拟合 | 构建二分类逻辑回归模型 |
reduction | 降维 | 测试 | 预处理 | 扩散映射和主成分分析(PCA) |
trees | 决策树 | 测试/基准 | 监督学习 | 线性决策树 |
svm | 支持向量机 | 测试 | 监督学习 | 对标记数据集进行分类或回归分析 |
hierarchical | 层次聚类 | 测试 | 无监督学习 | 聚类并构建聚类层次 |
bayes | 朴素贝叶斯 | 测试 | 监督学习 | 包含高斯朴素贝叶斯 |
ica | 独立成分分析 | 测试 | 无监督学习 | 包含快速 ICA 实现 |
pls | 偏最小二乘法 | 测试 | 监督学习 | 包含用于降维和回归的 PLS 估计器 |
tsne | 降维 | 测试 | 无监督学习 | 包含精确解和Barnes-Hut 近似 t-SNE |
预处理 | 标准化与矢量化 | 测试/基准 | 预处理 | 包含数据标准化/白化以及计数矢量化和tf-idf |
nn | 最近邻与距离 | 测试/基准 | 预处理 | 空间索引结构和距离函数 |
ftrl | 跟随正则化领导者 - 近似 | 测试/基准 | 部分拟合 | 包含L1和L2正则化。可能进行增量更新 |
我们相信,只有显著的社区努力才能培养、构建和维持Rust中的机器学习生态系统 - 没有其他前进的道路。
如果这触动了你的心弦,请查看路线图并参与其中!
BLAS/Lapack后端
某些算法需要使用外部库进行线性代数例程。默认情况下,我们使用纯Rust实现。然而,你也可以通过启用blas
功能以及与你的BLAS后端相对应的功能,选择外部BLAS/LAPACK后端库。目前你可以选择以下BLAS/LAPACK后端:openblas
、netblas
或intel-mkl
。
后端 | Linux | Windows | macOS |
---|---|---|---|
OpenBLAS | ✔️ | - | - |
Netlib | ✔️ | - | - |
Intel MKL | ✔️ | ✔️ | ✔️ |
每个BLAS后端都有两个功能可用。该功能允许你选择在系统中链接BLAS库或静态构建库。例如,intel-mkl
后端的功能是intel-mkl-static
和intel-mkl-system
。
以下是一个示例Cargo标志集,用于在算法库上启用Intel MKL后端:--features blas,linfa/intel-mkl-system
。注意,BLAS后端功能在linfa
库中定义,并且应仅针对最终可执行文件指定。
许可证
双授权以兼容Rust项目。
根据您的选择,许可在Apache许可证版本2.0 https://apache.ac.cn/licenses/LICENSE-2.0或MIT许可证 http://opensource.org/licenses/MIT下。此文件不得根据这些条款复制、修改或分发。
依赖项
~2–31MB
~402K SLoC