如何按列值训练单独的模型?

问题描述 投票:0回答:1

如何基于在Spark数据框架中的某个列的寡妇运行不同的回归模型?

假设我在一个Spark DF中有2个产品具有与这些产品相关的功能和标签。产品的ID存在于单独的柱子中。 我想对每个产品进行回归分析。

到目前为止,对于相对简单的分析,我一直在使用

w = Window().partitionBy("id")
F.sum(column).over(w)

EG日期

sdf = spark.createDataFrame(
        [("a", 1.0, 2.0, 3.0), ("a", 4.0, 1.0, 5.0), ("b", 2.0, 1.0, 0.0), ("b", 4.0, 0.0, 1.0)],
        ["id", "y", "x1", "x2"])

我想为id“a”和“b”运行一个单独的模型。

apache-spark pyspark apache-spark-mllib
1个回答
1
投票

您可以使用groupBycollect_listcollect_set并对每个集合进行模型训练,但它不能在Spark MLlib中开箱即用,并且需要自定义开发,即编写用户定义的聚合函数(UDAF)。

我建议使用filter基于条件拆分DataFrame,并分别使用两个或更多DataFrame。

© www.soinside.com 2019 - 2024. All rights reserved.