The rusty-machine 一种拆包即用的机器学习模块。 结构 这个模块包括两个基本模组:学习和线性代数。 学习 这个学习模组包括所有的机器学习模组。包括算法,模组和相关工具。 目前支
The rusty-machine
一种拆包即用的机器学习模块。
结构
这个模块包括两个基本模组:学习和线性代数。
学习
这个学习模组包括所有的机器学习模组。包括算法,模组和相关工具。
目前支持的机器学习方法包括:
- 线性回归
- 逻辑回归
- 广义线性模型
- K-Means集群分析
- 神经网络
- 高斯过程回归
- 支撑向量机
- 高斯混合模型
- 单纯倍氏分频器
- 聚类算法
线性代数
线性代数模组重新导出了一些线性代数库中的结构体和特征。这个模组提供了一种使用该库中常用线性代数的简便方法。
用法
各个模组的特定用法已经在各模组的特定文档中说明了,这个部分会着重描述该库的通用流程。
这个被包括在学习模块中的模组需要实现 SupModel 或者UnSupModel。它们都会提供 train 和一个 predict 功能,此功能为这个模组提供了接口。
你需要用你选择的选项将该模组实例化,然后用训练数据进行训练,再用测试数据进行预测。目前,交叉验证,数据处理和其他很多功能需要用户自己处理。
这里是高斯过程回归的一个用法示例:
use rusty_machine::linalg::Matrix;use rusty_machine::linalg::Vector;
use rusty_machine::learning::gp::GaussianProcess;
use rusty_machine::learning::gp::ConstMean;
use rusty_machine::learning::toolkit::kernel;
use rusty_machine::learning::SupModel;
// 首先获取一些数据。
// 一些示例训练数据。
let inputs = Matrix::new(3,3,vec![1.,1.,1.,2.,2.,2.,3.,3.,3.]);
let targets = Vector::new(vec![0.,1.,0.]);
// 一些示例测试数据。
let test_inputs = Matrix::new(2,3, vec![1.5,1.5,1.5,2.5,2.5,2.5]);
// 现在设置好我们的模组
// 这几乎是rusty-machine 中最复杂的模组了!
// 设置平方指数核函数,长度参数 2,宽度参数 1。
let ker = kernel::SquaredExp::new(2., 1.);
// 零函数
let zero_mean = ConstMean::default();
// 用核函数,平均值, 噪声0.5来构建一个高斯过程。
let mut gp = GaussianProcess::new(ker, zero_mean, 0.5);
// 现在我们可以训练并且用这个模组进行预测了。
// 训练模组!
gp.train(&inputs, &targets).unwrap();
// 使用测试数据来测试预测。
let outputs = gp.predict(&test_inputs).unwrap();
如果我们使用了 let mut gp = GaussianProcess::default();代码会更为简单。相反地,你也可以用合适的特征自定义核函数和平均函数。
你还会注意到代码最上方有一些 use 声明。我们可以通过使用 prelude来移除他们:
use rusty_machine::prelude::*;let _ = Matrix::new(2,2,vec![2.0;4]);