机器学习Python实现 SVD 分解

本文探讨如何使用Python实现Singular Value Decomposition (SVD)并将其应用于推荐系统。通过SVD将矩阵分解为U、Z、Vt,其中U和V分别映射物品和用户到新的特征空间。SVD在降维方面也有应用,通过保留重要的奇异值来完成数据简化。
摘要由CSDN通过智能技术生成

这篇文章主要是结合机器学习实战将推荐算法和SVD进行相应的结合

任何一个矩阵都可以分解为SVD的形式

其实SVD意义就是利用特征空间的转换进行数据的映射,后面将专门介绍SVD的基础概念,先给出python,这里先给出一个简单的矩阵,表示用户和物品之间的关系

这里我自己有个疑惑?

对这样一个DATA = U(Z)Vt 

这里的U和V真正的几何含义  :  书上的含义是U将物品映射到了新的特征空间, V的转置  将 用户映射到了新的特征空间


下面是代码实现,同时SVD还可以用于降维,降维的操作就是通过保留值比较的奇异值

# -*- coding: cp936 -*-
'''
Created on Mar 8, 2011

@author: Peter
'''
from numpy import *
from numpy import linalg as la #用到别名

#这里主要结合推荐系统介绍SVD,所以这里的数据都可以看成是用户对物品的一个打分
def loadExData():
    return[[0, 0, 0, 2, 2],
           [0, 0, 0, 3, 3],
           [0, 0, 0, 1, 1],
           [1, 1, 1, 0, 0],
           [2, 2, 2, 0, 0],
           [5, 5, 5, 0, 0],
           [1, 1, 1, 0, 0]]
    
def loadExData2():
    return[[0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 5],
           [0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 3],
           [0,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值