Machine Learning 简明教程
Machine Learning - Association Rules
关联规则挖掘是机器学习中使用的一种技术,用于发现大型数据集中的有趣模式。这些模式以关联规则的形式表示,表示数据集中的不同项目或属性之间的关系。关联规则挖掘的最常见应用是在市场篮子分析中,目的是识别经常一起购买的产品。
关联规则表示为一组前提条件和一组结果。前提条件表示规则适用的条件或项目,而结果表示可能与前提条件相关联的结果或项目。关联规则的强度由两项指标衡量:支持和置信度。支持是在数据集中同时包含前提条件和结果的所有事务的比例,而置信度是包含结果的所有事务中包含前提条件的比例。
Example
在 Python 中,mlxtend 库提供了几种关联规则挖掘函数。以下是使用 mlxtend 中的 apriori 函数在 Python 中实现关联规则挖掘的一个示例 −
import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules
# Create a sample dataset
data = [['milk', 'bread', 'butter'],
['milk', 'bread'],
['milk', 'butter'],
['bread', 'butter'],
['milk', 'bread', 'butter', 'cheese'],
['milk', 'cheese']]
# Encode the dataset
te = TransactionEncoder()
te_ary = te.fit(data).transform(data)
df = pd.DataFrame(te_ary, columns=te.columns_)
# Find frequent itemsets using Apriori algorithm
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)
# Generate association rules
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.5)
# Print the results
print("Frequent Itemsets:")
print(frequent_itemsets)
print("\nAssociation Rules:")
print(rules)
在此示例中,我们创建了一个购物交易的样本数据集,并使用 mlxtend 中的 TransactionEncoder 对其进行编码。然后,我们使用 apriori 函数查找最低支持度为 0.5 的频繁项集。最后,我们使用 association_rules 函数生成置信度最低为 0.5 的关联规则。
apriori 函数有两个参数:编码数据集和最低支持度阈值。use_colnames 参数设置为 True,以使用原始项目名称,而不是布尔值。association_rules 函数有两个参数:频繁项集和生成关联规则的度量和最低阈值。在此示例中,我们的置信度指标,其最小阈值为 0.5。
Output
此代码的输出将显示频繁项集和生成的关联规则。频繁项集表示数据集中经常同时出现的项目集,而关联规则表示频繁项集中项目的之间的关系。
Frequent Itemsets:
support itemsets
0 0.666667 (bread)
1 0.666667 (butter)
2 0.833333 (milk)
3 0.500000 (bread, butter)
4 0.500000 (bread, milk)
5 0.500000 (butter, milk)
Association Rules:
antecedents consequents antecedent support consequent support support \
0 (bread) (butter) 0.666667 0.666667 0.5
1 (butter) (bread) 0.666667 0.666667 0.5
2 (bread) (milk) 0.666667 0.833333 0.5
3 (milk) (bread) 0.833333 0.666667 0.5
4 (butter) (milk) 0.666667 0.833333 0.5
5 (milk) (butter) 0.833333 0.666667 0.5
confidence lift leverage conviction zhangs_metric
0 0.75 1.125 0.055556 1.333333 0.333333
1 0.75 1.125 0.055556 1.333333 0.333333
2 0.75 0.900 -0.055556 0.666667 -0.250000
3 0.60 0.900 -0.055556 0.833333 -0.400000
4 0.75 0.900 -0.055556 0.666667 -0.250000
5 0.60 0.900 -0.055556 0.833333 -0.400000
关联规则挖掘是一种强大的技术,可以运用到许多不同类型的数据集中。它通常用于市场篮子分析中,以识别经常一起购买的产品,但它也可用于其他领域,例如医疗保健、金融和社交媒体。借助 mlxtend 等 Python 库,可以轻松实现关联规则挖掘,并从大型数据集中生成有价值的见解。