0

使用 Spark 1.5.1 的答案 MLLib Random Forest Probability,我能够使用 训练随机森林ml.classification.RandomForestClassifier,并使用经过训练的随机森林处理保留数据帧。

我遇到的问题是,我想保存这个经过训练的随机森林,以便将来处理任何数据帧(具有与训练集相同的特征)。

此页面上的分类示例使用mllib.tree.model.RandomForestModel,它显示了如何保存经过训练的森林,但据我所知,只能在LabeledPointRDD 上进行训练(并在未来进行处理)。我对LabeledPointRDD 的问题是它只能包含标签双精度和特征向量,所以我会丢失所有我需要用于其他目的的非标签/非特征列。

所以我想我需要一种方法来保存ml.classification.RandomForestClassifier 的结果,或者构造一个LabeledPointRDD,该 RDD 可以保留除通过mllib.tree.model.RandomForestModel.

任何人都知道为什么同时存在 ML 和 MLlib 库中的一个吗?

非常感谢您阅读我的问题,并提前感谢您提供任何解决方案/建议。

4

1 回答 1

0

我将重复使用 spark 编程指南中所说的内容:

spark.ml 包旨在提供一套统一的高级 API,这些 API 构建在 DataFrame 之上,可帮助用户创建和调整实用的机器学习管道。

在 Spark 中,核心特性是它的 RDD。如果您有兴趣,有一篇关于该主题的优秀论文,我可以稍后添加链接。

MLLib 出现了,它最初是一个独立的库,后来被 Spark 项目所吸引。尽管如此,Spark 中的所有机器学习算法都是在 RDD 上编写的。

然后将 DataFrame 抽象添加到项目中,因此需要一种更实用的构建机器学习应用程序的方法,包括转换器和评估器以及最重要的管道。

就此而言,数据工程师或科学家不需要研究底层技术。因此抽象。

您可以同时使用这两种方法,但您需要记住,您在 ML 中使用的所有算法都是在 MLlib 中创建的,然后被抽象出来以便于使用。

于 2016-01-24T20:35:25.480 回答