Python 全栈体系【四阶】(二十二)

第五章 深度学习

二、推荐系统

3. 关联规则

3.1 Apriori

“啤酒与尿布”的故事产生于 20 世纪 90 年代的美国沃尔玛超市。沃尔玛的超市管理人员分析销售数据时发现了一个令人难于理解的现象:在某些特定的情况下,“啤酒”与“尿布”两件看上去毫无关系的商品会经常出现在同一个购物篮中,这种独特的销售现象引起了管理人员的注意,经过后续调查发现。原来,美国的妇女通常在家照顾孩子,所以她们经常会嘱咐丈夫在下班回家的路上为孩子买尿布,而丈夫在买尿布的同时又会顺手购买自己爱喝的啤酒。这样就会出现啤酒与尿布这两件看上去不相干的商品经常会出现在同一个购物篮的现象。

这个发现为商家带来了大量的利润,但是如何从浩如烟海却又杂乱无章的数据中,发现啤酒和尿布销售之间的联系呢?

3.1.1 Apriori 算法产生

1993 年美国学者 Agrawal 提出通过分析购物篮中的商品集合,从而找出商品之间关联关系的关联算法,并根据商品之间的关系,找出客户的购买行为。Agrawal 从数学及计算机算法角度提出了商品关联关系的计算方法——Apriori 算法。

沃尔玛从上个世纪 90 年代尝试将 Aprior 算法引入到 POS 机数据分析中,并获得了成功,于是产生了“啤酒与尿布”的故事。

3.1.2 如何寻找?

在历史购物记录中,一些商品总是在一起购买。但人看上去不是那么的直观的,而是隐蔽的。让计算机做这事,设计算法让计算机自动去找,找到这样的模式(规律)。

目标:寻找那些总是一起出现商品。
mahout 实战—>机器学习实战

《mahout 实战》与《机器学习实战》一起购买的记录数占所有商品记录总数的比例——支持度(整体)

买了《mahout 实战》与《机器学习实战》一起购买的记录数占所有购买《mahout 实战》记录数的比例——置信度(局部)

需要达到一定的阈值

支持度、置信度越大,商品出现一起购买的次数就越多,可信度就越大。

支持度:在所有的商品记录中有 2%量是购买《mahout 实战》与《机器学习实战》

置信度:买《mahout 实战》的顾客中有 60%的顾客购买了《机器学习实战》

作用:找到商品购买记录中反复一起出现的商品,能帮助营销人员做更好的策略,帮助顾客方便购买。

策略:
1、同时购买的商品放一起
2、同时购买的商品放两端

支持度、置信度转化为数学语言进行计算:
A 表示《mahout 实战》B 表示《机器学习实战》

support(A->B) = P(AB) (《mahout 实战》和《机器学习实战》一起买占总的购买记录的比例)

confidence(A->B) = P(B|A) (购买了《mahout 实战》后,买《机器学习实战》占的比例)

项集:项的集合称为项集,即商品的组合。
k 项集:k 件商品的组合,不关心商品件数,仅商品的种类。
项集频率:商品的购买记录数,简称为项集频率,支持度计数。
注意,定义项集的支持度有时称为相对支持度,而出现的频率称为绝对支持度。
频繁项集:如果项集的相对支持度满足给定的最小支持度阈值,则该项集是频繁项集。
强关联规则:满足给定支持度和置信度阈值的关联规则。
请添加图片描述

3.1.3 明确问题

要找总是在一起出现的商品组合
提出衡量标准支持度、置信度(达到一定的阈值)
给出支持度、置信度直观计算方法
在计算方法中起决定因素的是频繁项集
由频繁项集轻松找到强关联规则

找关联规则 --> 找频繁项集

步骤:

  • 找出所有的频繁项集;这个项集出现的次数至少与要求的最小计数一样。如在 100 次购买记录中,至少一起出现。
  • 由频繁项集产生强关联规则;这些关联规则满足最小支持度与最小置信度。

先验性质:频繁项集的所有非空子集也一定是频繁的。
逆否命题:若一个项集是非频繁的,则它的任何超集也是非频繁的。

请添加图片描述
请添加图片描述

3.1.4 挑战
  • 多次数据库扫描

  • 巨大数量的候补项集

  • 繁琐的支持度计算

3.1.5 改善 Apriori: 基本想法
  • 减少扫描数据库的次数
  • 减少候选项集的数量
  • 简化候选项集的支持度计算
    请添加图片描述
3.1.6 代码

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述

3.2 FPGrowth

相比 Apriori 算法需要多次扫描数据库,FPGrowth 只需要对数据库
扫描 2 次。

第 1 次扫描获得单个项目的频率,去掉不满足支持度要求的项,并对剩下的项排序。

第 2 次扫描建立一颗 FP-Tree 树。

3.2.1 例子
IDItems
1A,E,F,G
2A,F,G
3A,B,E,F,G
4E,F,G

{A,F,G}的支持度数为 3,支持度为 3/4。
{F,G}的支持度数为 4,支持度为 4/4。
{A}的支持度数为 3,支持度为 3/4。

{F,G}=>{A}的置信度为:{A,F,G}的支持度数除以{F,G}的支持度数,即 3/4

{A}=>{F,G}的置信度为:{A,F,G}的支持度数除以{A}的支持度数,即 3/3 4

挖掘强关联规则是在满足一定支持度的情况下寻找置信度达到阈值的所有商品组合。

