机器学习-关联规则算法Apriori及编码实现

一、前置知识

       在了解关联规则之前首先了解一些相关概念,包含项集、频繁项集、支持度、置信度、提升度等基础概念。假如我们在经营一家商品超市,顾客进行购买商品的订单信息如下:

TID  Items
T1  {耳机,背包}
T2{背包,手机手表,鞋子}        
T3 {耳机,手机手表,相机}
T4 {背包,耳机,手机手表}
T5  {背包,耳机,手机,相机}

-- TID是交易编号,表示一次购物交易的唯一标识,即用户购买的一次记录。

-- Items表示一次购买记录中顾客购买的商品如{耳机,背包}

1.项集

       项的集合,包含k个项的项集称为k项集,例如上面 {耳机,背包} 是2项集。

2.支持度

       表示物品A物品B同时出现的次数总的交易次数中的占比,例如 A表示手机,B表示手表,手机和手表同时出现的次数是3次,总的交易记录是5次,支持度=3/5=60%。

公式如下:

support(X→Y)=|X交Y|/N,表示物品集X和Y同时出现的次数占总记录数的比例。

3.置信度

       表示物品A物品B同时出现的总次数 物品A出现的总次数,例如手机和手表同时出现的次数是3次,手机出现的总次数是4次,则置信度=3/4=75%。

公式如下:

confidence(X→Y)=|X交Y|/|X|,集合X与集合Y同时出现的总次数/集合X出现的记录数。

4.提升度

       就是 置信度 除以 支持度。即 (3/4)/(3/5)=5/4 > 1 。

公式如下:

lift(X→Y)=confidence(X→Y)/P(Y),表示含有X的条件下,同时含有Y的概率,与Y总体发生的概率之比。

说明:

      提升度越高,说明置信度和支持度越好,说明物品之间的关联性也比较强。

5、频繁项集

       满足规定的最小支持度的项集。 例如:给定支持度是>50%,耳机和相机的支持度为2/5=40%,不满足规定的最小支持度即 <50%,而手机与手表的支持度是 3/5=60%,满足规定的最小支持度即>50%,因此 T2{背包,手机,手表,鞋子} 、T3 {耳机,手机,手表,相机} T4{背包,耳机,手机,手表} 是频繁项集。

       例如,如果在一个超市的销售数据中,发现葡萄酒、尿布和豆奶这三个商品经常一起被购买,
那么{葡萄酒,尿布,豆奶}就是一个频繁项集。

二、关联规则

       某超市的管理者发现:纸尿裤和啤酒放通常会出现在一个订单里,经过数据分析发现,买尿不湿的家长以父亲居多,如果他们在买尿不湿的同时恰好看到了啤酒,就会有很大的概率购买,从而就能提高啤酒的销售量。根据纸尿裤与啤酒的关联规则(买尿不湿的家长以父亲居多),超市经营者可以将这两件商品放在一起出售,并且还可以通过推荐系统向购买纸尿裤的顾客推荐啤酒,这样可以提高超市的效益。
       因此关联规则是分析挖掘购物篮中的购买行为。通过分析购物篮中不同商品之间的关联关系,可以揭示商品之间的搭配规律,为商家提供定制化的推荐策略,优化产品摆放和促销活动,以提高销售额和顾客满意度。
       关联规则分析也被称为购物篮分析,用于分析数据集各项之间的关联关系。
       关联规则挖掘是一种用于发现数据集中的频繁项集关联规则的数据挖掘技术。它可以帮助我们找到数据集中的相关性,从而可以用于市场篮子分析、推荐系统等领域。

三、数据挖掘算法

       频繁项集的挖掘通常使用数据挖掘算法,如Apriori算法、FPTree(Frequent Pattern Tree)、GSP、CBA等算法,后几种算法都是基于Apriori算法和思想产生,这些可以帮助我们有效地从大规模数据集中找出频繁项集,为商业决策提供支持。现在一般很少直接用Apriori算法来挖掘数据,但理解Apriori算法是理解其它相关算法的前提。

