3个版本
使用旧的Rust 2015
0.1.2 | 2018年6月27日 |
---|---|
0.1.1 | 2018年6月20日 |
0.1.0 | 2018年6月20日 |
在机器学习类别中排名第851
38KB
891 代码行
openml-rust
OpenML的Rust接口。
该包的目的是让Rust代码能够访问OpenML托管的学习数据。因此,在Rust中开发的学习算法可以轻松应用于最先进的数据集,并通过可重复的方式与现有实现进行比较。
示例
extern crate openml;
use openml::prelude::*;
use openml::{PredictiveAccuracy, SupervisedClassification};
use openml::baseline::NaiveBayesClassifier;
fn main() {
// Load "Supervised Classification on iris" task (https://www.openml.org/t/59)
let task = SupervisedClassification::from_openml(59).unwrap();
println!("Task: {}", task.name());
// run the task
let result: PredictiveAccuracy<_> = task.run(|train, test| {
// train classifier
let nbc: NaiveBayesClassifier<u8> = train
.map(|(x, y)| (x, y))
.collect();
// test classifier
let y_out: Vec<_> = test
.map(|x| nbc.predict(x))
.collect();
Box::new(y_out.into_iter())
});
println!("Classification Accuracy: {}", result.result());
}
目标
- 获取数据集
- 获取任务
- 获取分割
- 任务类型
- 监督分类
- 监督回归
- 学习曲线
- 聚类
- 运行任务
[ ] 用于任务的Learner/Predictor特质- 任务运行器接受学习和预测的闭包
- 数据类型策略
a: 负担ML模型处理动态类型b: 将所有内容转换为f64c: 将类型转换作为特征提取管道的一部分- 泛型允许在编译时选择类型
- 使openml.org可选(手动构建任务)
未来可能目标
- 流支持
- 运行支持
- 完整的OpenML API支持
- 身份验证
- 更多任务
- 监督数据流分类
- 机器学习挑战
- 生存分析
- 子组发现
非目标
- 机器学习算法的实现
依赖项
~9–18MB
~235K SLoC