3.2.2 规律

我们要找出哪些总是一起购买的商品,比如人们买薯片的时候通
常也会买鸡蛋,则[薯片,鸡蛋]就是一条频繁模式(规律)。

第一步:扫描数据库,每项商品按频数递减排序,删除频数小于最小支持度 MinSup 的商品。 (第一次扫描数据库)
薯片:7 鸡蛋:7 面包:7 牛奶:6 啤酒:4 (这里我们令 MinSup=4)以上结果就是频繁 1 项集,记为 F1。
F1 中排序 薯片:7 鸡蛋:7 面包:7 牛奶:6 啤酒:4

第二步:对于每一条购买记录,按照 F1 中的顺序重新排序。

IDItems
1薯片,鸡蛋,面包,牛奶
2薯片,鸡蛋,啤酒
3面包,牛奶,啤酒
4薯片,鸡蛋,面包,牛奶,啤酒
5薯片,鸡蛋,面包
6鸡蛋,面包,啤酒
7薯片,面包,牛奶
8薯片,鸡蛋,面包,牛奶
9薯片,鸡蛋,牛奶

第三步:把第二步得到的各条记录插入到 FP-Tree 中。

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

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

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

相关文章

算法:完全背包问题dp

文章目录 一、完全背包问题的特征二、定义状态三、状态转移四、降维优化五、参考例题5.1、Acwing:3.完全背包问题5.2、Acwing:900. 整数划分 一、完全背包问题的特征 完全背包问题是动态规划中的一种经典问题,它的主要特征可以总结如下&…

互联网需要做安全防护吗?

互联网需要做安全防护,因为网络攻击的风险随时存在。一旦遭受大规模攻击,企业很可能会受到严重影响,甚至会造成巨大的经济损失和品牌声誉受损。因此,建议企业在安全防护方面做好以下几点: 加强网络安全意识教育&#x…

Echarts折线图X轴坐标点显示不全问题解决方案

在前端开发中,Echarts是一个广泛使用的可视化库,它允许我们轻松创建各种复杂的图表,包括折线图、柱状图、饼图等。然而,在使用Echarts创建折线图时,有时会遇到X轴坐标点显示不全的问题。这不仅影响了图表的视觉效果&am…

基于机器学习的信用卡办卡意愿模型预测项目

基于机器学习的信用卡办卡意愿模型预测项目 在金融领域,了解客户的信用卡办卡意愿对于银行和金融机构至关重要。借助机器学习技术,我们可以根据客户的历史数据和行为模式预测其是否有办理信用卡的倾向。本项目通过Python中的机器学习库,构建…

小马识途营销顾问谈如何做好网络口碑营销?

俗话说酒香不怕巷子深,酒香自然有一定的优势,但小马识途营销顾问认为,面对众多的产品,稀有性并不那么容易。所以赢得自己的品牌口碑,获取客户的信任度,才能让企业在市场竞争中长期立于不败之地。具体如何赢…

Echarts多曲线数值与Y周刻度不符合、Echarts tooltip文字设置左对齐、Echarts折线图背景区间色自定义

Echarts多曲线数值与Y周刻度不符合: 问题描述: 在展示多曲线图表的时候,发现图表曲线数值与Y轴刻度对应不上 问题解决方式: 查看下Echarts的配置option中的seriess属性(多曲线的时候这个属性应该是一个数组),然后查看数组中的每个…

STM32-寄存器映射

一、寄存器分类 寄存器是单片机内部一种特殊的内存,可以实现对单片机各个功能的控制 简单来说:寄存器就是单片机内部的控制机构 二、寄存器映射 1、寄存器是特殊的存储器,给寄存器地址命名的过程,就叫寄存器映射 寄存器描述…

欧冶云商绿色低碳供应链公共服务平台揭牌! 嘉兴印发 “链长+链主”制工作方案 | 产业互联网观察第171期

欧冶云商绿色低碳供应链公共服务平台正式揭牌! 4月3日下午,2024年绿色低碳供应链建设大会在中国宝武碳中和产业园召开,本次大会以“链聚绿色新动能,赋能新质生产力”为主题,大会举行了“绿色低碳供应链公共服务平台”启动仪式。 …

【御控物联】 JavaScript JSON结构转换(21):数组To对象——综合应用

文章目录 一、JSON结构转换是什么?二、术语解释三、案例之《JSON数组 To JSON对象》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

rsync实时同步(上行同步)

目录 一、实现实时同步 1. 定期同步的不足 2. 实时同步的优点 3. Linux内核的inotify机制 4. 发起端配置rsyncinotify 4.1 修改rsync源服务器配置文件 4.2 调整inotify内核参数 4.3 安装inotify-tools 4.4 在另一个终端编写触发式同步脚本 4.5 验证 二、使用rsync实现…

CentOS部署Apache Superset大数据可视化BI分析工具并实现无公网IP远程访问

文章目录 前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网穿透,实现公网访问3. 设置固定连接公网地址 前言 Superset是一款由中国知名科技公司开源的“现代化的…

PCA算法(Principal Component Analysis)揭秘

经典PCA算法 PCA算法的应用包括降维、有损数据压缩、特征抽取、数据可视化等。目前PCA算法有两个通用定义,能殊途同归,得到相同的结果。一方面,我们可以用正交投影来定义PCA,即将数据投影到更低维的线性子空间,也被称…