1、学习Apriori算法前提

假如我们在经营一家商品种类并不多的杂货店,我们对哪些经常在一起被购买的商品非常感兴趣。我们只有四种商品:商品0、商品1、商品2、商品3。那么所有可能被一起购买的商品组合都有哪些?这些商品组合可能著有一种商品,比如商品0,也可能包括两种、三种或所有四种商品。但我们不关心某人买了两件商品0以及四件商品2的情况,只关心他购买了一种或多种商品。


 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外包干了5天,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

JAVA面试大全之基础篇

目录 1、语法基础 1.1、面向对象特性?​​​​​​​ 1.2、a = a + b 与 a += b 的区别

发掘服务器硬件优势:怎样有效管理、维护、更新

1. 概述 服务器是许多信息技术的核心&#xff0c;通过提供计算和存储资源&#xff0c;以用于企业和机构的数据处理和存储。服务器硬件也是服务器的核心组成部分&#xff0c;在服务器架构和配置中扮演着重要角色。 服务器硬件的优势&#xff1a; - 提供更高的性能和处理能力。…

meanshift论文学习

1. abstract 2. 理论解读 目标函数 然后对(11)求导&#xff0c;求解x&#xff0c;x实际就是求解当图像位置的值&#xff0c;求导之后表示为&#xff1a; 进一步整理得&#xff1a; 上式第二项即为meanshift 进一步整理为 上式表明了均值漂移与核函数之间的关系。 3. 缺点…

AI预测福彩3D第22弹【2024年3月31日预测--第4套算法重新开始计算第8次测试】

昨天周六单位事情比较多&#xff0c;忙了一天&#xff0c;回来比较晚了&#xff0c;实在没有闲暇时间去做预测了&#xff0c;先给各位道个歉。今天上午比较忙&#xff0c;下午有点空&#xff0c;趁这个时间赶紧把预测的结果发出来供大家参考。 今天继续对第4套算法进行测试&…

阿里云的服务码获取的申请按钮怎么是灰色的

您好&#xff0c;您目前已经进入阿里云备案工单服务渠道&#xff0c;很高兴为您服务。工单渠道的服务响应时效为0-90分钟&#xff0c; 如您所遇到的问题比较着急&#xff0c;您可以通过阿里云官网右上角联系我们中的“在线服务”进行咨询&#xff0c;我们会第一时间为您服务。感…

CentOS7 磁盘相关的命令及磁盘重新调整分配

umount 在CentOS 7中&#xff0c;umount是一个常用的命令&#xff0c;用于卸载文件系统。以下是一些常用的umount命令&#xff1a; 卸载指定的文件系统&#xff1a; umount /dev/sdXN 其中&#xff0c;/dev/sdXN是你想要卸载的分区。例如&#xff0c;/dev/sda1。 卸载并…

【MySQL】聊聊全表查询会不会把数据库内存打爆

是实际的开发中&#xff0c;可能因为误操作。可能会执行一个全表扫描的SQL&#xff0c;如果这个表的数据比较大&#xff0c;比如10G&#xff0c;但是数据库内存8G &#xff0c;会不会将这个数据库内存打爆。带着这个问题&#xff0c;我们来深入学习下。其实主要就是一个server层…

Python数据分析七

一、Python之定义列表 当我们在Python中定义一个列表时&#xff0c;可以使用方括号 [] 和逗号 , 来将多个元素放在一起。以下是一个示例代码&#xff1a; # 定义一个空列表 my_list []# 定义一个带有初始元素的列表 my_list [1, 2, 3, 4, 5]# 列表中可以包含不同类型的数据…

每日一题 第五十六期 洛谷 k倍区间

[蓝桥杯 2017 省 B] k 倍区间 题目描述 给定一个长度为 N N N 的数列&#xff0c; A 1 , A 2 , ⋯ A N A_1,A_2, \cdots A_N A1​,A2​,⋯AN​&#xff0c;如果其中一段连续的子序列 A i , A i 1 , ⋯ A j ( i ≤ j ) A_i,A_{i1}, \cdots A_j(i \le j) Ai​,Ai1​,⋯Aj​(…

