Matrix Factorization SVD 矩阵分解
Today we have learned the Matrix Factorization, and I want to record my study notes. Some kownledge which I have learned before is forgot...(呜呜)
1.Terminology
单位矩阵:identity matrix
特征值:eigenvalues
特征向量:eigenvectors
矩阵的秩:rank
对角矩阵:diagonal matrix
对角化矩阵:Diagonalizing a Matrix
矩阵分解:matrix factorization
奇异值分解:SVD(singular value decomposition)
2.Basic kowledge
<1>Eigenvalues and Eigenvectors
What: The basic equation is
, the x is the eigenvector of A and the lamda is the eigenvalue of A.
How: We can transpose this equation as
(I is identity matrix), so we will kown the
. We can calculate the eigenvalues and then get the eigenvectors.
<2>Diagonalizing a Matrix
What: (大家都知道,但是特别注意下形如下面的两种矩阵也是对角矩阵)

How:
,lamada is the eigenvalue of A, and the column of S is the eigenvector of A. Like follow:


<3>rank
- The Rank and the Row Reduced Form (注:我们知道矩阵秩的定义或者求法有很多种,这里说的是行/列最简形矩阵的行/列数即为矩阵的秩,或者就是矩阵的最大非零r阶子式,则r称为矩阵的秩,即R(A)=r )
- If the rank of matrix A(n*n) is r, what it's mean. 矩阵A的列向量或者行向量只有r个是非线性相关的,其他的n-r个向量是无价值的。(这个很重要,下面矩阵分解将会用到,自己的感悟不会用英文表达了,用中文。。。)
<4>singular value
3. Matrix Factorization
What:

(注:这里注意,当k>=m或k>=n且矩阵U或者V是满秩的,矩阵无法分解)
Why: We can use this to
- Image Recovery
(recovery this image)
- Recommendation
(evaluate the ?)
- and so on
How:
<1>Matrix completation

(注:在这里我们需要做出假设,即矩阵是低秩。为什么呢?在上面基础概念中我们说到了矩阵秩所代表的意义,那么这里我们假设矩阵是低秩的,则说明矩阵的列向量只有少数几列是真正重要的,其他的都是和这几列线性相关的,那么我们就可以通过这种线性相关来补全残缺的矩阵)


<2>SVD is one of the methods of matrix factorization, we will introduce this method below.
We have discussed the Diagonalizing a Matrix,but when A is any m by n matrix, square or rectangular. Its rank is r. We will diagonalize this A, but not by
. The eigenvectors in S have three big problems: They are usually not orthogonal, there are not always enough eigenvectors, and
requires A to be square. The singular vectors of A solve all those problems in a perfect way.
singular value:(这里有一篇博文说的很好,推荐下)

通过上面的方法,能够对矩阵X做出一定的降秩,但是如果这里d与m或者n较为接近,那么降秩的效果就不明显,所以我们使用一种近似的策略,如下:

这样我们就是实现了将一个矩阵A,经过SVD近似,转换成一个同维度的矩阵A*,但是它的秩远远低于A

