【问题标题】:FPGrowth on a Dataframe?数据框上的FPGrowth?
【发布时间】:2017-04-07 17:22:17
【问题描述】:

假设我有一个这种结构的数据框:

time| asset | parameter  
----|-------|----------
T1  |  A1   | P1
T1  |  A1   | P2
T1  |  A1   | P3
T1  |  A2   | P1
T1  |  A2   | P2
T1  |  A2   | P3
T2  |  A1   | P1
....

等等

我想在此数据帧上使用FPGrowth API(作为spark.mllib 的一部分),其中与同一时间戳对应的所有参数都被视为一个事务。我该怎么办?

documentation 中给出的示例仅讨论了正在读取的文件,每一行对应于不同的事务。

我是 Spark 的新手,欢迎任何形式的帮助! (带有 Scala 的 Spark 版本 1.6.2)

【问题讨论】:

    标签: scala machine-learning data-mining spark-dataframe apache-spark-mllib


    【解决方案1】:

    转置您的数据,以便您在每笔交易中拥有一行。

    然后运行 ​​FPgrowth。

    【讨论】:

    • 如果你的数据框不是那么大也没关系。我的数据框可以有数百万个数据点或更多。在这种情况下,旋转会很耗时,不是吗?
    • 如果数据已排序,这是 O(n) - 还不错。 FP-Growth 需要交易中的数据,所以你最终将不得不支付这个运行时成本。
    【解决方案2】:

    将列名附加到每个行值。您的数据框将如下所示:

    +----------+-------------+-------------+
    | time     | asset       | parameter   |
    +----------+-------------+-------------+
    | time:T1  |  asset:A1   | parameter:P1|  
    | time:T1  |  asset:A1   | parameter:P2|  
    | time:T1  |  asset:A1   | parameter:P3|
    +----------+-------------+-------------+
    

    这使得价值观独一无二

    【讨论】:

      猜你喜欢
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-17
      • 2021-05-08
      • 1970-01-01
      • 2017-01-02
      相关资源
      最近更新 更多