【每周一库】- 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]);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值