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()

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