使用Apriori算法进行关联与分析

本文介绍了Apriori算法的基本原理和步骤,包括支持度和置信度的概念。通过支持度过滤非频繁项集,从频繁项集中挖掘满足最小置信度的关联规则。Apriori算法在关联规则挖掘中的应用被详细阐述,强调了其在剔除不满足条件规则上的效率。
摘要由CSDN通过智能技术生成

打卡第六周

使用Apriori算法进行关联与分析

一、priori原理:1、一个项集是非频繁的,那么它的所有超集也是非频繁的
2、一个项集是频繁的,那么它的所有子集也是频繁的
二、支持度(support)-使用apriori发现频繁项集
对于数据集(包含M个项集)
1、求单个元素组成项集的集合C1(无重复)
2、利用minsupport(最小支持度或非频繁)过滤掉非频繁的单元素项集,得L1
3、单个元素两两组合成2元素的项集的集合C2
4、利用minsupport(最小支持度或非频繁)过滤掉非频繁的2元素项集,得L2
5、利用2元素项集两两组合得3元素项集C3
6、利用minsupport(最小支持度或非频繁)过滤掉非频繁的3元素项集,得L3
7、重复上述过程
求支持度(过滤支持度)低的项集就是这样一个过程:
C1->L1->C2->L2->C3->L3->…->Ck->Lk
注:apriori的应用:
一个项集是非频繁的,那么它的所有超集也是非频繁的
要获得项集合并(每种可能集合)的支持度就需要多次重复上述过程
三、置信度(confidence)-从频繁项集挖掘关联规则
如果某条规则并不能满足最小可信度要求,那么该规则的所有子集也不会满足最小可信度要求。
生成关联规则_function():
【遍历L:
计算规则右部只有单个元素的置信度(并过滤掉不满足最低置信度阈值的规则)
如果频繁项集中的元素个数有3个或更多
计算右部有2个、3个…len(freqSet)-1个元素的规则置信度】
注意:
1、遍历L时从至少有2个元素的项集开始,只有一个元素,就不存在关联规则了
2、对每一个频繁项集freqSet,求只有单个元素的项集组成的列表H1,用H1作为规则右部
3、频繁项集元素个数有3个或3个以上时,用len(H1[0]) + 1作为递归变量,累加右部元素个数
4、apriori的应用:先求右部为单个元素的规则置信度,将不满足最低置信度阈值的0, 1, 2–>3剔除,这样,左部为{0, 1, 2}的所有子集的规则也直接被剔除不再计算。
代码部分:

# !/usr/bin/env python
# -*- coding: utf-8 -*-
 
def loadData():
    return [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5, ], [2, 5]]
 
 
def createC1(dataSet):
    """
    构建大小为1的所有候选项集的集合
    :param dataSet:
    :return:
    """
    C1 = []
    for transaction in dataSet:
        for item in transaction:
            if not [item] in C1:
                C1.append([item])
    C1.sort()
    return list(map(frozenset, C1))
 
 
def scanD(D, Ck, minSupport)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值