一種拆包即用的機器學習模塊。
結構這個模塊包括兩個基本模組:學習和線性代數。
學習這個學習模組包括所有的機器學習模組。包括算法,模組和相關工具。
目前支持的機器學習方法包括:
線性代數線性代數模組重新導出了一些線性代數庫中的結構體和特徵。這個模組提供了一種使用該庫中常用線性代數的簡便方法。
用法各個模組的特定用法已經在各模組的特定文檔中說明了,這個部分會著重描述該庫的通用流程。
這個被包括在學習模塊中的模組需要實現 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]);