【发布时间】:2019-12-02 08:39:19
【问题描述】:
我在 Spark 2.4 中使用 pyspark.ml.fpm.FPGrowth,我有一个关于转换如何精确处理新事务的问题。
我的理解是 model.transform 将获取每个事务 X 并找到所有 Y 使得 Conf(X-->Y) > minConfidence。然后它将返回按置信度排序的此类 Y 的列表。
但是假设没有包含 X 的事务,所以 Conf(X-->Y) 对于所有 Y 都是未定义的,我不确定算法将如何转换此事务。
这是从文档中提取的一组简单事务:
DF = spark.createDataFrame([
(0, [1, 2, 5]),
(1, [1, 2, 3, 5]),
(2, [1, 4])
], ["id", "items"])
fpGrowth = FPGrowth(itemsCol="items", minSupport=0, minConfidence=0)
model = fpGrowth.fit(DF)
然后我们提供一个简单的交易作为测试数据:
test_DF = spark.createDataFrame([
(0, [4,5])
], ["id", "items"])
test_DF = spark.createDataFrame(baskets, schema=schema)
model.transform(test_DF).show()
+---+------+----------+
|num| items|prediction|
+---+------+----------+
| 1|[4, 5]| [1, 3, 2]|
+---+------+----------+
有人知道预测 [1,3,2] 是如何生成的吗?
【问题讨论】:
标签: apache-spark pyspark apache-spark-ml fpgrowth