feat: add ml/rusty-mathine

This commit is contained in:
2020-12-05 10:28:57 +08:00
parent 5157903b3a
commit 907c894dbc
5 changed files with 228 additions and 1 deletions

View File

@@ -0,0 +1,37 @@
use rusty_machine::linalg::{Matrix, Vector};
use rusty_machine::learning::gp::{GaussianProcess, ConstMean};
use rusty_machine::learning::toolkit::kernel::SquaredExp;
use rusty_machine::learning::SupModel;
fn main() {
// 首先获取一些数据。
// 一些示例训练数据。
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 = 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();
println!("{:?}", outputs);
}