一、基于内容的推荐系统(Content Based Recommendations)

  所谓基于内容的推荐,就是知道待推荐产品的一些特征情况,将产品的这些特征作为特征变量构建模型来预测。比如,下面的电影推荐,就是电影分为"爱情电影"、“动作电影”一些特征来进行预测。

  

  上述例子,将电影的内容特征作为特征变量X1,X2,这些电影特征是预先已知的,用户对电影的打分作为y值。比如一用户对100个电影都做了打分,那对于该用户就有了100个样本值,从而可以利用线性回归求解出该用户对应的参数Θ值,这样每一个用户都有自己参数Θ。

  

二、协同过滤系统(Collaborative Filtering)

  像上述产品的内容特征其实往往是预先不知道的,这个是比较困难的,那怎么办呢?采用协同过滤系统,所谓协同过滤系统,就比如选出用户对电影的打分,来估出相应的的参数Θ值,进而再利用线性回归算出相应的电影特征值,根据特征值再次学习出Θ值,循环反复直到收敛,将会得到一组不错的Θ值与产品特征值。其实也就是用户帮助模型学习特征,这些特征也可以用来对其他人进行预测,另一层意思就是说大家都在为大家的利益学习出更好的特征。

  当然,上述描述的循环反复不断学习实践起来会比较麻烦,有一个一劳永逸的方法,可以同时学习出Θ值与特征变量,如下图:

三、计算两个产品的相似性。

  

四、均值归一化

  所谓均值归一化,就是把每一个电影归一化为平均评分为0。因为存在一种情况某一用户对任何一个电影都没有打过分,这个时候该用户对应的Θ学出来就全是0,因为在优化的时候,由于没有对任何电影打分,就相当于没有一个样本,只是优化了正则参数Θ1^2+Θ2^2+...+Θn^2,这样求解出最小值必然Θ=[0,0,0...,0],这样进行预测的时候,该用户对电影的评分也必然全部为0,没什么意义了。所以就需要均值归一化。具体如下图:

  

  如上图所示,采用了均值归一化后,预测完成后都要再加上均值变量。这样如果遇到上述描述的没有打过分的用户,预测后即使为0,再加上均值向量后,打分就变成了均值分数了。这样从理论上也说得通,如果一个用户从没打过分,也就是没有该用户的任何兴趣倾向信息,那么我们就认为该用户对此电影的兴趣就为一个中间值比较合理。

Coursera在线学习---第九节(2).推荐系统的更多相关文章

  1. Coursera在线学习---第九节(1).异常数据检测(Anomaly Detection)

    一.如何构建Anomaly Detection模型? 二.如何评估Anomaly Detection系统? 1)将样本分为6:2:2比例 2)利用交叉验证集计算出F1值,可以用F1值选取概率阈值ξ,选 ...

  2. Coursera在线学习---第一节.梯度下降法与正规方程法求解模型参数比较

    一.梯度下降法 优点:即使特征变量的维度n很大,该方法依然很有效 缺点:1)需要选择学习速率α 2)需要多次迭代 二.正规方程法(Normal Equation) 该方法可以一次性求解参数Θ 优点:1 ...

  3. Coursera在线学习---第二节.Octave学习

    1)两个矩阵相乘 A*B 2)两个矩阵元素位相乘(A.B矩阵中对应位置的元素相乘) A.*B 3)矩阵A的元素进行平方 A.^2 4)向量或矩阵中的元素求倒数 1./V    或   1./A 5) ...

  4. Coursera在线学习---第十节.大规模机器学习(Large Scale Machine Learning)

    一.如何学习大规模数据集? 在训练样本集很大的情况下,我们可以先取一小部分样本学习模型,比如m=1000,然后画出对应的学习曲线.如果根据学习曲线发现模型属于高偏差,则应在现有样本上继续调整模型,具体 ...

  5. Coursera在线学习---第六节.构建机器学习系统

    备: High bias(高偏差) 模型会欠拟合    High variance(高方差) 模型会过拟合 正则化参数λ过大造成高偏差,λ过小造成高方差 一.利用训练好的模型做数据预测时,如果效果不好 ...

  6. Coursera在线学习---第五节.Logistic Regression

    一.假设函数与决策边界 二.求解代价函数 这样推导后最后发现,逻辑回归参数更新公式跟线性回归参数更新方式一摸一样. 为什么线性回归采用最小二乘法作为求解代价函数,而逻辑回归却用极大似然估计求解? 解答 ...

  7. Coursera在线学习---第四节.过拟合问题

    一.解决过拟合问题方法 1)减少特征数量 --人为筛选 --靠模型筛选 2)正则化(Regularization) 原理:可以降低参数Θ的数量级,使一些Θ值变得非常之小.这样的目的既能保证足够的特征变 ...

  8. Coursera在线学习---第七节.支持向量机(SVM)

    一.代价函数   对比逻辑回归与支持向量机代价函数. cost1(z)=-log(1/(1+e-z)) cost0(z)=-log(1-1/(1+e-z)) 二.支持向量机中求解代价函数中的C值相当于 ...

  9. Coursera在线学习---第八节.K-means聚类算法与主成分分析(PCA)

    一.K-means聚类中心初始化问题. 1)随机初始化各个簇类的中心,进行迭代,直到收敛,并计算代价函数J. 如果k=2~10,可以进行上述步骤100次,并分别计算代价函数J,选取J值最小的一种聚类情 ...

随机推荐

  1. CentOS修改DNS、IP地址、网关

    一.CentOS 修改DNS 修改对应网卡的DNS的配置文件 # vi /etc/resolv.conf 修改以下内容 nameserver 8.8.8.8 #google域名服务器 nameserv ...

  2. tcp发送缓冲区中的数据都是由产生数据的进程给推送到ip层还是有定时任务触发?

    和几个变量有非常大的关系 发送缓冲区的大小,如何单独设置一个socket的发送缓冲区 socketopt 发送缓冲区中的数据,如果被拥塞窗口限制住了,那么这些数据可能就放在tcpbuffer里的,此时 ...

  3. Activiti5工作流笔记二

    流程变量 import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import org.activiti ...

  4. poj2018——Best Cow Fences

    Description Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each fie ...

  5. [洛谷P4980]【模板】Polya定理

    题目大意:给一个$n$个点的环染色,有$n$中颜色,问有多少种涂色方案是的旋转后本质不同 题解:$burnside$引理:$ans=\dfrac1{|G|}\sum\limits_{g\in G}A_ ...

  6. usaco中遇到的问题

    numbers are integers with unique digits 意思是数字中的每一个数字都是不一样的& 让一个图成为强连通图只需添加max(出度为0,入度为0)的点,然后如果图 ...

  7. BZOJ1293:[SCOI2009]生日礼物——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1293 https://www.luogu.org/problemnew/show/P2564#sub ...

  8. [Leetcode] gas station 气站

    There are N gas stations along a circular route, where the amount of gas at station i isgas[i]. You ...

  9. ipython 安装和更新

    pip install ipython pip install --upgrade ipython pip install --upgrade pip 不管是用pip装什么模块,前面都尽量不要加sud ...

  10. hzwer分块九题(暂时持续更新)

    hzwer分块9题 分块1:区间加法,单点查询 Code #include<bits/stdc++.h> #define in(i) (i=read()) using namespace ...