当前位置 : 主页 > 编程语言 > java >

【每周一库】- Rusty-Machine 机器学习库

来源:互联网 收集:自由互联 发布时间:2022-06-22
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]);



上一篇:【Rust日报】2020-11-20 Rust的Pin与Unpin
下一篇:没有了
网友评论