Questions tagged «svd»

矩阵的奇异值分解(SVD) 一个由,其中和是正交矩阵,而是对角矩阵。 一个=ü小号VüV小号

3
从多元正态分布中提取样本的Cholesky与本征分解
我想绘制样品X〜Ñ(0,Σ)X〜ñ(0,Σ)\mathbf{x} \sim N\left(\mathbf{0}, \mathbf{\Sigma} \right)。维基百科建议任一使用的Cholesky或特征分解,即 Σ = D1个dŤ1个Σ=d1个d1个Ť \mathbf{\Sigma} = \mathbf{D}_1\mathbf{D}_1^T 或 Σ = Q Λ QŤΣ=问Λ问Ť \mathbf{\Sigma} = \mathbf{Q}\mathbf{\Lambda}\mathbf{Q}^T 因此,样品可通过得出: x = D1个vX=d1个v \mathbf{x} = \mathbf{D}_1 \mathbf{v} 或 X = Q Λ--√vX=问Λv \mathbf{x} = \mathbf{Q}\sqrt{\mathbf{\Lambda}} \mathbf{v} 其中 v〜Ñ(0,I)v∼N(0,I) \mathbf{v} \sim N\left(\mathbf{0}, \mathbf{I} \right) 维基百科建议它们在生成样本方面都同样出色,但是Cholesky方法具有更快的计算时间。这是真的?尤其是在使用蒙特卡洛方法时,在数值上,沿对角线的方差可能相差几个数量级?是否有对此问题的正式分析?

2
我们何时将降维与聚类结合在一起?
我正在尝试执行文档级群集。我构建了术语文档频率矩阵,并尝试使用k均值对这些高维向量进行聚类。我所做的不是直接聚类,而是首先应用LSA(潜在语义分析)奇异矢量分解来获得U,S,Vt矩阵,然后使用scree图选择合适的阈值,然后对归约矩阵进行聚类(特别是Vt,因为它给了我一个概念文件信息),似乎给了我很好的结果。 我听说有人说SVD(奇异矢量分解)正在聚类(通过使用余弦相似性度量等),并且不确定是否可以在SVD的输出上应用k-均值。我认为这在逻辑上是正确的,因为SVD是降维技术,为我提供了许多新矢量。另一方面,k均值将采用簇数作为输入,并将这些向量划分为指定的簇数。这个程序有缺陷吗,或者有什么方法可以改进?有什么建议么?

1
时间序列邻接矩阵的本征函数?
考虑一个简单的时间序列: > tp <- seq_len(10) > tp [1] 1 2 3 4 5 6 7 8 9 10 我们可以为此时间序列计算一个邻接矩阵,该矩阵表示样本之间的时间链接。在计算此矩阵时,我们在时间0处添加了一个虚构位置,该观测值与时间1处的第一个实际观测值之间的链接称为链接0。在时间1和时间2之间,链接为链接1,依此类推。因为时间是定向过程,所以站点连接到站点“上游”的链接(受其影响)。因此,每个站点都连接到链接0,但链接9仅连接到站点10;它临时发生在除站点10之外的每个站点之后。这样定义的邻接矩阵如下创建: > adjmat <- matrix(0, ncol = length(tp), nrow = length(tp)) > adjmat[lower.tri(adjmat, diag = TRUE)] <- 1 > rownames(adjmat) <- paste("Site", seq_along(tp)) > colnames(adjmat) <- paste("Link", seq_along(tp)-1) > adjmat Link 0 …

1
GSVD是否实施所有线性多元技术?
我碰到了HervéAbdi关于广义SVD 的文章。作者提到: 广义SVD(GSVD)分解矩形矩阵,并考虑了施加在矩阵的行和列上的约束。GSVD通过较低的秩矩阵给出给定矩阵的加权广义最小二乘估计,因此,在适当选择约束的情况下,GSVD实施了所有线性多元技术(例如规范相关,线性判别分析,对应分析,PLS -回归)。 我想知道GSVD与所有线性多元技术(例如典范相关,线性判别分析,对应分析,PLS回归)如何相关。


3
存在哪些快速算法来计算截断的SVD?
可能不在这里,但存在几种(一种,二)相关的问题。 在文献中闲逛(或在Google中搜索“截断的SVD算法”)会发现很多使用以各种方式截短的,并声称(令人沮丧的是,通常没有引证)有快速的算法可以对其进行计算,但是没有人似乎在指出这些算法是什么。 我唯一能找到的是一个随机算法在redSVD库中使用。 我想看到的是一组精确且不精确的算法,适合理解系统的工作原理(但不一定要实际实现它们!)。 有人对这种事情有很好的参考吗?

