关联规则挖掘是一种无监督学习任务,旨在发现数据集中项集之间的关联关系。它可以用于揭示数据中的频繁项集和关联规则,有助于了解数据的内在结构和关联性。关联规则通常采用”如果…那么…”的形式,指示项集之间的关系。
关联规则由两部分组成:前项(Antecedent)和后项(Consequent)。前项是规则的条件部分,后项是规则的结果部分。例如,对于一个购物篮数据集,一条关联规则可以是:”如果牛奶和面包出现在一个购物篮中,那么鸡蛋也可能出现在该购物篮中”。
关联规则挖掘的常见算法之一是 Apriori 算法,它通过计算项集的支持度(Support)和置信度(Confidence)来确定频繁项集和关联规则。
支持度表示项集在数据集中出现的频率,即项集在所有事务中的出现次数的比例。置信度表示当前项集的前项和后项同时出现时的条件概率,即规则的可信程度。
以下是 Apriori 算法的关键步骤:
- 设定最小支持度和最小置信度阈值。
- 遍历数据集,计算每个项集的支持度。
- 根据最小支持度阈值筛选出频繁项集。
- 基于频繁项集,生成关联规则,并计算置信度。
- 根据最小置信度阈值筛选出满足要求的关联规则。
下面是一个示例代码,用于展示关联规则挖掘的过程:
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules
# 准备示例购物篮数据集
dataset = [['牛奶', '面包'],
['牛奶', '鸡蛋', '面包', '薯片'],
['牛奶', '尿布', '啤酒', '鸡蛋'],
['牛奶', '尿布', '面包', '鸡蛋']]
# 转换数据集为适用于Apriori算法的形式
te = TransactionEncoder()
te_ary = te.fit_transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
# 使用Apriori算法挖掘频繁项集
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)
# 生成关联规则
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)
# 打印频繁项集和关联规则
print("频繁项集:")
print(frequent_itemsets)
print("n关联规则:")
print(rules)
上述代码使用 mlxtend 库进行关联规则挖掘。首先,我们准备了一个示例购物篮数据集。然后,使用 TransactionEncoder 将数据集转换为适用于 Apriori 算法的形式。接下来,使用 Apriori 算法挖掘频繁项集,其中 min_support 参数指定了最小支持度阈值。最后,使用 association_rules 函数生成关联规则,其中 metric 参数指定了用于评估规则的度量标准,min_threshold 参数指定了最小置信度阈值。
关联规则挖掘的结果将包含频繁项集和关联规则。频繁项集将显示项集和其对应的支持度,关联规则将显示规则的前项、后项、支持度和置信度等信息。
总结来说,关联规则挖掘是一种无监督学习任务,用于发现数据集中项集之间的关联关系。Apriori 算法是常用的关联规则挖掘算法,通过计算支持度和置信度来确定频繁项集和关联规则。以上代码示例展示了如何使用 Apriori 算法和 mlxtend 库进行关联规则挖掘,并输出结果。
关联规则挖掘中的支持度和置信度是用于度量关联规则的重要指标。下面详细解释这两个概念,并给出相应的公式。
- 支持度(Support):
支持度是指一个项集在整个数据集中出现的频率。在关联规则挖掘中,我们关注的是频繁项集,即支持度大于等于事先设定的最小支持度阈值的项集。
支持度的计算公式如下:
Support(A) = (出现A的次数) / (总事务数)
其中,A 是一个项集,Support(A)表示项集 A 的支持度。
- 置信度(Confidence):
置信度是指一个关联规则的可信程度,即前项出现时后项出现的概率。在关联规则挖掘中,我们寻找的是置信度大于等于事先设定的最小置信度阈值的关联规则。
置信度的计算公式如下:
Confidence(A → B) = (Support(A ∪ B)) / (Support(A))
其中,A 和 B 是项集,Confidence(A → B)表示规则 A → B 的置信度。Support(A ∪ B)表示同时出现 A 和 B 的支持度,Support(A)表示项集 A 的支持度。
支持度和置信度是关联规则挖掘中常用的度量指标。通过设置适当的支持度和置信度阈值,我们可以筛选出具有足够频繁和可信程度的关联规则,从而发现数据集中的有意义的关联关系。
在实际应用中,我们通常会根据问题的特点和数据的特性来设定最小支持度和最小置信度阈值,以便获得符合需求的关联规则。