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()
网友评论