2
对于随机矩阵,SVD不应完全不解释吗?我究竟做错了什么?
如果我构建一个完全由随机数据组成的二维矩阵,我希望PCA和SVD组件本质上什么也不能解释。 相反,第一个SVD列似乎可以解释75%的数据。怎么可能呢?我究竟做错了什么? 这是情节: 这是R代码: set.seed(1) rm(list=ls()) m <- matrix(runif(10000,min=0,max=25), nrow=100,ncol=100) svd1 <- svd(m, LINPACK=T) par(mfrow=c(1,4)) image(t(m)[,nrow(m):1]) plot(svd1$d,cex.lab=2, xlab="SVD Column",ylab="Singluar Value",pch=19) percentVarianceExplained = svd1$d^2/sum(svd1$d^2) * 100 plot(percentVarianceExplained,ylim=c(0,100),cex.lab=2, xlab="SVD Column",ylab="Percent of variance explained",pch=19) cumulativeVarianceExplained = cumsum(svd1$d^2/sum(svd1$d^2)) * 100 plot(cumulativeVarianceExplained,ylim=c(0,100),cex.lab=2, xlab="SVD column",ylab="Cumulative percent of variance explained",pch=19) 更新资料 谢谢@亚伦。如您所述,解决方法是在矩阵上增加比例,以便数字以0为中心(即平均值为0)。 m <- scale(m, scale=FALSE) 这是校正后的图像,显​​示了对于具有随机数据的矩阵,第一SVD列接近预期的0。
13 r  pca  svd 

1
为什么基于稀疏数据的协方差矩阵的本征和SVD分解会产生不同的结果?
我正在尝试基于稀疏/不连续的数据集分解协方差矩阵。我注意到,svd随着越来越差的数据,λ的总和(解释方差)用来计算。没有差距,svd并eigen获得相同的结果。 eigen分解似乎不会发生这种情况。我一直倾向于使用,svd因为lambda值始终为正,但是这种趋势令人担忧。是否需要某种校正,或者应该svd完全避免此类问题。 ###Make complete and gappy data set set.seed(1) x <- 1:100 y <- 1:100 grd <- expand.grid(x=x, y=y) #complete data z <- matrix(runif(dim(grd)[1]), length(x), length(y)) image(x,y,z, col=rainbow(100)) #gappy data zg <- replace(z, sample(seq(z), length(z)*0.5), NaN) image(x,y,zg, col=rainbow(100)) ###Covariance matrix decomposition #complete data C <- cov(z, use="pair") E <- eigen(C) …
12 r  svd  eigenvalues 

3
缺少值的矩阵的SVD
假设我具有Netflix风格的推荐矩阵,并且我想建立一个模型来预测给定用户的未来电影收视率。使用Simon Funk的方法,可以使用随机梯度下降法来最小化完整矩阵与逐项*用户对用户矩阵之间的Frobenius范数,并结合L2正则化项。 在实践中,人们如何处理推荐矩阵中的缺失值,这是整个计算的重点?通过阅读Simon的博客文章,我的猜测是,他仅使用非缺失项(由(例如)推荐矩阵的1%组成)来构建模型(可以明智地选择超参数和正则化)来预测其他99%的矩阵? 实际上,您真的跳过所有这些值吗?还是在进行随机梯度下降之前尽可能多地推断?处理缺失值的一些标准最佳实践是什么?

1
PCA和TruncatedSVD的scikit-learn实现之间的区别
我了解主成分分析和奇异值分解在代数/精确水平之间的关系。我的问题是关于scikit-learn的实现。 该文档说:“ [TruncatedSVD]与PCA非常相似,但是直接对样本矢量进行运算,而不是对协方差矩阵进行运算。 ”,这将反映两种方法之间的代数差异。但是,后来又说:“ 此估算器[TruncatedSVD]支持两种算法:快速随机SVD求解器,和“天真”算法,该算法使用ARPACK作为(X * XT)或(XT * X)上的特征求解器,高效。关于PCA,它表示:“使用数据的奇异值分解来投影以减少线性维数……”。PCA实施支持相同的两种算法(随机和ARPACK)求解器以及另一种算法LAPACK。查看代码,我可以看到PCA和TruncatedSVD中的ARPACK和LAPACK都对样本数据X进行了svd,ARPACK能够处理稀疏矩阵(使用svds)。 因此,除了具有不同的属性和方法之外,PCA还可以使用LAPACK进行精确的全奇异值分解,PCA和TruncatedSVD scikit-learn实现似乎是完全相同的算法。第一个问题:这是正确的吗? 第二个问题:即使LAPACK和ARPACK使用scipy.linalg.svd(X)和scipy.linalg.svds(X)作为X样本矩阵,它们也会计算或X的奇异值分解或特征分解∗ X T内部。虽然“随机化”的求解器不需要计算乘积。(这与数值稳定性有关,请参阅为什么通过数据的SVD对数据进行PCA?)。这个对吗?XT∗XXT∗XX^T*XX∗XTX∗XTX*X^T 相关代码:PCA行415。截断SVD行137。
12 pca  scikit-learn  svd  scipy 

