Apache spark pyspark—FPGrowth:转换如何处理看不见的事务?

Apache spark pyspark—FPGrowth:转换如何处理看不见的事务?,apache-spark,pyspark,apache-spark-ml,fpgrowth,Apache Spark,Pyspark,Apache Spark Ml,Fpgrowth,我正在Spark 2.4中使用pyspark.ml.fpm.FPGrowth,我有一个问题,就是转换如何精确地处理新事务 我的理解是model.transform将获取每个事务X,并找到所有Y,以便 形态(X-->Y)>最小置信度。然后,它将返回按信任度排序的此类Y的列表 但是,假设没有包含X的事务,因此Conf(X-->Y)对于所有Y都是未定义的,我不确定该算法将如何转换该事务 这是从文档中提取的一组简单事务: DF = spark.createDataFrame([ (0, [1,

我正在Spark 2.4中使用pyspark.ml.fpm.FPGrowth,我有一个问题,就是转换如何精确地处理新事务

我的理解是model.transform将获取每个事务X,并找到所有Y,以便 形态(X-->Y)>最小置信度。然后,它将返回按信任度排序的此类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]是如何生成的吗?

我认为FPGrowthModel.transform将FPGrowth挖掘的规则应用于事务,因此,当它在事务中找到一个项集X,同时我们有一个规则说(X=>Y),那么它会在该事务的预测列中建议项Y, 但问题是,我注意到,在我们有一个包含X和Y的事务的情况下,它在预测列中返回[],除非有一条规则说X&Y=>Z,在这种情况下,它将建议Z。
因此,很难使用准确度度量来评估模型:(

我认为FPGrowthModel.transform将FPGrowth挖掘的规则应用于事务,因此当它在事务中找到一个项集X,同时我们有一个表示(X=>Y)的规则时,它会在该事务的预测列中建议项Y, 但问题是,我注意到,在我们有一个包含X和Y的事务的情况下,它在预测列中返回[],除非有一条规则说X&Y=>Z,在这种情况下,它将建议Z。 因此,很难使用精度度量来评估模型:(