to be continued...
Matrix Factorization SVD 矩阵分解的更多相关文章
- Numpy实现SVD矩阵分解
1. 引入包 2. 实现矩阵分解 3. 从分量还原矩阵
- 机器学习 | SVD矩阵分解算法,对矩阵做拆分,然后呢?
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题第28篇文章,我们来聊聊SVD算法. SVD的英文全称是Singular Value Decomposition,翻译过来 ...
- 【RS】Sparse Probabilistic Matrix Factorization by Laplace Distribution for Collaborative Filtering - 基于拉普拉斯分布的稀疏概率矩阵分解协同过滤
[论文标题]Sparse Probabilistic Matrix Factorization by Laplace Distribution for Collaborative Filtering ...
- 【RS】List-wise learning to rank with matrix factorization for collaborative filtering - 结合列表启发排序和矩阵分解的协同过滤
[论文标题]List-wise learning to rank with matrix factorization for collaborative filtering (RecSys '10 ...
- 【RS】Matrix Factorization Techniques for Recommender Systems - 推荐系统的矩阵分解技术
[论文标题]Matrix Factorization Techniques for Recommender Systems(2009,Published by the IEEE Computer So ...
- [线性代数] 矩阵代数進階:矩阵分解 Matrix factorization
Matrix factorization 导语:承载上集的矩阵代数入门,今天来聊聊进阶版,矩阵分解.其他集数可在[线性代数]标籤文章找到.有空再弄目录什麽的. Matrix factorization ...
- 机器学习笔记7:矩阵分解Recommender.Matrix.Factorization
目录 1矩阵分解概述 1.1用在什么地方 1.2推荐的原理 2矩阵分解的原理 2.1目标函数 2.2 损失函数 2.3 通过梯度下降的方法求得结果 3 代码实现 参考地址: 贪心学院:https:// ...
- 吴恩达机器学习笔记59-向量化:低秩矩阵分解与均值归一化(Vectorization: Low Rank Matrix Factorization & Mean Normalization)
一.向量化:低秩矩阵分解 之前我们介绍了协同过滤算法,本节介绍该算法的向量化实现,以及说说有关该算法可以做的其他事情. 举例:1.当给出一件产品时,你能否找到与之相关的其它产品.2.一位用户最近看上一 ...
- 矩阵分解(Matrix Factorization)与推荐系统
转自:http://www.tuicool.com/articles/RV3m6n 对于矩阵分解的梯度下降推导参考如下:
随机推荐
- bfs codeforces 754B Ilya and tic-tac-toe game
这题简直把我坑死了 所有的坑都被我中了 题意: 思路:bfs or 模拟 模拟似乎没有什么坑 但是bfs真的是坑 AC代码: #include "iostream" #includ ...
- spark - tasks is bigger than spark.driver.maxResultSize
Error ERROR TaskSetManager: Total size of serialized results of 8113 tasks (1131.0 MB) is bigger tha ...
- Jtable 表格按多列排序(支持中文汉字排序)
这两天公司让做一个Jtable表格的排序,首先按A列排序,在A列相等时按B列排序,B列相等时按C列排序,ABC三列可以任意指定,最多分三列,这样的一个需求.由于我是大神,所以必须做了出来.ok,不自恋 ...
- Django发送邮件
1. 配置相关参数 如果用的是 阿里云的企业邮箱,则类似于下面: 在 settings.py 的最后面加上这些 EMAIL_BACKEND='django.core.mail.backends.smt ...
- asp.net 验证码(一)Session
1.模板页 //创建网页模板 输入验证码文本框 并且将文本框中的内容发送的后端验证中去 <p>请输入验证码:<input type="text" name=&qu ...
- Ubuntu添加开机自动启动程序方法
1. 开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置 文件继续引导过程,启动其它进程.通常情况下,修改放置在 / ...
- svn相关知识点
1.查找linux操作系统:uname -a 2.svn 安装:yum install -y subversion 3.svn操作命令 a.将文件checkout到本地目录: svn co svn:/ ...
- ios 定位
ios 定位新功能----在程序中实现定位功能 Core Location是iOS SDK中一个提供设备位置的框架.可以使用三种技术来获取位置:GPS.蜂窝或WiFi.在这些技术中,GPS最为精准,如 ...
- Microservice 微服务的理论模型和现实路径
两年前接触到了微服务的概念,面对日益膨胀的系统感觉豁然开朗.之后的两年逐步把系统按微服务的架构理念进行了重构,并将业务迁移到了新架构之上.感觉现在差不多是时候写一篇关于微服务的总结文章了. 定义 在 ...
- Python格式化输出
今天写程序又记不清格式化输出细节了……= =索性整理一下. python print格式化输出. 1. 打印字符串 print ("His name is %s"%("A ...