1
如何在python中绘制碎石图?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为交叉验证的主题。 去年关闭。 我在矩阵上使用奇异矢量分解,并获得了U,S和Vt矩阵。在这一点上,我试图为保留的维数选择一个阈值。有人建议我看一下碎石图,但想知道如何用numpy绘制它。目前,我正在使用python中的numpy和scipy库执行以下操作: U, S, Vt = svd(A) 有什么建议么?

1
为什么非负性对于协作过滤/推荐系统很重要?
在我所看到的所有现代推荐器系统中,都依赖于矩阵分解,在用户电影矩阵上执行非负矩阵分解。我能理解为什么非负性对于可解释性和/或想要稀疏因子很重要。但是,如果您只关心预测性能,例如在netflix奖金竞赛中,为什么要施加非负性限制?与在因数分解中也允许负值相比,这似乎更加糟糕。 本文是在协同过滤中使用非负矩阵分解的一个被高度引用的示例。

1
在SVD之前在单词共生矩阵上应用逐点互信息的利弊是什么?
生成单词嵌入的一种方法如下(mirror): 获得一个语料库,例如“我喜欢飞行。我喜欢NLP。我喜欢深度学习。” 从中建立单词共现矩阵: 在上执行SVD ,并保留U 的前列。XXXķķk 子矩阵每一行都是该行表示的单词的单词嵌入(行1 =“ I”,行2 =“ like”,…)。ü1 : | V| ,1:kü1个:|V|,1个:ķU_{1:|V|,1:k} 在第2步和第3步之间,有时会应用逐点相互信息(例如A. Herbelot和EM Vecchi。2015。构建共享世界:映射分布到模型理论语义空间。)在2015年自然语言处理经验方法会议上的发言(葡萄牙里斯本)。 在SVD之前在单词共生矩阵上应用逐点互信息的利弊是什么?

3
余弦相似度与欧几里得距离(LSA)的K均值
我正在使用潜在语义分析来表示较低维空间中的文档语料库。我想使用k均值将这些文档分为两组。 几年前,我使用Python的gensim并编写了自己的k-means算法来做到这一点。我使用欧几里得距离确定了聚类质心,但随后基于与质心的余弦相似度对每个文档聚类了。它似乎工作得很好。 现在,我正在尝试在更大的文档集上执行此操作。K-means没有收敛,我想知道这是否是我的代码中的错误。我最近读到您不应该使用余弦相似度进行聚类,因为k均值仅适用于欧几里得距离。即使正如我提到的那样,它在较小的测试用例中似乎也可以正常工作。 现在,我在LSA维基百科页面上发现了这一点: 可以使用传统的聚类算法(如k均值)和相似度(如余弦)对文档和术语向量表示进行聚类。 那是什么呢?是否可以使用余弦相似度?

1
R线性回归分类变量“隐藏”值
这只是我多次遇到的示例,因此我没有任何示例数据。在R中运行线性回归模型: a.lm = lm(Y ~ x1 + x2) x1是一个连续变量。x2是分类的,具有三个值,例如“低”,“中”和“高”。但是,R给出的输出将类似于: summary(a.lm) Estimate Std. Error t value Pr(>|t|) (Intercept) 0.521 0.20 1.446 0.19 x1 -0.61 0.11 1.451 0.17 x2Low -0.78 0.22 -2.34 0.005 x2Medium -0.56 0.45 -2.34 0.005 我知道R在这种因素(x2是一个因素)上引入了某种虚拟编码。我只是想知道,如何解释x2“高”值?例如,x2在此处给出的示例中,“ High” 对响应变量有什么影响? 我在其他地方(例如这里)已经看到了这样的示例,但是还没有找到我能理解的解释。
10 r  regression  categorical-data  regression-coefficients  categorical-encoding  machine-learning  random-forest  anova  spss  r  self-study  bootstrap  monte-carlo  r  multiple-regression  partitioning  neural-networks  normalization  machine-learning  svm  kernel-trick  self-study  survival  cox-model  repeated-measures  survey  likert  correlation  variance  sampling  meta-analysis  anova  independence  sample  assumptions  bayesian  covariance  r  regression  time-series  mathematical-statistics  graphical-model  machine-learning  linear-model  kernel-trick  linear-algebra  self-study  moments  function  correlation  spss  probability  confidence-interval  sampling  mean  population  r  generalized-linear-model  prediction  offset  data-visualization  clustering  sas  cart  binning  sas  logistic  causality  regression  self-study  standard-error  r  distributions  r  regression  time-series  multiple-regression  python  chi-squared  independence  sample  clustering  data-mining  rapidminer  probability  stochastic-processes  clustering  binary-data  dimensionality-reduction  svd  correspondence-analysis  data-visualization  excel  c#  hypothesis-testing  econometrics  survey  rating  composite  regression  least-squares  mcmc  markov-process  kullback-leibler  convergence  predictive-models  r  regression  anova  confidence-interval  survival  cox-model  hazard  normal-distribution  autoregressive  mixed-model  r  mixed-model  sas  hypothesis-testing  mediation  interaction 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.