吴恩达老师机器学习课程chapter10——推荐算法
吴恩达老师机器学习课程chapter10——推荐算法
本文是非计算机专业新手的自学笔记,高手勿喷。
本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第十六章。
缺少数学证明,仅作入门了解。
推荐系统是什么?举例如下:

推荐算法的目的在于,通过该用户以往的打分情况,决定推荐什么内容给该用户。
基于内容的推荐算法

\(x_i^{(n)}\)表示第 n 部电影当中第 i 个特征 ,并且也会加上表示常数的\(x_0=1\)。
该模型需要学习出参数向量\(\theta^{(j)} \in \mathbb{R}^{3}\),帮助用户 j 给电影 i 打分为 \(\left(\theta^{(j)}\right)^{T} x^{(i)}\)。
转变为最优问题如下:

利用梯度下降法解最优问题:

协同过滤
需要基于内容设计推荐算法的话,就需要得到一个新电影的特征$ x^{(i)} = [x_1, x_2 \dots x_n] $ 。
这时候,可以通过已有的用户的$ \theta^{(j)} $ 以及 用户给一部新电影的打分\(y(i,j)\) 来推测电影的特征。
问题转化为最优问题:

学习$ \theta^{(j)} \(与学习\)x^{(i)}$ 的过程是很相像的,是互相的。
那么,可以再最初任何参数都不确定的情况下,可以随机初始化θ,得到x,再由x,得到θ,如此循环往复,不停迭代,就会得到一组相对合理的θ与x。


【为什么 θ0 和 x0 在这里不体现?没有数学推导,所以不理解。】

写成矩阵形式:

关于 “相似 ”:

对于完全没有评过分的新用户,可对模型进行均值规格化,以给新用户推荐平均分较高的内容:

吴恩达老师机器学习课程chapter10——推荐算法的更多相关文章
- 机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 http://www.ai-start.com/
机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 GNU Octave 开源 MatLab http://www.ai-start.com/ https://zhuanlan.zhihu ...
- 吴恩达《机器学习》课程笔记——第六章:Matlab/Octave教程
上一篇 ※※※※※※※※ [回到目录] ※※※※※※※※ 下一篇 这一章的内容比较简单,主要是MATLAB的一些基础教程,如果之前没有学过matlab建议直接找一本相关书籍,边做边学,matl ...
- 吴恩达《机器学习》课程总结(5)_logistic回归
Q1分类问题 回归问题的输出可能是很大的数,而在分类问题中,比如二分类,希望输出的值是0或1,如何将回归输出的值转换成分类的输出0,1成为关键.注意logistics回归又称 逻辑回归,但他是分类问题 ...
- 深度学习 吴恩达深度学习课程2第三周 tensorflow实践 参数初始化的影响
博主 撸的 该节 代码 地址 :https://github.com/LemonTree1994/machine-learning/blob/master/%E5%90%B4%E6%81%A9%E8 ...
- 吴恩达《机器学习》课程笔记——第七章:Logistic回归
上一篇 ※※※※※※※※ [回到目录] ※※※※※※※※ 下一篇 7.1 分类问题 本节内容:什么是分类 之前的章节介绍的都是回归问题,接下来是分类问题.所谓的分类问题是指输出变量为有限个离散 ...
- 吴恩达《机器学习》课程总结(18)_照片OCR
18.1问题描述和流程图 (1)图像文字识别是从给定的一张图片中识别文字. (2)流程包括: 1.文字侦测 2.字符切分(现在不需要切分了) 3.字符分类 18.2滑动窗口 在行人检测中,滑动窗口是首 ...
- 吴恩达《机器学习》编程作业——machine-learning-ex1:线性回归
❄❄❄❄❄❄❄❄[回到目录]❄❄❄❄❄❄❄❄ 本次编程作业中,需要完成的代码有如下几部分: [⋆] warmUpExercise.m - Simple example function in Octa ...
- 跟我学算法-吴恩达老师(超参数调试, batch归一化, softmax使用,tensorflow框架举例)
1. 在我们学习中,调试超参数是非常重要的. 超参数的调试可以是a学习率,(β1和β2,ε)在Adam梯度下降中使用, layers层数, hidden units 隐藏层的数目, learning_ ...
- 跟我学算法-吴恩达老师(mini-batchsize,指数加权平均,Momentum 梯度下降法,RMS prop, Adam 优化算法, Learning rate decay)
1.mini-batch size 表示每次都只筛选一部分作为训练的样本,进行训练,遍历一次样本的次数为(样本数/单次样本数目) 当mini-batch size 的数量通常介于1,m 之间 当 ...
- 跟我学算法-吴恩达老师的logsitic回归
logistics回归是一种二分类问题,采用的激活函数是sigmoid函数,使得输出值转换为(0,1)之间的概率 A = sigmoid(np.dot(w.T, X) + b ) 表示预测函数 dz ...
随机推荐
- git 的基础使用
配置: 首次安装完git后,需要配置信息 检查配置: git修改: git config --global user.name "Your_username" 重新设置gi ...
- Android获取获取悬浮窗一下的view办法
getwindows可以获取当前手机屏幕所有有交互功能的view getactitywindows只能获取最顶层有交互的view
- 用到的jar包作用随笔,吼吼
名称 版本 说明 spring spring.jar(2.5) spring基础包 公司基础包 isskill-pro0.7.1.2.jar(0.7.1.2) 包含 ...
- 深度学习PyTorch入门(1):3060 Pytorch+pycharm环境搭建
WIN10, NVIDIA GeForce RTX 3060 python 3.7, CUDAv11.1.1, PyTorch 1.9, PyCharm 1.安装anacodah和PyCharm: ...
- linux批量操作(一)
一.常用命令 1.关闭所有java进程命令: ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9 2.批量文本操作 ...
- hyper给linux扩容空间
1.hyper操作 (1)关机后,在设置中,查看硬盘驱动器中的虚拟磁盘及编号, (2)编辑磁盘->查找磁盘中选中刚才的编号磁盘 (3)操作时扩容(大小填的不是增量 ,是扩容以后的空间) 2.li ...
- 接入GoogelAdmob C#服务器端验证 (SSV) 回调
记一次接入谷歌广告验证 官方文档:https://developers.google.cn/admob/android/rewarded-video-ssv 需要httpserver进行验证,项目里有 ...
- SpringMVC学习day03
第1个springmvc程序 这是根据狂神说视频和资料学习的,用于加强自己的记忆 入门学习 1. 步骤: 1.新建一个Moudle , springmvc-02-hello , 添加web的支持! 2 ...
- 002 jmeter入门级写脚本及参数化
1.jmeter入门脚本 步骤分析:测试计划(项目名称)-线程组(业务流程)-http请求(接口名称)-察看结果树 编写脚本四要素:测试计划.至少有一个线程组.至少有一个取样器.必须要有监听器 测试计 ...
- MTK平台总结
1. 通过cmdline参数不对printk打印速率进行限制:mt_boot.c kcmdline_append(" ignore_loglevel=1 printk.devkmsg=on ...