eq值 推荐算法_利用 SVD 实现协同过滤推荐算法

奇异值分解(Singular Value Decomposition,以下简称SVD)

是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。

优点:简化数据,去除噪声,提高算法的结果。

缺点:数据的转换可能难以理解。

应用领域:推荐引擎(协同过滤、相似度计算)、图像压缩等。

SVD定义:如果我们求出了矩阵A的n个特征值λ1≤λ2≤...≤λn,以及这n个特征值所对应的特征向量{w1,w2,...wn},如果这n个特征向量线性无关,那么矩阵A就可以用下式的特征分解表示:A=WΣW−1,其中W是这n个特征向量所张成的n×n维矩阵,而Σ为这n个特征值为主对角线的n×n维矩阵。一般我们会把W的这n个特征向量标准化,即满足||wi||2=1, 或者wiTwi=1,此时W的n个特征向量为标准正交基,满WTW=I,即WT=W−1, 也就是说W为酉矩阵。要进行特征分解,矩阵A必须为方阵。那么如果A不是方阵,则用到SVD。

矩阵A的SVD为:A=UΣVT,其中U是一个m×m的矩阵,Σ是一个m×n的矩阵,除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值,V是一个n×n的矩阵。U和V都是酉矩阵,即满足UTU=I,VTV=I。

对于奇异值,它跟我们特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。也就是说,我们也可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵。

因此SVD 也是一种强大的降维工具,可以利用 SVD 来逼近矩阵并从中获得主要的特征。通过保留矩阵的 80%~90% 的能量,就可以得到重用的特征并去除噪声。

推荐系统是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程。

主要有以下几种推荐算法:

基于内容的推荐(用到自然语言处理),协同过滤(主流),基于规则推荐(基于最多用户点击,最多用户浏览等),混合推荐(类似集成算法,投票决定),基于人口统计信息的推荐(根据用户基本信息)

协同过滤推荐分为三种类型。第一种是基于用户(user-based)的协同过滤(需要在线找用户和用户之间的相似度关系),第二种是基于项目(item-based)的协同过滤(基于项目的协同过滤可以离线找物品和物品之间的相似度关系),第三种是基于模型(model based)的协同过滤(用户和物品,主流)。

一般在推荐系统中,数据往往是使用 用户-物品 矩阵来表示的。用户对其接触过的物品进行评分,评分表示了用户对于物品的喜爱程度,分数越高,表示用户越喜欢这个物品。而这个矩阵往往是稀疏的,空白项是用户还未接触到的物品,推荐系统的任务则是选择其中的部分物品推荐给用户。

5d01cda7f433?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

对于这个 用户-物品 矩阵,用已有的部分稀疏数据来预测那些空白的物品和数据之间的评分关系,找到最高评分的物品推荐给用户。

具体基于模型的方法有:

用关联算法做协同过滤(Apriori算法、FP Tree算法)

用聚类算法做协同过滤(针对基于用户或者基于模型,Kmeans,DBSCAN)

用分类算法做协同过滤(设定评分阈值,高于推荐,低于不推荐,逻辑回归和朴素贝叶斯,解释性很强)

用回归算法做协同过滤(Ridge回归,回归树)

用矩阵分解做协同过滤(由于传统的奇异值分解SVD要求矩阵不能有缺失数据,必须是稠密的,而用户物品评分矩阵是一个典型的稀疏矩阵,主要是SVD的一些变种,比如FunkSVD,BiasSVD和SVD++。这些算法和传统SVD的最大区别是不再要求将矩阵分解为UΣVT的形式,而变是两个低秩矩阵PTQ的乘积形式。)

用神经网络做协同过滤(限制玻尔兹曼机RBM)

在 Python 的 numpy 中,linalg已经实现了SVD

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554612.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打开数据库_打开这份指南,数据库运维也能优雅、简单!

对于常规数据库的运维监控来说,如何能够快速简洁的发现问题,直达问题本质并解决常见问题,是 Bethune 的安身立命之本。简约,优雅,专业,直抵本心,这是用户对 Bethune 的评价。Bethune X 功能强大…

mysql集群_MySQL集群

MySQL集群搭建之主从复制: 主从复制原理: 从库生成两个线程,一个I/O线程,一个SQL线程; i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中; 主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog; SQL 线程,会读取relay log文件中…

mysql 数据库操作类_【数据库操作类】10个php操作数据库类下载

数据库(Database)操作是在开发过程中重要的组成部分,熟练掌握数据库的操作是开发人员必备的武器。PHP中文网为大家提供了各种封装好的php数据库操作类库,供大家下载和学习。相关mysql视频教程推荐:《mysql教程》php各种数据库操作类库下载PDO…

程序员需要知道的职场真相

关于面试谈薪: 1. 你值多少钱,不是由老板决定的,也不是由你自己的能力决定,而是由市场决定的。这个技术就你一个会,你说多少钱就多少钱。这个技术 100W人会,不好意思,肯定是公司在一定的时间内&…

QQ浏览器怎么同步通讯录?QQ浏览器同步通讯录的方法

QQ浏览器怎么同步通讯录?QQ浏览器同步通讯录的方法 qq浏览器是一款非常好用的手机服务软件,有很多用户都会使用这款软件作为自己的主流浏览器,相信已经有很多用户使用过这款软件了,这款软件的搜索功能非常的强大,有很多…

