使用jupyter定义一个函数,计算L1中一个频繁1项集对另外一个频繁1项集的置信度,输出置信度>0.6的数据 如果我们有两个想分析关联性的数据$X$和$Y,X$对$Y$的置信度为 $$ \text { Confidence }(X \rightarrow Y)=P(Y \mid X)=P(X Y) / P(X)=XY的支持度/X的支持度 $$
时间: 2023-09-02 18:07:35 浏览: 77
好的,这个问题我可以帮你回答,并且提供一个示例代码来计算置信度。
首先,我们需要知道频繁1项集的支持度是怎么计算的。频繁1项集的支持度是指在所有事务中包含该项集的次数占总事务数的比例。例如,如果我们有10个事务,其中有3个包含项集{A},那么{A}的支持度为0.3。
接着,我们需要知道频繁1项集对的支持度是怎么计算的。频繁1项集对的支持度是指在所有事务中同时包含这两个项集的次数占总事务数的比例。例如,如果我们有10个事务,其中有2个包含项集{A},有3个包含项集{B},有1个同时包含这两个项集,那么{A,B}的支持度为0.1。
有了这些基础知识,我们就可以编写一个函数来计算频繁1项集对的置信度,并输出置信度大于0.6的数据了。下面是一个示例代码:
```python
def calc_confidence(freq_itemset1, freq_itemset2, transactions):
'''
freq_itemset1: 频繁1项集1,格式为列表
freq_itemset2: 频繁1项集2,格式为列表
transactions: 事务列表,每个事务是一个集合,格式为列表的列表
'''
support1 = sum(1 for transaction in transactions if set(freq_itemset1).issubset(set(transaction)))
support2 = sum(1 for transaction in transactions if set(freq_itemset2).issubset(set(transaction)))
support12 = sum(1 for transaction in transactions if set(freq_itemset1 + freq_itemset2).issubset(set(transaction)))
confidence = support12 / support1
if confidence > 0.6:
print(f'{freq_itemset1} => {freq_itemset2}: {confidence:.2f}')
```
假设我们有以下事务:
```python
transactions = [
['A', 'B', 'C', 'D'],
['A', 'B', 'D', 'E'],
['B', 'C', 'E', 'F'],
['A', 'C', 'E', 'F'],
['B', 'D', 'E', 'F'],
]
```
我们想要计算{A}对{B}的置信度:
```python
calc_confidence(['A'], ['B'], transactions)
```
输出为:
```
['A'] => ['B']: 0.67
```
我们可以看到,{A}对{B}的置信度为0.67,大于0.6,符合要求。
同理,我们可以计算其他频繁1项集对的置信度。
阅读全文