带有随机森林的 Spark Process Dataframe
Spark Process Dataframe with Random Forest
使用 的答案,我能够使用 ml.classification.RandomForestClassifier
训练随机森林,并使用训练的随机森林处理 holdout 数据帧。
我遇到的问题是,我想保存这个经过训练的随机森林,以便将来处理任何数据帧(具有与训练集相同的特征)。
classification example on this page使用mllib.tree.model.RandomForestModel
,它展示了如何保存训练好的森林,但据我所知只能训练(并在未来处理)一个LabeledPoint
RDD。 LabeledPoint
RDD 的问题是它只能包含标签双精度和特征向量,所以我会丢失所有我需要用于其他目的的 non-label/non-feature 列。
所以我想我需要一种方法来保存 ml.classification.RandomForestClassifie
r 的结果,或者构造一个 LabeledPoint
RDD,它可以保留除训练森林所需的标签和特征之外的列通过 mllib.tree.model.RandomForestModel
.
有人知道为什么同时存在 ML 和 MLlib 库,而不是只有一个吗?
非常感谢您阅读我的问题,并提前感谢任何 solutions/suggestions。
我只是 re-use spark 编程指南中所说的内容:
The spark.ml package aims to provide a uniform set of high-level APIs built on top of DataFrames that help users create and tune practical machine learning pipelines.
在 Spark 中,核心功能是它的 RDD。如果您有兴趣,有一篇关于该主题的优秀论文,我可以稍后添加 link。
MLLib来了,一开始是一个独立的库,后来融入了Spark项目。尽管如此,Spark 中的所有机器学习算法都是在 RDD 上编写的。
然后将 DataFrame 抽象添加到项目中,因此需要一种更实用的方法来构建机器学习应用程序,包括转换器和评估器,以及最重要的管道。
数据工程师或科学家不需要研究底层技术。因此抽象。
您可以同时使用两者,但您需要记住,您在 ML 中使用的所有算法都是在 MLlib 中创建的,然后进行了抽象以便于使用。
使用 ml.classification.RandomForestClassifier
训练随机森林,并使用训练的随机森林处理 holdout 数据帧。
我遇到的问题是,我想保存这个经过训练的随机森林,以便将来处理任何数据帧(具有与训练集相同的特征)。
classification example on this page使用mllib.tree.model.RandomForestModel
,它展示了如何保存训练好的森林,但据我所知只能训练(并在未来处理)一个LabeledPoint
RDD。 LabeledPoint
RDD 的问题是它只能包含标签双精度和特征向量,所以我会丢失所有我需要用于其他目的的 non-label/non-feature 列。
所以我想我需要一种方法来保存 ml.classification.RandomForestClassifie
r 的结果,或者构造一个 LabeledPoint
RDD,它可以保留除训练森林所需的标签和特征之外的列通过 mllib.tree.model.RandomForestModel
.
有人知道为什么同时存在 ML 和 MLlib 库,而不是只有一个吗?
非常感谢您阅读我的问题,并提前感谢任何 solutions/suggestions。
我只是 re-use spark 编程指南中所说的内容:
The spark.ml package aims to provide a uniform set of high-level APIs built on top of DataFrames that help users create and tune practical machine learning pipelines.
在 Spark 中,核心功能是它的 RDD。如果您有兴趣,有一篇关于该主题的优秀论文,我可以稍后添加 link。
MLLib来了,一开始是一个独立的库,后来融入了Spark项目。尽管如此,Spark 中的所有机器学习算法都是在 RDD 上编写的。
然后将 DataFrame 抽象添加到项目中,因此需要一种更实用的方法来构建机器学习应用程序,包括转换器和评估器,以及最重要的管道。
数据工程师或科学家不需要研究底层技术。因此抽象。
您可以同时使用两者,但您需要记住,您在 ML 中使用的所有算法都是在 MLlib 中创建的,然后进行了抽象以便于使用。