搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
AllinToyou
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
开源软件:引领技术创新、商业模式与安全的融合_开源软件在各行业的应用案例1.互联网行业:
2
VsCode配置c/c++环境_vscode配置c++环境
3
创建react项目_新建react嘤嘤
4
postgresql数据库允许某些网段内远程访问_pg数据库设置访问连接网段区间
5
Open AI宫斗始末:董事会开除CEO再复职,这场闹剧终于结束了!_奥尔特曼最近被开除后旋又复职
6
托管c++与c#的转化四--数组与类_托管c++ 数组
7
【SparkSQL】DSL风格的API函数和SQL函数_sparksql dsl
8
PyInstaller库—Python第三方库—程序打包_pyinstaller打包第三方库文件
9
浏览器前进与后退的秘密——栈 (栈的理解与实现)
10
es根据条件删除数据_es 按条件delete数据
当前位置:
article
> 正文
【实用算法教学】——Apriori算法,教你使用亲和性分析方法推荐电影_用亲和性分析推荐电影
作者:AllinToyou | 2024-06-06 14:32:42
赞
踩
用亲和性分析推荐电影
本文学习如何用亲和性分析方法找出在什么情况下两个对象经常一起出现。通俗来讲,这也
叫“购物篮分析”,因为曾有人用它找出哪些商品经常一起出售。
前一篇文章关注的对象为球队,并用特征描述球队。本文所用到的电影评分数据有所不同,我们
所关注的对象(电影)埋在数据中。本章数据挖掘任务的目标是找出对象同时出现的情况,也就
是寻找用户同时喜欢几部电影的情况。
本文主要涉及以下几个概念。
亲和性分析
用
Apriori
算法挖掘关联特征
电影推荐
数据稀疏问题
一 亲和性分析
亲和性分析用来找出两个对象共同出现的情况。而前文,我们关注的是同种对象之间的相似度。亲和性分析所用的数据通常为类似于交易信息的数据。从直观上来看,这些数据就像是商店的交易数据——
从中能看出哪些商品是顾客一起购买的。
然而,亲和性分析方法的应用场景有很多,比如:
欺诈检测
顾客区分
软件优化
产品推荐
亲和性分析比分类更具探索性,因为通常我们无法拿到像在很多分类任务中所用的那样完整
的数据集。例如,在电影推荐任务中,我们拿到的是不同用户对不同电影的评价。但是,每个用
户不可能评价过所有电影,这就给亲和性分析带来一个不容忽视的大难题。如果用户没有评价过
一部电影,是因为他们不喜欢这部电影(据此就不推荐给他们),还是因为他们出于别的原因还
没有评价?
本文不对上述问题做出解答,但是我们要思考数据集中类似这样的潜在问题该怎么解决。这
些思考有助于提升推荐算法的准确性。
二 亲和性分析算法
基础的亲和性分析算法,尝试了所有可能的规则组合,计算了每条规则的置信度和支持度,并根据这两个标准进行排序,选取最佳规则。
然而,这个方法效率不高。即使是再不起眼的小卖铺出售的商品也达上百种之多,网店更是有成千上万种 商品(甚至几百万种!)。如果规则生成方法
过于简单,计算这些规则所需要的时间复杂度将呈指数级增长。随着商品数量的增加,计算所有规则所需的时间增长得很快。
。数据集有
5
个特征,可能的规则就有
31
条;有
10
个特征,可能的规则就有1023
条;仅仅有
100
个特征,规则数就能达到
30
位数字。即使计算能力大幅提升也未必能赶上在线商品的增长速度。因此,与其跟计算机过不去,不如寻找更加聪明的算法。
Apriori
算法可以说是经典的亲和性分析算法。它只从数据集中频繁出现的商品中选取共同出现的商品组成频繁项集
(
frequent itemset
),避免了上述复杂度呈指数级增长的问题。一旦找到频繁项集,生成关联规则就很容易了。
Apriori
算法背后的原理简洁却不失巧妙。首先,确保了规则在数据集中有足够的
支持度
。 Apriori算法的一个重要参数就是最小支持度。比如,要生成包含商品
A
、
B
的频繁项集(
A, B
),要求支持度至少为30
,那么
A
和
B
都必须至少在数据集中出现
30
次。更大的频繁项集也要遵守该项约定,比如要生成频繁项集(A, B, C, D
),那么子集
(A, B, C)
必须是频繁项集(当然
D
自己也 要满足最小支持度标准)。
生成
频繁项集
后,将不再考虑其他可能的却不够频繁的项集(这样的集合有很多),从而大
大减少测试新规则所需的时间。
其他亲和性分析算法有
Eclat
和
频繁项集挖掘算法
(
FP-growth
)。从数据挖掘角度看,这些
算法比起基础的
Apriori
算法有很多改进,性能也有进一步提升。接下来,先来看一下最基础的
Apriori
算法。
三 选择参数
挖掘亲和性分析所用的关联规则之前,我们先用Apriori算法生成频繁项集。接着,通过检测频繁项集中前提和结论的组合,生成关联规则(例如,如果用户喜欢电影X,那么他很可能喜欢电影Y)。
第一个阶段,需要为
Apriori
算法指定一个项集要成为频繁项集所需的最小支持度。任何小于最小支持度的项集将不再考虑。如果最小支持度值过小,Apriori
算法要检测大量的项集,会拖慢的运行速度;最小支持度值过大的话,则只有很少的频繁项集。
找出频繁项集后,在第二个阶段,根据置信度选取关联规则。可以设定最小置信度,返回一
部分规则,或者返回所有规则,让用户自己选。
本文,我们设定最小置信度,只返回高于它的规则。置信度过低将会导致规则支持度高,正确率低;置信度过高,导致正确率高,但是返回的规则少。
四 电影推荐问题
产品推荐技术是门大生意。网店经常用它向潜在用户推荐他们可能购买的产品。好的推荐算法能带来更高的销售业绩。每年有几百万乃至几千万用户进行网购,向他们推荐更多的商品,潜在收益着实可观。
产品推荐问题被人们研究了多年,但它一直不温不火,直到
2007
年到
2009
年间,
Netflix
公司推出数据建模大赛,并设立Netflix Prize
奖项之后,才得到迅猛发展。该竞赛意在寻找比
Netflix公司所使用的预测用户为电影打分的系统更准确的解决方案。最后获奖队伍以比现有系统高10个百分点的优势胜出。虽然这个改进看起来不是很大,但是Netflix
公司却能借助它实现更精准的电影推荐服务,从而多赚上百万美元。
六 获取数据集
自打
Netflix Prize
奖项设立以来,美国明尼苏达大学的
Grouplens
研究团队公开了一系列用于
测试推荐算法的数据集。其中,就包括几个大小不同的电影评分数据集,分别有
10
万、
100
万和
1000
万条电影评分数据。
数据集下载地址为
http://grouplens.org/datasets/movielens/
。本文将使用包含
100
万条数据的
MovieLens
数据集。下载数据集,解压到你的
Data
文件夹。启动
IPython Notebook
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/AllinToyou/article/detail/681295
推荐阅读
article
uni
app
开发
的多端影视
APP
,对接的
苹果
CMS
_
苹果
cms对接
app
...
苹果
10
CMS
影视
APP
对接,uni
app
开发
的多终端影视
APP
会员中心也使用
苹果
cms的数据。可以打包到多个端的代码。...
赞
踩
article
NVM
-切换多个
node
版本
...
使用场景:同时做几个不同的项目,其中Angular(2.0&4.0)项目需要用老的
node
版本
来支持,但新的vue项目需...
赞
踩
article
GoogLeNet
(
InceptionV3
)...
计算量:512×1×3×128×W×H+128×3×1×128×W×H+128×1×3×128×W×H+128×3×1×...
赞
踩
article
单链
表
逆置
的四种方法
_
单链
表的
逆置
操作...
1. 三个辅助指针变量p 向前推进 s缓存p pre缓存s没有数据节点 或者 只有一个 不需要
逆置
void Sing...
赞
踩
article
Pytorch
星号
*放在
tensor
前
的
作用...
在这种情况下会将这个多维张量解包成一个张量序列,其中每个元素都是一个更低维度
的
张量。这个操作主要是为了将一个多维张量转换...
赞
踩
article
硬件
虚拟化
...
1.简介
虚拟化
——1960年被提出。在计算机科学中,硬件
虚拟化
是一种对计算机或操作系统的虚拟。
虚拟化
对用户隐藏了真实的...
赞
踩
article
2022
苹果
CMS
全新二开影视源码
App
源码
完整版
_
thinkphp5.1
苹果
cms
...
程序采用的前后端分离、且后端所用的是最主流的
苹果
cms
框架,是基于thinkphp和layui的多功能开源免费内容管理系...
赞
踩
article
PyTorch
实现的
Inception
-
v3
_pytorch实现
inception
v3
...
PyTorch
实现的
Inception
-
v3
PyTorch
: https://github.com/shanglianl...
赞
踩
article
Web
自动化
-
Selenium
_
selenium
web
自动化
csdn
...
Selenium
是一套 Web网站 的程序
自动化
操作 解决方案。通过它,我们可以写出
自动化
程序,像人一样在浏览器里操作...
赞
踩
article
从
Hugging
Face
下载
数据测试
whisper
、
fast
_
whisper
耗时_
fast
whis...
使用
fast
whisper
。使用
whisper
测试。_
fast
whisper
fast
whisper
...
赞
踩
article
瑞_23种
设计
模式
_
代理
模式
_
java23
种
设计
模式
之
代理
模式
...
本文章为瑞_系列专栏之《23种
设计
模式
》的
代理
模式
篇。在
代理
模式
(Proxy Pattern)中,一个类代表另一个类的功...
赞
踩
article
树莓
派
安装系统_
树莓
派
系统...
在搜索引擎中搜索
树莓
派
(不要用百度,建议使用必应的国际版进行搜索),我这里直接放上。
树莓
派
一个,TF卡(4GB以上)一个...
赞
踩
article
数据结构
--
时间
复杂度
计算和空间
复杂度
计算篇_c语言
数据结构
时间
复杂度
的
执行
次数
怎么算...
定义:所有语句频度之和,记为T(n)。一个语句频度是指该语句在算法中被重复
执行
的
次数
。T(n)是算法中问题规模的函数,时...
赞
踩
article
数据结构
:
平衡
二叉树
(
时间
复杂度
O(N)解法)_
平衡
二叉树
各项操作
时间
复杂度
...
平衡
二叉树
:一个
二叉树
每个节点 的左右两个子树的高度差的绝对值不超过1
时间
复杂度
O(N^2)/** * Definiti...
赞
踩
article
SpringBoot
整合
kafka
...
【代码】
SpringBoot
整合
kafka
。
SpringBoot
整合
kafka
...
赞
踩
article
大
模型
加持下
,
AI
招聘
的
“下一站”_
大
模型
简历
筛选...
而有了
AI
之后
,
可以很
大
程度上减少人力资源
的
事务性工作
,
让他们真正回归到
招聘
管理
的
本质
,
将焦点关注到人才本身
,
更高效
的
识...
赞
踩
article
招聘
行业迎来新的转折点:
人工智能
爆火_某科技公司使用ai
筛选
工具
,
候选人
匹配
速度提升
了
40%
,
招聘
周...
作为HR,你可能常听说
人工智能
技术可以使
招聘
工作变得更快速便捷,还能降低
招聘
成本。那么
人工智能
技术真的对
招聘
有奇效吗?它...
赞
踩
article
单链
表
的
逆置
(带头
结点
)_
单链
表
中头
结点
c
程序...
单链
表
逆置
方法1 使用三个指针void ReverseList(LinkList head){ assert(head ...
赞
踩
article
LangChain
之内存
记忆
(
Memory
)_
langchainmemory
...
ConversationSummary
Memory
这种类型的
记忆
随着时间的推移创建对话的摘要。对话摘要
记忆
随着对话的发生...
赞
踩
article
Rust
相
比
Go
的
优劣势
_
rust
交叉编译
比
go复杂那么多...
Rust
相
比
Go
的
优势:
Rust
可以做内联汇编,
Go
不行(
Rust
的
SIMD库也在开发中,这种事情你不会用
Go
做)。Ru...
赞
踩
相关标签
uni-app
Angular
nvm
node版本管理
深度学习
人工智能
p2p
网络协议
网络
pytorch
python
java
jvm
开发语言
Inception-v3
selenium
测试工具
whisper
设计模式
代理模式
树莓派
c语言
数据结构
平衡二叉树