[学习笔记]数据挖掘-week8
推荐算法
学习视频:80240372X 数据挖掘:理论与算法(自主模式)
大致分为两类算法:基于内容推荐,基于协同过滤推荐。以买书为例,基于内容的推荐算法会根据该书的内容,作者等信息推荐其他书籍。基于协同过滤的推荐算法会推荐我“朋友”所认为好的书。
TF-IDF
t f ( t , d ) = n t , d ∑ k n k , d i d f ( t , D ) = log ∣ D ∣ ∣ d ∈ D : t ∈ d ∣ \begin{aligned} & tf(t,d) = \frac{n_{t,d}}{\sum_k n_{k,d}}\\ & idf(t,D) = \log\frac{|D|}{|d\in D:t\in d|} \end{aligned} tf(t,d)=∑knk,dnt,didf(t,D)=log∣d∈D:t∈d∣∣D∣
d为单个文档,D为所有文档,t为目标词汇,k为文档中词汇,idf的分母为包含特定搜索词的文档的个数。
t f − i d f ( t , d , D ) = t f ( t , d ) × i d f ( t , D ) \begin{aligned} tf-idf(t,d,D) = tf(t,d)\times idf(t,D) \end{aligned} tf−idf(t,d,D)=tf(t,d)×idf(t,D)
实际操作过程中会将所有文档整合成一个文档矩阵,行代表某个词汇,列代表某个文档,矩阵中的元素表示某个词汇在某个文档中出现的次数。
Vector Space Model
文档用向量表示后,即可用向量间的计算来查看文档的相似度。
s i m ( p , q ) = c o s ( θ ) = p ⋅ q ∣ p ∣ ⋅ ∣ q ∣ \begin{aligned} sim(p,q) = cos(\theta) = \frac{p\cdot q}{|p|\cdot|q|} \end{aligned} sim(p,q)=cos(θ)=∣p∣⋅∣q∣p⋅q
但是,由于近义词与多义词的问题,导致难以操作。
Collaborative Filtering
协同过滤算法在最开始时,会有一个打分矩阵,每一行为一个用户,每一列为某件商品,矩阵元素为该用户对商品的评分。
I1 | I2 | I3 | |
---|---|---|---|
U1 | 0 | 2 | |
U2 | 3 | 45 |
计算两个用户之间的相关性:
W u , v = ∑ i ∈ I ( r u , i − r ˉ u ) ( r v , i − r ˉ v ) ∑ i ∈ I ( r u , i − r ˉ u ) 2 ∑ i ∈ I ( r v , i − r ˉ v ) 2 \begin{aligned} W_{u,v} = \frac{\sum_{i\in I}(r_{u,i}-\bar{r}_u)(r_{v,i}-\bar{r}_v)}{\sqrt{\sum_{i\in I}(r_{u,i}-\bar{r}_u)^2}\sqrt{\sum_{i\in I}(r_{v,i}-\bar{r}_v)^2}} \end{aligned} Wu,v=∑i∈I(ru,i−rˉu)2 ∑i∈I(rv,i−rˉv)2 ∑i∈I(ru,i−rˉu)(rv,i−rˉv)
通过相关性预测用户a对商品i的打分:
P a , i = r ˉ a + ∑ u ∈ U ( r u , i − r ˉ u ) ⋅ W a , u ∑ u ∈ U ∣ W a , u ∣ \begin{aligned} P_{a,i} = \bar{r}_a + \frac{\sum_{u\in U}(r_{u,i}-\bar{r}_u)\cdot W_{a,u}}{\sum_{u\in U}|W_{a,u}|} \end{aligned} Pa,i=rˉa+∑u∈U∣Wa,u∣∑u∈U(ru,i−rˉu)⋅Wa,u
r ˉ \bar{r} rˉ为某个用户对所有商品打分的平均值(只计算打了分数的商品)。该方式为User-Based CF,计算的是行与行之间的相关性。同样可以计算列于列之间的相关性,对应的方式为Item-Based CF。
W i , j = ∑ u ∈ U ( r u , i − r ˉ i ) ( r u , j − r ˉ j ) ∑ u ∈ U ( r u , i − r ˉ i ) 2 ∑ u ∈ U ( r u , j − r ˉ j ) 2 P a , i = ∑ j ∈ I W i , j ⋅ r a , j ∑ j ∈ I ∣ W i , j ∣ \begin{aligned} & W_{i,j} = \frac{\sum_{u\in U}(r_{u,i}-\bar{r}_i)(r_{u,j}-\bar{r}_j)}{\sqrt{\sum_{u\in U}(r_{u,i}-\bar{r}_i)^2}\sqrt{\sum_{u\in U}(r_{u,j}-\bar{r}_j)^2}}\\ & P_{a,i} = \frac{\sum_{j\in I}W_{i,j}\cdot r_{a,j}}{\sum_{j\in I}|W_{i,j}|} \end{aligned} Wi,j=∑u∈U(ru,i−rˉi)2 ∑u∈U(ru,j−rˉj)2 ∑u∈U(ru,i−rˉi)(ru,j−rˉj)Pa,i=∑j∈I∣Wi,j∣∑j∈IWi,j⋅ra,j
[学习笔记]数据挖掘-week8相关推荐
- 学习笔记|数据挖掘中的数据
这篇笔记是<数据挖掘:概念与技术>第2章的小结. 数据对象和属性 一个数据对象代表一个实体,如医疗数据库中,对象可以是患者,在大学数据库中,对象可以是学生.老师.课程.数据对象又称为样本. ...
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制...
SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...
- 《SAS编程与数据挖掘商业案例》学习笔记之十九
继续<SAS编程与数据挖掘商业案例>学习笔记,本文侧重数据处理实践,包括:HASH对象.自定义format.以及功能强大的正则表达式 一:HASH对象 Hash对象又称散列表,是根据关键码 ...
- 《SAS编程与数据挖掘商业案例》学习笔记之十六
<SAS编程与数据挖掘商业案例>学习笔记,本次重点:sas宏变量 内容包括:宏变量.宏函数.宏参数.通配函数.字符函数.计算函数.引用函数.宏语句.宏应用 1.宏触发器: %name-to ...
- 《SAS编程与数据挖掘商业案例》学习笔记之十四
继续<SAS编程与数据挖掘商业案例>学习笔记系列,本次重点:常用全程语句 所谓全程语句,是指可以用在任何地方的sas语句,既可以用在data数据步语句里面,也可以用在proc过程步里面,甚 ...
- python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析
#2018-04-05 16:57:26 April Thursday the 14 week, the 095 day SZ SSMR python数据挖掘学习笔记]十九.鸢尾花数据集可视化.线性回 ...
- python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据
但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...
- python数据挖掘学习笔记】十四.Scipy调用curve_fit实现曲线拟合
#2018-03-28 10:02:08 March Wednesday the 13 week, the 087 day SZ SSMR python数据挖掘学习笔记]十四.Scipy调用curve ...
- python数据挖掘学习笔记】十三.WordCloud词云配置过程及词频分析
#2018-03-28 09:59:40 March Wednesday the 13 week, the 087 day SZ SSMR 11,12因为涉及到数据库被我暂时放弃了 python数据挖 ...
最新文章
- 如何用最强模型BERT做NLP迁移学习?
- tomcat 域名的配置
- PHP调用扩展的三种方式:dl() .so ZendEngine
- SQL总结(快速参考)
- linux任务处理函数,Linux信号掩码和信号处理函数
- leetcode题库:2.两数相加
- Java编程:多路查找树
- 移动端 短信发送,一键拨号功能
- 前端例程20211213:网页去色(以灰度形式显示)
- Java 实战项目坦克大战,一小时学会制作
- JavaScript 3D 散点图
- IT技能图谱(图谱+干货)
- 规划计算机网络的成本估算,传统的项目管理软件包括进度计划、成本控制、资源调度和( )等功能模块。...
- 音乐彩灯控制器C语言程序,基于单片机的LED彩灯控制器
- 猿创征文|我的后端成长之路(985科班两年,我发现了大学正确打开方式)
- 坎坎坷坷的深度学习之路(三)-Hello world(2)-------MNIST数据集1-MNIST格式
- Pr入门系列之十一:基本图形(下)
- 基础知识补充——白噪声、高斯白噪声
- C++ 请以pass-by-reference-to-const替换pass-by-value
- 通过Ip查询对应地址,Ip2location全球IP地址网段
热门文章
- 服务器配置虚拟主机方法,服务器配置虚拟主机方法
- [4.3]-AutoSAR零基础学习-Bsw-NvM学习 <上>
- stm32 hal 模拟键盘
- 微信小程序开发(三)表单提交、PHP后台数据交互
- tensorflow学习笔记(2)------北京大学 曹健
- 在虚幻引擎中使用蓝图实现简单的对话
- 即将买房的一定要关注这个问题-认筹
- 监控Oracle数据库的常用shell脚本 ORACLE教程 教程作者:佚名 教程来源:不详 教程栏目:ORACLE教程
- windos怎么查看oracle进程,在windows下查看oracle的后台进程
- 陶晶驰串口屏与香橙派linux开发板踩坑记录