win10如何删除注册表残留文件

win10如何删除注册表残留文件?下面一起来看看如何操作吧。 1、按下“winr”打开运行,输入“regedit”,点击“确定”; 2、依次展开“HKEY_LOCAL_MACHINESOFTWAREMicrosoftwindowsCurrentVersionUninstall”; 3、在该子键下根据已卸载的应用程序软件图标…

jmeter连接mysql数据库驱动_十八、JMeter实战-JDBC连接MySQL数据库

前言连接数据库进行测试在工作中会比较常用,首先可以读取数据库的数据进行参数化、关联等,批量添加测试数据以及清理数据,还可以直接对SQL语句进行压测。一、基本介绍1. 首先第一步要导入mysql驱动包,放到jmeter/lib目录下&#x…

下如何查看mysql表单_Navicat 教程:如何进行表单查看

Navicat 表单查看方便表单查看、更新或删除数据,显示当前的记录:栏位名及其值。表单的弹出菜单包括这些功能:设置栏位值为 Null 或空白字符串、使用当前栏位值为筛选、设置表单查看格式及更多,导览栏可以快速切换记录、插入、更新…

怎么禁止开机启动nvidia

1、单击开始菜单,选择运行,打开运行后输入services.msc 确定。 2、打开本地服务后,在列表中找到NVIDIA Display Driver Service服务。 3、双击打开该服务,然后将NVIDIA Display Driver Service服务的启动类型设置为禁用&#x…

mysql insert 错误码_利用 MySQL 自身错误诊断区域-爱可生

原标题:利用 MySQL 自身错误诊断区域-爱可生背景本篇文章来源于今天客户问的一个问题。问题大概意思是:我正在从 Oracle 迁移到 MySQL,数据已经转换为单纯的 INSERT 语句。由于语句很多,每次导入的时候不知道怎么定位到错误的语句…

mac版crt8.0.2打开无响应怎么办_Mac电脑程序无响应怎么办?教你强制退出无响应程序...

Mac电脑运行时间长了,难免也会遇到程序卡死无响应的情况,可能是由于程序冲突、缓存不足或者一些bug等情况导致,这个时候我们就需要强制退出这个程序了,一起来看看如何强制退出无响应程序吧!快捷键强制退出当前运行的应…

win7如何关闭密码保护共享

1、首先打开控制面板,选择用户账户和家庭安全。 2、其次点击用户账户。 3、然后选择管理其他账户。 4、接着点击Guest,点击启用。 5、之后关闭窗口,右击点击计算机,选择管理。 6、接着按顺序点击本地用户和组、用户&#xff0…

python英文字典小程序_python 小程序—三级菜单—循环和字典练习

程序中利用多级字典来存储三级菜单, 通过一系列while循环和for循环,实现了三级菜单的查询,选择,退回上级菜单,退出程序几个功能。缺点:程序语句过于重复,效率低。#-*-coding:utf-8-*-date{北京:…

win7电脑假死机怎么办

1、正在使用电脑,如果网页或一些页面卡住不动,我们首先要保持电脑的正常运行。这时候可以同时按WinD,可以马上回到桌面。然后尝试着刷新几次。 2、当回到桌面后,我们试着看看是不是运行的软件太多了,造成电脑运行不动…

ubuntu mysql master slave_Ubuntu下MySQL5.5 配置主从(Master Slave)同步

折腾了将近3个小时!终于把mysql的主从同步给配置成功了!网上的不少例子都行不通(也许是版本问题).官网看了一下原版的tutorial,还是比较懵逼.....最后,通过官网的教程和自己的摸索,终于弄好mysql 主从复制了..在此记录一下.1.环境:1.1.vmware 121.2.ubuntu14.041.3.Master Ip:1…

怎么关闭u盘写保护

通过电脑对U盘设置的了写保护。在U盘盘符的上方点击右键,在弹出的菜单中点击属性。 在属性窗口上方找到并点击安全,在安全选项卡中部找到并点击编辑。 在打开的窗口上部选中everyone,然后在下方everyone的权限中勾选完全控制,最后…

win8系统软件不兼容怎么办

1、在出现问题的程序文件上右键单击,将弹出一个快捷菜单,在该菜单中找到“兼容性疑难解答”这一项,单击它; 2、这时,将弹出“程序兼容性疑难解答”的“正在检测问题”进度状态,您需要根据情况等待片刻; 3、检测完毕&…

怎么提升笔记本显卡性能

1、打开控制面板,点击硬件和声音。 2、硬件和声音页面,点击电源选项。 3、系统默认电源计划为平衡,点击更改计划设置。 4、进入电源计划编辑页面,点击更改高级电源设置。 5、电源选项窗口,点击可切换动态显卡&#…

win10桌面不停自动刷新闪屏解决方法

1、右键点击桌面上的此电脑,然后点击管理; 2、然后双击服务与应用程序,展开它; 3、再双击服务; 4、然后找到Problem Reports and Solutions Control Panel Support,点击左侧的停止,或者右键后停止; 5、接着找到Windows Error R…

防止u盘中毒的方法

防止u盘中毒的方法是什么,下面一起来看看吧。 方法一、通过修改注册表来阻断U盘病毒 即使关闭了自动播放功能,但是还是会在双击盘符的时候入侵系统,通过修改注册表来阻止U盘病毒,但是U盘病毒依然会在双击盘符时入侵系统&#xff…