关联规则学习(Association Rule Learning)是一种无监督学习方法,用于发现数据集中的项之间的关联关系。这种方法通常用于分析交易数据或者购物篮中的商品购买情况,以便找出经常一起购买的商品。一个经典的关联规则的例子是"如果顾客购买了牛奶,那么他们也很可能购买面包"。
Apriori
算法是一种常用的关联规则学习算法。下面是一个简单的教程,演示如何使用 Python 中的 mlxtend
库来实现关联规则学习。
pip install mlxtend
import pandas as pd
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
准备一个包含交易数据的数据集。数据集的每一行表示一个交易,每一列表示一个商品。数据集的值通常是二进制的,表示是否购买了某个商品。
# 示例数据
data = {'Transaction': ['T1', 'T2', 'T3', 'T4', 'T5'],
'Item1': [1, 0, 1, 1, 0],
'Item2': [1, 1, 0, 1, 1],
'Item3': [0, 1, 1, 0, 1],
'Item4': [1, 1, 1, 0, 1]}
df = pd.DataFrame(data).set_index('Transaction')
# 找出频繁项集
frequent_itemsets = apriori(df, min_support=0.2, use_colnames=True)
# 根据频繁项集生成关联规则
rules = association_rules(frequent_itemsets, metric='confidence', min_threshold=0.7)
# 查看关联规则
print(rules)
这个例子中,我们通过示例数据集演示了如何使用 Apriori 算法来找出频繁项集,然后通过设定置信度阈值生成关联规则。在实际应用中,你可以使用更大规模的真实数据集,并根据具体情况调整参数。