Questions tagged «svd»

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



3
示例:使用glmnet获得二进制结果的LASSO回归
我开始与使用的涉猎glmnet与LASSO回归那里我感兴趣的结果是二分。我在下面创建了一个小的模拟数据框: age <- c(4, 8, 7, 12, 6, 9, 10, 14, 7) gender <- c(1, 0, 1, 1, 1, 0, 1, 0, 0) bmi_p <- c(0.86, 0.45, 0.99, 0.84, 0.85, 0.67, 0.91, 0.29, 0.88) m_edu <- c(0, 1, 1, 2, 2, 3, 2, 0, 1) p_edu <- c(0, 2, 2, …
77 r  self-study  lasso  regression  interpretation  anova  statistical-significance  survey  conditional-probability  independence  naive-bayes  graphical-model  r  time-series  forecasting  arima  r  forecasting  exponential-smoothing  bootstrap  outliers  r  regression  poisson-distribution  zero-inflation  genetic-algorithms  machine-learning  feature-selection  cart  categorical-data  interpretation  descriptive-statistics  variance  multivariate-analysis  covariance-matrix  r  data-visualization  generalized-linear-model  binomial  proportion  pca  matlab  svd  time-series  correlation  spss  arima  chi-squared  curve-fitting  text-mining  zipf  probability  categorical-data  distance  group-differences  bhattacharyya  regression  variance  mean  data-visualization  variance  clustering  r  standard-error  association-measure  somers-d  normal-distribution  integral  numerical-integration  bayesian  clustering  python  pymc  nonparametric-bayes  machine-learning  svm  kernel-trick  hyperparameter  poisson-distribution  mean  continuous-data  univariate  missing-data  dag  python  likelihood  dirichlet-distribution  r  anova  hypothesis-testing  statistical-significance  p-value  rating  data-imputation  censoring  threshold 

3
SVD背后的直觉是什么?
我已经读过关于奇异值分解(SVD)的文章。在几乎所有的教科书中都提到将矩阵分解为具有给定规格的三个矩阵。 但是,以这种形式拆分矩阵背后的直觉是什么?PCA和其他用于降维的算法在算法具有良好的可视化特性的意义上是直观的,但使用SVD并非如此。

1
PCA和对应关系分析与Biplot的关系
Biplot通常用于显示主成分分析(和相关技术)的结果。它是一个双散点图或叠加散点图,同时显示了组件负荷和组件分数。今天,@ amoeba通知我,他给出的答案与我的评论不符,而是一个问题,询问如何生成/缩放Biplot坐标;他的回答更详细地考虑了几种方式。@amoeba询问我是否愿意与biplot分享我的经验。 我的经验(无论是理论上还是实验上的经验),尽管非常谦虚,但都突出了两点,但这两点很少得到人们的认可:(1)应将Biplot归类为分析技术,而不是辅助散点图;(2)PCA,对应分析(以及其他一些众所周知的技术)实际上是双图的特殊情况。或者至少,他们俩几乎都是双胞胎。如果可以做双图,则可以做另外两个。 我对您的问题是:它们(PCA,CA,Biplot)如何为您连接?请分享您的想法。同时,我正在发布自己的帐户。我想请增加更多答案并发表批评。

2
偏最小二乘回归背后的理论
谁能为了解SVD和PCA的人推荐一个关于偏最小二乘回归背后的理论的很好的解释(可在线获得)?我在网上查看了许多资料,但没有找到将严谨性和可访问性完美结合的任何内容。 我研究了《统计学习的要素》,这是在对交叉验证提出的一个问题的评论中提出的,什么是偏最小二乘(PLS)回归?它与OLS有何不同?,但我认为该参考文献并未涉及“正义”这一主题(这样做太简短了,并且没有提供关于该主题的太多理论)。从我读过,PLS利用预测变量,的线性组合zi=Xφizi=Xφiz_i=X \varphi_i协方差最大化yTziyTzi y^Tz_i 受约束∥φi∥=1‖φi‖=1\|\varphi_i\|=1和zTizj=0ziTzj=0z_i^Tz_j=0 if i≠ji≠ji \neq j, where the φiφi\varphi_i are chosen iteratively, in the order in which they maximize the covariance. But even after all I've read, I'm still uncertain whether that is true, and if so, how the method is executed.

1
大型稀疏矩阵上的降维(SVD或PCA)
/ edit:现在可以进行进一步跟进,您可以使用irlba :: prcomp_irlba / edit:跟进我自己的帖子。 irlba现在具有“中心”和“比例”自变量,可用于计算主成分,例如: pc <- M %*% irlba(M, nv=5, nu=0, center=colMeans(M), right_only=TRUE)$v 我Matrix想在机器学习算法中使用大量稀疏的功能: library(Matrix) set.seed(42) rows <- 500000 cols <- 10000 i <- unlist(lapply(1:rows, function(i) rep(i, sample(1:5,1)))) j <- sample(1:cols, length(i), replace=TRUE) M <- sparseMatrix(i, j) 因为此矩阵有很多列,所以我想将其维数减少到更易于管理的程度。我可以使用出色的irlba软件包执行SVD并返回前n个主要成分(此处显示5个;我可能会在实际数据集中使用100或500): library(irlba) pc <- irlba(M, nu=5)$u 但是,我已经读过在执行PCA之前,应该将矩阵居中(从每一列中减去列均值)。这在我的数据集上很难做到,而且会破坏矩阵的稀疏性。 对未缩放的数据执行SVD,并将其直接输入到机器学习算法中有多“糟糕”?在保留矩阵稀疏性的同时,是否有任何有效的方法可以缩放此数据? / edit:B_miner引起我注意的“ …

1
居中如何使PCA有所不同(对于SVD和本征分解)?
将数据居中(或取消定义)对PCA有什么区别?我听说它可以简化数学运算,也可以防止第一台PC被变量的均值控制,但是我觉得我还不能完全掌握这个概念。 例如,此处的最佳答案是如何使数据居中摆脱回归和PCA中的截距?描述了不居中如何将第一个PCA拉过原点,而不是点云的主轴。基于我对如何从协方差矩阵的特征向量中获得PC的理解,我不明白为什么会发生这种情况。 而且,我自己进行的有无居中的计算似乎毫无意义。 考虑irisR 中的数据集中的setosa花。我按如下方式计算了样本协方差矩阵的特征向量和特征值。 data(iris) df <- iris[iris$Species=='setosa',1:4] e <- eigen(cov(df)) > e $values [1] 0.236455690 0.036918732 0.026796399 0.009033261 $vectors [,1] [,2] [,3] [,4] [1,] -0.66907840 0.5978840 0.4399628 -0.03607712 [2,] -0.73414783 -0.6206734 -0.2746075 -0.01955027 [3,] -0.09654390 0.4900556 -0.8324495 -0.23990129 [4,] -0.06356359 0.1309379 -0.1950675 0.96992969 如果我首先对数据集进行居中,则会得到完全相同的结果。这似乎很明显,因为居中根本不会改变协方差矩阵。 df.centered <- scale(df,scale=F,center=T) e.centered<- …
30 r  pca  svd  eigenvalues  centering 

5
如何在协同过滤中使用SVD?
我对在协作过滤中使用SVD感到有些困惑。假设我有一个社交图,并且从边缘构建了一个邻接矩阵,然后使用SVD(让我们忘记正则化,学习率,稀疏性优化等),如何使用此SVD来改进我的建议? 假设我的社交图对应于instagram,而我的任务是仅基于社交图来推荐服务中的用户。我首先要建立一个邻接矩阵,取SVD,,选择前特征值,然后呢?AA\mathbf A (m×m)(m×m)(m\times m)A=UsVA=UsV\mathbf A = \mathbf{U s V}kkk 我大概会创建一组新的矩阵: 那么该怎么办?UnewsnewVnew∼m×k∼k×k∼k×mUnew∼m×ksnew∼k×kVnew∼k×m\begin{align} \mathbf U_{new} &\sim m\times k \\ \mathbf s_{new} &\sim k\times k \\ \mathbf V_{new} &\sim k\times m \end{align} 我在网上浏览过,大多数链接都专注于计算SVD,但是没有人告诉您如何使用它。所以我该怎么做?

1
相关矩阵的SVD应该是可加的,但似乎不是
我只是想复制以下论文中的主张,即从Gene Expression Data中找到相关的Biclusters,即: 命题4.如果。那么我们有:XIJ=RICTJXIJ=RICJTX_{IJ}=R_{I}C^{T}_{J} 一世。如果是具有加性模型的理想双齐群,则X I J是在列上具有相关性的理想双齐群; ii。如果C J是带加性模型的理想双齐群,则X I J是行相关的理想双齐群。 iii。如果R I和C J都是具有加性模型的理想双齐群,则X I J是理想的相关双齐群。RIRIR_{I}XIJXIJX_{IJ}CJCJC_JXIJXIJX_{IJ}RIRIR_ICJCJC_JXIJXIJX_{IJ} 这些主张很容易得到证明。 ...但是,当然,他们没有证明这一点。 我使用论文中的一些简单示例以及基本代码+自定义R代码来查看我是否可以演示该建议。 corbic <- matrix(c(0,4,-4,2,2,-2,6,0,4,-8,16,-2,-2,10,-14,4), ncol=4) (来自表1F) 一些自定义代码,可以将标准X = svd形式转换为X = R C T,如本文所述:üdVŤüdVŤUdV^TX= R CŤX=[RCŤX=RC^{T} svdToRC <- function(x, ignoreRank = FALSE, r = length(x$d), zerothresh=1e-9) { #convert standard SVD decomposed matrices UEV' …

4
为什么吴安德为什么更喜欢使用SVD而不是协方差矩阵的EIG来进行PCA?
我正在从Andrew Ng的Coursera课程和其他材料中学习PCA。在斯坦福大学自然语言处理课程中,cs224n的第一次作业,以及安德鲁·伍的演讲视频(,他们进行奇异值分解而不是协方差矩阵的特征向量分解,而且吴还说SVD在数值上比特征分解更稳定。 根据我的理解,对于PCA,我们应该对(m,n)大小的数据矩阵进行SVD ,而不是对大小的协方差矩阵进行SVD (n,n)。以及协方差矩阵的特征向量分解。 为什么他们使用协方差矩阵而不是数据矩阵的SVD?


2
为什么Python的scikit-learn LDA无法正常工作,它如何通过SVD计算LDA?
我使用来自scikit-learn机器学习库(Python)的线性判别分析(LDA)进行降维,并对结果有些好奇。我现在想知道LDA scikit-learn正在做什么,以便使结果看起来不同于例如手动方法或R中完成的LDA。如果有人可以在这里给我一些见解,那将是非常不错的。 基本上最令人担忧的是,该图scikit-plot显示了两个变量之间的相关性,其中应该有一个相关性0。 为了进行测试,我使用了虹膜数据集,前两个线性判别式如下所示: IMG-1。通过scikit-learn进行LDA 这基本上与我在scikit-learn 文档中找到的结果一致。 现在,我逐步进行了LDA,并得到了不同的预测。我尝试了不同的方法,以了解发生了什么事情: IMG-2。基于原始数据的LDA(无中心,无标准化) 如果我先对数据进行标准化(z分数归一化;单位方差),这将是分步方法。我只用均值中心进行了相同的操作,这应该导致相同的相对投影图像(并且确实如此)。 IMG-3。均值居中或标准化后的逐步LDA IMG-4。R中的LDA(默认设置) 我将数据居中的IMG-3中的LDA(这将是首选方法)看起来也与我在R中执行LDA的人在帖子中找到的LDA完全相同 参考代码 我不想将所有代码粘贴到这里,但是我将其作为IPython笔记本上传到这里,该笔记本分为我用于LDA投影的几个步骤(请参见下文)。 步骤1:计算d维平均向量mi=1ni∑x∈Dinxkmi=1ni∑x∈Dinxk\mathbf m_i = \frac{1}{n_i} \sum\limits_{\mathbf x \in D_i}^n \; \mathbf x_k 步骤2:计算散点矩阵 2.1类内散布矩阵由以下等式计算:SWSWS_W SW=∑i=1cSi=∑i=1c∑x∈Din(x−mi)(x−mi)TSW=∑i=1cSi=∑i=1c∑x∈Din(x−mi)(x−mi)TS_W = \sum\limits_{i=1}^{c} S_i = \sum\limits_{i=1}^{c} \sum\limits_{\mathbf x \in D_i}^n (\mathbf x - \mathbf m_i)\;(\mathbf x - \mathbf m_i)^T 2.2类间散布矩阵由以下公式计算: 其中是整体平均值。SBSBS_B SB=∑i=1cni(mi−m)(mi−m)TSB=∑i=1cni(mi−m)(mi−m)TS_B …

2
如何计算巨大的稀疏矩阵的SVD?
计算数据非常稀疏的非常大的正矩阵(65M x 3.4M)的奇异值分解(SVD)的最佳方法是什么? 少于0.1%的矩阵为非零。我需要一种方法: 将适合内存(我知道在线方法存在) 将在合理的时间内计算:3,4天 会足够准确,但是准确性不是我的主要关注点,我希望能够控制投入的资源。 拥有一个实现它的Haskell,Python,C#等库,将是很棒的。我没有使用mathlab或R,但如有必要,我可以使用R。
26 svd  numerics 

7
测试矩阵列之间的线性相关性
我有一个行列式为零的安全收益相关矩阵。(这有点令人惊讶,因为样本相关矩阵和相应的协方差矩阵在理论上应该是正定的。) 我的假设是,至少一种证券线性依赖于其他证券。R中是否有一个函数可以按顺序测试每个列的线性相关性? 例如,一种方法是一次建立一个安全性的相关矩阵,并在每个步骤计算行列式。当行列式= 0时,请停止运行,因为您已确定证券是其他证券的线性组合。 识别在这样的矩阵中的线性相关性的任何其他技术是可以理解的。

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.