博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
吴恩达机器学习笔记(十) —— 推荐系统
阅读量:4592 次
发布时间:2019-06-09

本文共 787 字,大约阅读时间需要 2 分钟。

 

 

主要内容:

一.推荐系统简介

二.Content-based recommendations

三.Collaborative filtering algorithm

四.预测结果向量化

五.mean normalization

 

 

一.推荐系统简介

推荐系统,即利用已有的数据,从中提取出可能有用的特征,然后训练出参数。得到参数后,就可以用于预测未发生的事件,并可从中找到最优的事件,或者说最迎合用户的东西,然后推荐给用户。

以下都以电影评分为例子:

以下是一些变量的含义:

 

 

二.Content-based recommendations4

此算法适用于每一部电影的特征的值(即X)已知。之后可以利用梯度下降求出每一位用户的参数Theta。

假如已经求得客户1的参数θ(1),并且已知电影3的特征为X(3),则客户1对电影3的评价可估计为θ(1)' * X(3):

代价函数及梯度下降:

 

 

三.Collaborative filtering algorithm

此算法适用于电影的特征的值(即X)未知:

然后可以通过交替更新θ和X使得代价函数最小,从而得到最优条件下的θ:

即:

 

然而,可以将两个过程合并在一起,以避免交替过程的麻烦,做法就是两者相加:

即:

梯度下降就变为了(好像没有变):

 

 

四.预测结果向量化

 

 

五.mean normalization

假如此时新增一个客户(该客户从没有对任何一部电影进行评分),则直接求其参数θ,θ = 0。

这样新客户对每一部电影的评分都预测为0显然是不合理的,因此需要mean normalization,即每个特征减去其均值,在求解完之后再加回来:

如此一来,新用户对每一部电影评分都预测为该部电影的评分的均值,这是符合常理的。

 

转载于:https://www.cnblogs.com/DOLFAMINGO/p/9377974.html

你可能感兴趣的文章
SSL延迟
查看>>
android新手关于左右滑动的问题,布局把<android.support.v4.view.ViewPager/><ImageView/> 放在上面就不行了。...
查看>>
深入理解DIP、IoC、DI以及IoC容器
查看>>
赋值文件
查看>>
Vue 数组 字典 template v-for 的使用
查看>>
蓝牙模块选择经验谈
查看>>
java中==和equals
查看>>
CCActionPageTurn3D
查看>>
python random
查看>>
esp32-智能语音-cli(调试交互命令)
查看>>
netty与MQ使用心得
查看>>
关于dl dt dd 文字过长换行在移动端显示对齐的探讨总结
查看>>
组合设计模式
查看>>
第十五部分_Struts2.1拦截器深度剖析、异常处理
查看>>
[codevs1286]郁闷的出纳员
查看>>
Python匿名函数详解
查看>>
python面向对象(六)之元类
查看>>
quartz.net插件类库封装(含源码)
查看>>
package.json中 npm依赖包版本前的符号的意义
查看>>
Cygwin下获取Android源代码
查看>>