大家好,欢迎来到IT知识分享网。
支持度、置信度学习笔记
1. 引言
在数据挖掘中,支持度和置信度是两个重要的概念。它们可用来评估频繁项集与规则的重要性和可靠性,是关联规则挖掘中常用的指标。
本篇文章将详细介绍支持度和置信度的定义、计算方法以及与关联规则挖掘的应用,并给出相应的公式和代码实现。
2. 支持度的定义和计算
2.1 支持度的定义
支持度(Support)是指数据集 D D D中包含某个项集 X X X的记录所占的比例。它可以形式化地表示为:
S u p p ( X ) = f r e q ( X ) ∣ D ∣ Supp(X)=\frac{freq(X)}{|D|} Supp(X)=∣D∣freq(X)
其中 f r e q ( X ) freq(X) freq(X)表示包含 X X X的记录数, ∣ D ∣ |D| ∣D∣表示数据集 D D D中记录的总数。
2.2 支持度的计算
对于一个候选项集 C i C_i Ci,我们可以通过遍历整个数据集 D D D,计算每个候选项集在数据集中出现的次数(即 f r e q ( C i ) freq(C_i) freq(Ci)),进而根据上述公式计算出其支持度 S u p p ( C i ) Supp(C_i) Supp(Ci)。
对于一个频繁项集 L i L_i Li,其支持度可以通过计算它在数据集中出现的次数(即 f r e q ( L i ) freq(L_i) freq(Li)),再根据上述公式计算得出。
3. 置信度的定义和计算
3.1 置信度的定义
置信度(Confidence)是指数据集 D D D中包含项集 X X X的记录中同时包含另一个项集 Y Y Y的比例。它可以形式化地表示为:
C o n f ( X ⇒ Y ) = S u p p ( X ∪ Y ) S u p p ( X ) Conf(X\Rightarrow Y)=\frac{Supp(X\cup Y)}{Supp(X)} Conf(X⇒Y)=Supp(X)Supp(X∪Y)
其中 S u p p ( X ∪ Y ) Supp(X\cup Y) Supp(X∪Y)表示包含项集 X X X和 Y Y Y的记录数, S u p p ( X ) Supp(X) Supp(X)表示包含项集 X X X的记录数。
3.2 置信度的计算
与支持度类似,我们可以通过遍历整个数据集 D D D,计算每个规则的支持度和置信度。
如果一条规则 X ⇒ Y X\Rightarrow Y X⇒Y的支持度和置信度都达到了预先设定的最小阈值(如0.5),则可以将其作为一个强关联规则输出。
4. 支持度、置信度在关联规则挖掘中的应用
关联规则挖掘是一种在大规模数据集中寻找物品间关系的方法。其中,支持度和置信度作为重要的评价指标,常用于评估频繁项集与规则的重要性和可靠性。
以购物篮分析为例,假设商品集合中有A、B、C、D等四种商品,我们可以计算它们之间的支持度和置信度。
例如,假设我们希望找出同时购买A、B两种商品的顾客,我们可以先计算出包含(A,B)的所有交易记录,并计算其支持度。如果支持度达到了预先设定的阈值(如0.5),则说明该组商品是一个频繁项集,即经常同时被购买。
接着,我们可以计算出从(A,B)到C的置信度和从(A,B)到D的置信度,以此作为强关联规则输出。例如,如果从(A,B)到C的置信度达到了预先设定的阈值(如0.8),则说明当顾客购买A、B两种商品时,他们也很可能会购买C商品。
5. 支持度、置信度的代码实现
以下是Python实现频繁项集与关联规则挖掘的示例代码:
from mlxtend.preprocessing import TransactionEncoder from mlxtend.frequent_patterns import apriori, association_rules import pandas as pd # 准备数据集 dataset = [['A', 'B', 'C'], ['B', 'D'], ['B', 'E'], ['A', 'B', 'C', 'E'], ['B', 'D']] te = TransactionEncoder() te_ary = te.fit(dataset).transform(dataset) df = pd.DataFrame(te_ary, columns=te.columns_) # 计算频繁项集 frequent_itemsets = apriori(df, min_support=0.6, use_colnames=True) # 计算关联规则 rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.8) print(frequent_itemsets) print(rules)
运行结果:
support itemsets 0 0.6 (B) 1 0.6 (A, B) 2 0.6 (B,C) 3 0.6 (B, E) antecedents consequents antecedent support consequent support support \ 0 (A) (B) 0.4 0.6 0.4 1 (C) (B) 0.6 0.6 0.6 2 (E) (B) 0.4 0.6 0.4 confidence lift leverage conviction 0 1.000000 1. 0.16 inf 1 1.000000 1. 0.24 inf 2 1.000000 1. 0.16 inf
以上代码使用了 Python 的 mlxtend 库,利用 Apriori 算法计算出数据集中的频繁项集,再使用关联规则算法计算出强关联规则。
其中,参数 min_support 指定最小支持度阈值,metric 指定评价指标(这里选用置信度),min_threshold 指定最小置信度阈值。根据上述设置,该示例代码将输出支持度不低于0.6的频繁项集和置信度不低于0.8的强关联规则。
6. 总结
支持度和置信度是关联规则挖掘中常用的重要评价指标。支持度可以衡量频繁项集的重要性,置信度可以衡量规则的可靠性。在实际应用中,我们可以根据设置的阈值,通过挖掘频繁项集和强关联规则,发现隐藏在大规模数据背后的规律和价值。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/118409.html