Apriori 处理ALLElectronics事务数据

通过Apriori算法挖掘以下事务集合的频繁项集:

流程图

代码
# 导入必要的库
from itertools import combinations

# 定义Apriori算法函数
def apriori(transactions, min_support, min_confidence):
    # 遍历数据,统计每个项的支持度 
    item_support = {}
    for transaction in transactions:
        for item in transaction:
            if item not in item_support:
                item_support[item] = 0
            item_support[item] += 1

    # 计算总事务数
    total_transactions = len(transactions)
    # 计算频繁项集
    frequent_itemsets = {}
    for item, support in item_support.items():
        if support / total_transactions >= min_support: # 即该项集在事务数据库中出现的次数除以总数
            frequent_itemsets[(item,)] = support / total_transactions

    # 生成候选项集并迭代生成频繁项集
    k = 2
    while True:
        candidates = set() # 存储所有可能的项集
        for itemset in frequent_itemsets.keys():
            for item in itemset:
                candidates.add(item)
        # 生成候选项集
        candidates = list(combinations(candidates, k)) # 生成所有可能的k项集
        # 统计候选项集的支持度
        candidate_support = {}
        for transaction in transactions:
            for candidate in candidates:
                if set(candidate).issubset(set(transaction)):
                    if candidate not in candidate_support:
                        candidate_support[candidate] = 0
                    candidate_support[candidate] += 1

        # 更新频繁项集
        frequent_itemsets_k = {}
        for candidate, support in candidate_support.items():
            if support / total_transactions >= min_support:
                frequent_itemsets_k[candidate] = support / total_transactions
        # 如果没有频繁项集则停止迭代
        if not frequent_itemsets_k:
            break

        frequent_itemsets.update(frequent_itemsets_k)
        k += 1

    # 生成关联规则
    rules = []
    for itemset in frequent_itemsets.keys():
        if len(itemset) >= 2:
            for i in range(1, len(itemset)):
                for combination in combinations(itemset, i):
                    X = combination
                    Y = tuple(set(itemset) - set(combination))
                    confidence = frequent_itemsets[itemset] / frequent_itemsets[X]
                    if confidence >= min_confidence:
                        rules.append((X, Y, frequent_itemsets[itemset], confidence))

    # frequent_itemsets (dict): 频繁项集和对应的支持度,键为项集的元组,值为支持度
    # rules (list): 关联规则,每一条规则表示为一个元组 (X, Y),其中X为前项集合,Y为后项集合
    return frequent_itemsets, rules


# 示例数据集
transactions = [    
    ['I1', 'I2', 'I5'],
    ['I2', 'I4'],
    ['I2', 'I3'],
    ['I1', 'I2', 'I4'],
    ['I1', 'I3'],
    ['I2', 'I3'],
    ['I1', 'I3'],
    ['I1', 'I2', 'I3', 'I5'],
    ['I1', 'I2', 'I3']
]
# 设置最小支持度和最小置信度阈值
min_support = 0.3
min_confidence = 0.6
# 调用Apriori算法函数
frequent_itemsets, rules = apriori(transactions, min_support, min_confidence)
print("频繁项集和对应的支持度:")
for itemset, support in frequent_itemsets.items():
    print("{}: Support = {:.2f}".format(itemset, support))
# 输出关联规则和置信度
print("\n关联规则和置信度:")
for X, Y, support, confidence in rules:
    print("{} => {}: Support = {:.2f}, Confidence = {:.2f}".format(X, Y, support, confidence))

  • 输出结果截图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/734254.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

触想工业一体机在智慧医疗智能采血管理系统中的应用

一、行业发展前景 作为医院重点科室之一,传统的检验科采血环节存在诸多痛点,特别在备管阶段,大量患者信息的核对、试管条码打印、选管、贴标等繁琐步骤均依赖人工操作,工作强度大、效率低,易出错。 随着智慧医院建设的…

解锁PDF处理新境界:轻松调整字体,让你的文档焕然一新!

数字化时代,PDF文件已经成为我们日常办公和学习中不可或缺的一部分。它们为我们提供了方便的阅读体验,同时也保证了文档内容的完整性和格式的统一性。然而,有时候我们可能会遇到一个问题:如何轻松调整PDF文件中的字体,…

Microsoft Edge无法启动搜索问题的解决

今天本来想清一下电脑,看到visual studio2022没怎么用了就打算卸载掉。然后看到网上有篇文章说进入C盘的ProgramFiles(x86)目录下的microsoft目录下的microsoft visual studio目录下的install目录中,双击InstallCleanup.exe&#…

Git简单使用和理解

workspace: 本地的工作目录。 index/stage:暂存区域,临时保存本地改动。 local repository: 本地仓库,只想最后一次提交HEAD。 remote repository:远程仓库。 对于Git,首先应该明白第一git是一种分布式版本控制系统,最…

Instagram APIj接口——快速获取Ins帖子媒体内容下载链接

一、引言 在社交媒体蓬勃发展的今天,Instagram已成为用户分享照片、视频和精彩瞬间的首选平台。然而,对于很多用户来说,想要保存或分享Instagram上的精彩内容却常常遇到困扰。为了解决这个问题,我们精心打造了一款全新的Instagra…

天马学航——智慧教务系统(移动端)开发日志八