python-pytorch 常用api打卡0.1.330

python-pytorch 常用api打卡0.1.100 torch.nntorch.nn.Flattentorch.nn.Lineartorch.nn.ReLUtorch.nn Modulemodel.train(True) Tensor操作argmax函数 torch.nn torch.nn.Flatten 维度计数是从0开始m nn.Flatten()默认从1维开始合并合并的维度值&#xff0c;就是这些维度的乘…

python学习20:python中的函数知识点

python中的函数知识点 1.函数中的返回值 什么是函数的返回值&#xff1f;&#xff1a;函数在执行的时候&#xff0c;返回给调用者的结果返回值的应用语法&#xff1a;使用关键词return来返回结果注意&#xff1a;函数体在遇到return后就结束了&#xff0c;所以写在return后的…

KUKA机器人调整示教器灵敏度(校屏)

KUKA机器人KRC4的示教器升级后&#xff0c;示教器屏幕由之前的电阻屏改为电容屏&#xff0c;不仅在外观上有所变化&#xff0c;屏幕校准的方法也有所不同。通过以下方法分别对新旧两款示教器进行屏幕校正&#xff0c;调整示教器屏幕灵敏度。 对新款示教器而言&#xff1a; 一…

Java -- 类加载机制

类加载机制 使用某个类时&#xff0c;如果该类的class文件没有加载到内存时&#xff0c;则系统会通过以下三个步骤来对该类进行初始化.   类的加载&#xff08;Load&#xff09; → 2.类的连接&#xff08;Link&#xff09; → 3.类的初始化&#xff08;Initialize&#xf…

深入理解 MySQL 索引:优化查询性能的关键

在数据库领域中&#xff0c;索引是优化查询性能的关键之一。MySQL 作为一个广泛使用的关系型数据库&#xff0c;其索引的设计和使用对于提高查询效率和加速数据检索非常重要。在本文中&#xff0c;我们将深入探讨 MySQL 索引的原理、类型以及如何在实际应用中优化查询性能。 1…

Python快速入门系列-5(Python标准库与常用模块)

第五章:Python标准库与常用模块 5.1 常用内置模块介绍5.1.1 os模块5.1.2 datetime模块5.1.3 random模块5.2 文件操作与IO处理5.2.1 文件读写5.2.2 文件复制与移动5.2.3 文件遍历与递归操作5.3 正则表达式5.3.1 匹配字符串5.3.2 替换字符串5.3.3 高级匹配结语Python作为一门强大…

工厂方法模式与抽象工厂模式的深度对比

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自&#xff1a;设计模式深度解析&#xff1a;工厂方法模式与抽象工厂模式的深…

深度学习论文中结构A+B效果很好,怎么讲故事写成一篇优质的论文?

牛牛牛肉饭&#xff1a; AB的故事不一定好讲 但是可以包装成&#xff1a;A族 B族有效成分 C杂质 D微量杂质 我们创新性的提出了全新的算法Pipeline&#xff0c;涵盖ABCD&#xff0c;极大的改进了该领域的算法范式&#xff0c;除此之外我们系统分析了 A以及其相似算法对 新…

P23—P25:标识符和关键字

标识符 什么是标识符&#xff1f; 在java源程序中&#xff0c;程序员有权自己命名的单词都是标识符在EditPlus编译器中&#xff0c;表示符以黑色高亮字体显示 标识符可以标识什么元素&#xff1f; 类名方法名变量名接口名常量名 … 标识符的命名规则&#xff1a; 只能由**数…

详解 Java多线程带来的的风险-线程安全

目录 一、什么是线程安全&#xff1f; 二、线程不安全的原因 1、线程调度是随机的 2、修改共享数据&#xff1a;多个线程修改同⼀个变量 3、原⼦性 ​编辑 &#xff08;1&#xff09;什么是原⼦性 &#xff08;2&#xff09;⼀条 java 语句不⼀定是原⼦的&#xff0c;也不⼀定…