pyspark实现FPGrowth(关联规则)

FP:Frequent Pattern

相对于Apriori算法,频繁模式树(Frequent Pattern Tree, FPTree)的数据结构更加高效
Apriori原理:如果某个项集是频繁的,那么它的所有子集也是频繁的。反过来,如果一个项集是非频繁集,那么它的所有超集(包含该非频繁集的父集)也是非频繁的。

from pyspark.ml.fpm import FPGrowth
from pyspark.sql import SparkSession

spark = SparkSession\
    .builder\
    .appName("FPGrowthExample")\
    .getOrCreate()

df = spark.createDataFrame([
    (0, [1, 2, 5]),
    (1, [1, 2, 3, 5]),
    (2, [1, 2])
], ["id", "items"])

fpGrowth = FPGrowth(itemsCol="items", minSupport=0.5, minConfidence=0.6)
model = fpGrowth.fit(df)
# 频繁项集
model.freqItemsets.show()
# 关联规则
model.associationRules.show()
# 根据关联规则的简单预测
model.transform(df).show()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章