四 大数据分析之 SVD理论
来源:互联网 发布:淘宝网四海认证钓具 编辑:程序博客网 时间:2024/05/08 15:53
一 SVD的数学模型
设有样本数据
矩阵
1.1 SVD与PCA的关系
事实上,只要找到
首先,令
其次,令
由此知道任意的实数矩阵
1.2 最优化方法看SVD
用
运用拉格朗日方法,可以得到下面的方程组:
由(1)可以得到,
假设有两组解满足(1)式,分别为
满足(1)式的所有解,构成了X的SVD分解。
1.3 SVD分解算法
事实上(1)给出了一个迭代算法求解SVD;基本步骤如下:
初始化
v⃗ =(1,1,…,1)t ,λ1=0 ,指定一个比较小的数值e,e>0 计算
Xv⃗ =u⃗ ′ ,u⃗ =u⃗ ′/|u⃗ ′| 计算
v⃗ ′=Xtu⃗ ,λ2=|v⃗ ′| ,v⃗ =v⃗ ′/λ2 计算 判断
|λ2−λ1|<e ,为真,返回(λ2,u⃗ ,v⃗ ) ,否则λ1←λ2 跳转到第2步。
上面给出的分解SVD算法,只给出了一组解,为了求得剩余的解,只需要将X做如下的变换:
下面验证第二组解满足(1)式:
事实上,假设两轮计算得到了两组解:
(λ1,u⃗ 1,v⃗ 1),(λ2,u⃗ 2,v⃗ 2) ,先验证若:λ21≠λ22 有u⃗ 1,u⃗ 2 正交。(Xt−λ1∗v⃗ 1∗u⃗ t1)u⃗ 1=Xtu⃗ 1−λ1∗v⃗ 1=0
所以有:
0=u⃗ t2(X−λ1∗u⃗ 1∗v⃗ t1)(Xt−λ1∗v⃗ 1∗u⃗ t1)u⃗ 1=λ22u⃗ t2u⃗ 1 可见:
u⃗ t2u⃗ 1=0 ,同样,还有:v⃗ t2v⃗ 1=0 ,所以有:λ2=u⃗ t2(X−λ1∗u⃗ 1∗v⃗ t1)v⃗ 2=u⃗ t2Xv⃗ 2−λ1u⃗ t2∗u⃗ 1∗v⃗ t1v⃗ 2=u⃗ t2Xv⃗ 2λ2v⃗ 2=(X−λ1∗u⃗ 1∗v⃗ t1)tu⃗ 2=Xtu⃗ 2λ2u⃗ 2=(X−λ1∗u⃗ 1∗v⃗ t1)v⃗ 2=Xv⃗ 2
可见:
事实上,可以通过计算
二 、SVD的应用
SVD分解的应用十分广泛,在数据压缩,推荐,经济结构分析等等方面,并且在应用方面与因子分析、对应分析方法极为相似。
2.1 数据压缩
在大数据时代,存在大型数值矩阵,比如客户与购买的商品关系矩阵,网名点击网站数据等等,样本数据量为
假设
除此之外,参照PCA(主成分分析),可将特征值从大到小排列,取方差和占比前80%的特征分量,还可以进一步压缩数据,降低噪音。
2.2 缺失值估计,商品推荐
在很多时候,X是稀疏矩阵,比如若X的每行代表某人购买不同商品数量或者金额的样本数据。将样本中缺失的数据视为潜在的消费需求,那么估计样本中缺失数据的值,就可以用来做商品推荐。
1.2节中讨论了二乘法逼近样本的最优化方法,并且从中给出了SVD分解的算法,现在稍微修改一下该方法,在此之前定义一个函数:
然后定义极值函数:
极小化目标函数
分解的迭代算法,对于某个缺失值
2.3 代替因子分析和对应分析
未加指明时默认SVD分解中V的对角线元素是是左上到右下,按照元素平方从大到小排列的。
假定大家熟悉因子分析(不懂的自行补脑^_^),因子分析分为R型因子分析和Q型因子分析,对于同一组样本,将两种分析结合起来,就是对应分析。
2.3.1 简单介绍因子分析模型
因子分析主要思想是将观测指标或者观测样本视为某些隐藏的因素叠加而来的。比如样本矩阵X的p个指标,分别记为
表述成矩阵形式,就有:
2.3.2 对比因子分析模型与SVD模型
对照这个模型,重新审视SVD,假定X的值为k,选择
设
对照R型因子分析,记
模型比较总结如下:
记
1、对应于因子分析中的因子得分
∑pi=1a2ik=1 ,有v⃗ ti∗v⃗ i=1 ;2、对应于因子分析中的
cov(Fi,Fj)=0 ,有σiσju⃗ ti∗u⃗ j={0u2iififi≠ji=j 3、对应于
ei∼N(0,ε) ,有(∑ki=r+1σiu⃗ i)t∗(∑ki=r+1σiu⃗ i)=∑ki=r+1σ2i=ε
2.4分析总结
1. 可以看出,除了中心化的要求外,SVD分解与因子分析严格对应,而且SVD集R型和Q型分析两种分析于一体,是接近于对应分析的一种分析方案。
2. 更进一步,参照普分解理论,参考因子分析,对于某个样本的某个指标值xij ,可以将SVD解理为:xij=∑k=1rσkuik∗vkj+εij,∀i=1...n,j=1..p
3.σk 代表第k个隐藏因子的对指标得分的基准权重;uik 代表第i个样本值对应第k个因子的得分;vkj 代表第j个指标对应第k个因子的得分,绝对值较小特征值代表的隐藏因子视为噪音。
2.3.3分析总结
1. 可以看出,除了中心化的要求外,SVD分解与因子分析严格对应,而且SVD集R型和Q型分析两种分析于一体,是接近于对应分析的一种分析方案。
2. 更进一步,参照普分解理论,参考因子分析,对于某个样本的某个指标值xij ,可以将SVD解理为:xij=∑k=1rσkuik∗vkj+εij,∀i=1...n,j=1..p
3.σk 代表第k个隐藏因子的对指标得分的基准权重;uik 代表第i个样本值对应第k个因子的得分;vkj 代表第j个指标对应第k个因子的得分,绝对值较小特征值代表的隐藏因子视为噪音。
- 四 大数据分析之 SVD理论
- (大数据之MapReduce) Hadoop作业提交分析(四)
- 特征分析之SVD
- 大数据时代 | 数据分析方法及理论详解
- 大数据分析技术研究报告(四)
- spark大数据分析(四)
- 数据库(四)关系数据理论
- SVD分解理论
- 数据分析---SVD,特征值和特征向量
- 大数据之数据挖掘理论笔记 聚类问题之K-means
- R语言主成分分析之SVD
- 数据分析复盘——相关理论之精益数据分析
- 系统分析之四 数据建模和分析
- R语言数据分析系列之四
- 数据分析之旅(四)
- 大数据之数据挖掘理论笔记 关联规则与Apriori算法
- 大数据分析的技术栈(四)-Spark&Scala
- 国产数据库比较之大数据分析
- Android 自定义View之处理wrap_content,padding问题分析
- AngularJS里面的$timeout和$interval服务
- Unity ulua ugui 获取 InputField 框
- hibernate 延迟加载详解
- ThreadLocal线程范围内的共享变量
- 四 大数据分析之 SVD理论
- xdoj 1024 简单逆序对
- SSH与SSM学习之hibernate25——批量抓取
- 关于thinkphp5中model中的hasOne函数的参数说明
- 自定义JSTL函数库
- linux下opencv的交叉编译注意事项
- Linux错误:supervisor:/tmp/unix.sock can't find
- spring-cloud-zuul之spring-cloud-1.3.4(Dalston.SR3)-boot(1.5.6) 学习笔记
- 如何彻底卸载Jenkins(Windows版本)