天马学航——智慧教务系统(移动端)开发日志八 日志摘要:完成了对用户主界面的优化,再次优化数据库缓存,使数据库读写分离 优化主界面 优化用户界面,使界面看起来更加亲切贴合 主要源码 build() {Row() {Column({space:30}) {Te…

软件工程考试题备考

文章目录 前言一、二、1.2 总结 前言 一、 B D C 类图、对象图、包图 其他系统及用户 功能需求 用例 人、硬件或其他系统可以扮演的角色7. D C 数据 原型/系统原型;瀑布 A 功能;功能需求 D 数据存储;圆形/圆角矩形;矩形 C T;T;F C C B C D C …

基于淘宝商城用户购物行为数据分析系统

摘 要 在电商行业高速发展的今天,用户购物行为数据量呈指数型增长,传统的数据处理架构已经无法满足于现如今的数据处理需求。针对于这样的需求本课题设计了一种基于淘宝的用户购物行为分析系统,旨在通过对大量数据进行分析处理进而深入研究用…

11、鸿蒙学习—UDID获取方法

一、手机的UDID获取方法如下: 1、打开“设置 > 关于手机”,多次点击版本号,打开开发者模式。 2、打开“设置 > 系统和更新”,在最下方找到“开发人员选项”,打开“USB调试”开关。 3、使用PC连接手机后&#…

【单片机】Code Composer Studio Linux版本下载,CCS开发环境

被windows的驱动兼容性搞得烦死了,我直接搞虚拟机用linux版本的ccs尝试一下。 下载: https://www.ti.com/tool/download/CCSTUDIO ubuntu22 虚拟机内,安装一些依赖: 安装libc6-i386库: 运行以下命令来安装libc6-i38…

银河麒麟V10 SP1.1操作系统 离线安装 nginx1.21.5、redis 服务

银河麒麟官网地址:国产操作系统、麒麟操作系统——麒麟软件官方网站 一、查看系统版本 命令:nkvers 我的是 release V10 (SP1),根据这个版本去官网找对应的rpm包 银河麒麟操作系统的rpm包必须从官方找, 要是随便找个Centos的rp…

SpringBoot配置第三方专业缓存技术jetcache方法缓存方案

jetcache方法缓存 我们可以给每个方法配置缓存方案 JetCache 是一个基于 Java 的缓存库,支持多种缓存方案和缓存策略,主要用于提升应用程序的性能和响应速度。它提供了多种缓存模式和特性,可以根据需求选择合适的缓存方案。 JetCache 的主…

vmware虚拟机安装ubuntu20.04

1.下载Ubuntu 20.04的ISO镜像 Index of /ubuntu-releases/ 2.安装VMware 3.创建新的虚拟机:打开VMware,选择“创建新的虚拟机”或通过文件菜单新建虚拟机。 4.选择典型,然点点击下一步: 5.选择稍后安装操作系统: 6.…

空间复杂度 线性表,顺序表尾插。

各位少年,大家好,我是那一脸阳光,本次分享的主题是时间复杂度和空间复杂度 还有顺序表文章讲解和分享,如有不对可以评论区指导。 时间复杂度例题 // 计算斐波那契递归Fib的时间复杂度? long long Fib(size_t N){if(N…

挑战Midjourney,融合近百个SD大模型的通用模型AlbedoBase XL

在SDXL的通用模型中,DreamShaperXL和juggernautXL这2款大模型一直都深受广大AI绘画者的喜爱,不可否认,这2款通用模型在很多方面表现都相当出色。 今天再给大家介绍一款基于SDXL的通用大模型:AlbedoBase XL,作者的目标…

5.什么是C语言

什么是 C 语言? C语言是一种用于和计算机交流的高级语言, 它既具有高级语言的特点,又具有汇编语言的特点 非常接近自然语言程序的执行效率非常高 C语言是所有编程语言中的经典,很多高级语言都是从C语言中衍生出来的, 例如:C、C#、Object-C、…

帕金森患者饮食指南:科学调养,呵护健康

🌼在医学的广阔领域中,帕金森病作为一种慢性神经系统疾病,除了需要专业的医疗治疗外,日常饮食的调养也显得尤为重要。 今天,就为大家带来一份专为帕金森患者打造的饮食建议,希望能为大家的健康调养提供一些…

ArkUI部分案例笔记——padding,space

基础的构建 组件分类: 容器组件:像Column,Row这种组件就是容器组件一般就来控制行和列的就是容器组件 基础组件:Text(文本组件),像这种用来有一定功能的就是基础组件 注意:一个build只能有一个根容器组件…

小i机器人:总负债5.31亿,员工数量在减少,银行借款在增加,净利润已下降-362.68%

小i机器人:总负债5.31亿,员工数量在减少,银行借款在增加,总收入在增长,净利润已下降-362.68% 来源:猛兽财经 作者:猛兽财经 目录 一、小i机器人公司介绍 二、小i机器人过去20年的发展历程和取得的成就 三、小i机器人的产品和技术架构 四、小i机器人…

saas产品运营案例 | 联盟营销计划如何帮助企业提高销售额?

在当今数字化时代,SaaS(软件即服务)产品已成为企业提高效率、降低成本的重要工具。然而,面对激烈的市场竞争,如何有效地推广SaaS产品、提高销售额,成为许多企业面临的挑战。林叔将以ClickFunnels为例&#…