博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Coursera机器学习——Recommender System测验
阅读量:4359 次
发布时间:2019-06-07

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

  第一题本应该是基础题,考察Cost Function不同形式的表示方法,但却难住了我,说明基本概念掌握不够到位。

1. 在求和的部分,有两种可能,一种是(i,j)同时求和,即∑(i,j):r(i,j)=1,另一种是∑j=1nu∑i:r(i,j)=1或者∑i=1nu∑j:r(i,j)=1都可以。

2. 后面的部分,一是要注意括号的位置,如果是对K项Theta和X求和,必须是求和后的结果再减去y(i,j),而不要把y(i,j)也放入求和表达式中

3. 如果不是K项求和,说明使用向量的方法直接求Theta*X,那么此时Theta是转置的,上标有T符号存在

第二题是比较协同过滤和线性回归以及逻辑回归的不同使用场景

1. 选项A是想要得到一个书籍销售量与书籍评分之间的关系函数,这里使用线性回归最为恰当

2. 选项B我们得到有不同客户对款式和品牌的review信息,然后向顾客推荐,所以这里用协同过滤推荐很合适

3. 选项C是标准的协同过滤使用场景,我们有不同顾客对书的评分,然后给顾客推荐书籍

4. 选项D有一句很重要的关键句是and each client purchases at most 1 portrait. 所以不同用户对每幅作品的评分并没有重叠性,用协同过滤不能得到好的预测结果

 第三题是说对于几个不同的评分系统能否对数据进行融合(三个系统的评分分数范围不同)

首先肯定是可以的,只是我们必须要先做特征放缩,再融合数据,否则直接融合会导致数据范围不同,影响推荐系统的表现

第四题是对协同过滤的考察

1. 选项A是说为了构建推荐系统,用户必须对训练集中所有的书籍进行评分。事实上如果有空缺的数据我们可以用均值填充

2. 选项B是说如果用户只对少部分产品打分,我们依然可以通过协同过滤构建一个推荐系统。是的,如上所说。只是性能可能不够好

3. 选项C是说我们需要使用梯度下降进行算法优化,不能使用高级算法,因为我们必须同时计算X和Theta。事实上,我们可以使用高级算法进行优化,也能做到同时        更新X和Theta

第五题是协同过滤算法实现的考察,因为我们只需要R(i,j) = 1的数据,所以若使用向量化方法实现需要进行预处理

1. 选项A是在求和计算结果前对矩阵和R做了点乘,所以R = 0的数据不会计入结果,可以√

2. 选项B先对矩阵A*B与R做点乘,在求和计算结果,也可以√

3. 选项C看似与A相同,但点乘改为普通矩阵乘法,就会导致结果错误,甚至两矩阵根本无法相乘

4. 选项D也是一样,将点乘改为普通乘法,不得行

还有一种写法也是可以的

总结:协同过滤适合于多特征,多用户(数据)的系统,当用户较少时,与线性回归效果大致相同,(当N= 1时,Jcost与线性回归完全相同),当特征较少时,协同过滤也不能较好的发挥它的效果

 

转载于:https://www.cnblogs.com/RB26DETT/p/10457875.html

你可能感兴趣的文章
每日英语
查看>>
SpringCloud+feign 基于Springboot2.0 负载均衡
查看>>
【BZOJ5094】硬盘检测 概率
查看>>
mac上n次安装与卸载mysql
查看>>
Python之单元测试——HTMLTestRunner
查看>>
WebNotes(PHP、css、JavaScript等)
查看>>
C++:文件的输入和输出
查看>>
Http协议、Tomcat、servlet
查看>>
Spring Boot (11) mybatis 关联映射
查看>>
macOS 下安装tomcat
查看>>
字符串格式化复习笔记
查看>>
jquery之ajax
查看>>
Pro Git(中文版)
查看>>
解决phpmyadmin-1800秒超时链接失效问题
查看>>
OpenGL第十一节:拉伸和过滤
查看>>
AlertDialog的onCreateDialog与onPrepareDialog用法
查看>>
swift菜鸟入门视频教程-12-21讲
查看>>
探偵ガリレオー転写る2
查看>>
快速排序算法C++实现[评注版]
查看>>
七尖记
查看>>