实现上次博客例子,设置最小支持度计数为3,3/5=0.6,所以支持度为0.6
# 属于太菜了,做个调包侠
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import fpgrowth
import pandas as pd
# 数据集
dataset = [
['f', 'c', 'a','m','p'],
['f', 'c', 'a','b','m'],
['f', 'b'],
['c', 'b', 'p'],
['f','c', 'a', 'm', 'p']
]
# 将数据集转换为 one-hot 编码格式
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
# 应用 FP-Growth 算法
# min_support 参数指定支持度的阈值
frequent_patterns = fpgrowth(df, min_support=0.6, use_colnames=True)
print(frequent_patterns)
support itemsets 0 0.8 (f) 1 0.8 © 2 0.6 § 3 0.6 (m) 4 0.6 (a) 5 0.6 (b) 6 0.6 (f, c) 7 0.6 (p, c) 8 0.6 (m, c) 9 0.6 (m, f) 10 0.6 (m, f, c) 11 0.6 (m, a) 12 0.6 (a, c) 13 0.6 (a, f) 14 0.6 (m, a, c) 15 0.6 (m, a, f) 16 0.6 (f, a, c) 17 0.6 (f, m, a, c)