机器学习 - 关联规则



关联规则挖掘是一种用于机器学习的技术,用于在大数据集中发现有趣的模式。这些模式以关联规则的形式表达,表示数据集中不同项目或属性之间的关系。关联规则挖掘最常见的应用是市场购物篮分析,其目标是识别经常一起购买的产品。

关联规则表示为一组前件和一组后件。前件表示规则适用的条件或项目,而后件表示可能与前件相关的结果或项目。关联规则的强度由两个指标衡量:支持度和置信度。支持度是数据集中包含前件和后件的交易比例,而置信度是在包含前件的交易中也包含后件的交易比例。

示例

在 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。

输出

这段代码的输出将显示频繁项集和生成的关联规则。频繁项集表示数据集中经常一起出现的一组项目,而关联规则表示频繁项集中的项目之间的关系。

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 库,可以轻松实现关联规则挖掘并从大型数据集中生成有价值的见解。

广告