3个版本
使用旧的Rust 2015
0.0.3 | 2018年6月30日 |
---|---|
0.0.2 | 2018年4月23日 |
0.0.1 | 2018年3月31日 |
#761 in 机器学习
75KB
2K SLoC
forester
一个Rust crate,用于将随机森林和决策树定制到 你的 数据集。
本项目的目标是提供用于处理随机森林的通用功能。目前处于非常早期的开发阶段。API的关键元素开始稳定,所以如果你有任何关于它的想法,现在就是打开一个 Issue 这里 的好时机
别忘了查看 仓库中的示例。
概述
这个随机森林的实现受到 (1) 的很大启发。特别是,将基于特质在一个统一框架中提供分类、回归和密度估计模型。
概念上,crate提供了两个主要部分
- 一个通用的框架,包括
- 拟合和预测树和森林的功能
- 特质,允许这些功能理解任意用户数据
- 用于插入框架的通用构建块
- 分割/性能标准(RMSE、GINI、...)
- 分割查找策略(最佳随机、CART、...)
- 集成组合器(聚合、提升 - 待完成)
用法
大多数随机森林的实现都针对表格数据,或多或少随机选择尝试特定分割的特征列。这仅适用于有限预定义的特征集。然而,如 (1) 中所述,随机森林可以与无限维特征空间一起工作。换句话说,标识特征参数可以是连续值,而不是离散列索引。
无限维特征空间的例子是由两列的线性组合形成的特征(参见rotational_classifier
示例)。选择哪些特征以及如何解释它们很大程度上取决于数据,因此提供一些任意的特征提取方法几乎没有意义。相反,关于数据的推理工作被推迟给了crate的用户,他们需要实现SampleDescription
和TrainingData
特性。这些特性定义了如何从数据中参数化和提取特征,如何在树叶子中进行最终预测,如何评估分割,等等...
示例
示例可以在存储库中找到。
文献
- A. Criminisi, J. Shotton和E. Konukoglu, "决策森林用于分类、回归、密度估计、流形学习和半监督学习", 微软研究技术报告TR-2011-114 (PDF)
依赖项
~630KB