1.SVD数学原理
1.1把矩阵拆解成3个子矩阵
svd(mat)=U * sigma * VT
1.2sigma
- 仅对角线有数据的矩阵
- 对角线数据的和代表矩阵的能量
- 对角线数据由大到小排列
- 前i个和>=80%,则原始数据可有n维降维i维
1.3应用方法
- 数据降维:mat.T*U[:,i]*sigma[:i].I
- 压缩(算法表示数据)
1.4特点
简化数据
适用数值型数据
难以解释
2.推荐系统中的应用
假设场景
用户点评菜品
行表示用户
列表示菜品评分
推荐业务理解
- 2个菜品(列)对比,用户评分越相似,菜品越相似
- 2个用户(行)对比,对不同菜品评分越相似,用户越相似
- 得分:基于菜品,=该用户已点评菜品得分*该菜品与待推荐菜品相似度
SVD的使用
把点评数据简化
3.图像压缩中的应用
假设场景
01码表示的位图
业务理解
- 把01码的原始图理解成矩阵
- 矩阵SVD分解
- sigma能量占比,把原始矩阵转成很小的子矩阵乘法
SVD的使用
3232矩阵1024个数据
转成
322+32*2+2=130个数据