s*r 发帖数: 2757 | 1 A' means the transpose of A, A^{-1} means the inverse of a square matrix A
considering svd of X=UDV',so we have XV=UD, and X'X=VDDV'
Xb
= X (X'X)^{-1} X'Y
= X (VDDV')^{-1} X'Y
= X V D^{-2}V' X'Y
= UU'Y (this is formula 3.46 of the elements of statistical learning)
= Y (because U'U=I, U'= U^{-1}, so UU'=I) | a****m 发帖数: 693 | 2 (VDDV')^{-1}
=V'^{-1}(DD)^{-1}V^{-1}
=V(DD)^{-1}V'
=V(D)^{-2}V'
好像没有问题, | s*r 发帖数: 2757 | 3 是最后一步,显然有问题 Xb不太可能直接等于Y
【在 a****m 的大作中提到】 : (VDDV')^{-1} : =V'^{-1}(DD)^{-1}V^{-1} : =V(DD)^{-1}V' : =V(D)^{-2}V' : 好像没有问题,
| s*****t 发帖数: 987 | 4
svd 不是eigen 展开吧
D好像不一定是square matrix
【在 s*r 的大作中提到】 : A' means the transpose of A, A^{-1} means the inverse of a square matrix A : considering svd of X=UDV',so we have XV=UD, and X'X=VDDV' : Xb : = X (X'X)^{-1} X'Y : = X (VDDV')^{-1} X'Y : = X V D^{-2}V' X'Y : = UU'Y (this is formula 3.46 of the elements of statistical learning) : = Y (because U'U=I, U'= U^{-1}, so UU'=I)
| s*****t 发帖数: 987 | 5 = UU'Y (this is formula 3.46 of the elements of statistical learning)
原来是咋推导的、
我觉得得不出来这一步啊 | s*r 发帖数: 2757 | 6 因为XV=UD
【在 s*****t 的大作中提到】 : = UU'Y (this is formula 3.46 of the elements of statistical learning) : 原来是咋推导的、 : 我觉得得不出来这一步啊
| s*****t 发帖数: 987 | 7
但是D 不一定是square matrix啊
所以我觉得有问题呢
D'*D 是square matrix 可以逆
但是
D(D'*D)^{-1}D' = I?
【在 s*r 的大作中提到】 : 因为XV=UD
| l*********s 发帖数: 5409 | 8 100 wb :-)
You are wrong at the beginning
X(X'X)^(-1)X'Y= X(X^-1)(X'^-1)X'Y=I.I.Y=Y
if X'X=VDDV' ( other wise D is not square )
【在 s*r 的大作中提到】 : A' means the transpose of A, A^{-1} means the inverse of a square matrix A : considering svd of X=UDV',so we have XV=UD, and X'X=VDDV' : Xb : = X (X'X)^{-1} X'Y : = X (VDDV')^{-1} X'Y : = X V D^{-2}V' X'Y : = UU'Y (this is formula 3.46 of the elements of statistical learning) : = Y (because U'U=I, U'= U^{-1}, so UU'=I)
| s*****t 发帖数: 987 | 9 我仔细看了一下
如果你按照那个3.46的推导,显然是没错的
但是问题在于你如何定义 svd
通常svd 的展开式 D 不是square对角阵
3.46的展开式里面D是square对角阵 | l*********s 发帖数: 5409 | 10 it will be exact solution if you have as many parameters as equations. In
case you have large p small n, the solutions will be infinite.
【在 s*r 的大作中提到】 : 是最后一步,显然有问题 Xb不太可能直接等于Y
| | | s*r 发帖数: 2757 | 11 不理解,不过冲你下面那个回答,给50wb
【在 l*********s 的大作中提到】 : 100 wb :-) : You are wrong at the beginning : X(X'X)^(-1)X'Y= X(X^-1)(X'^-1)X'Y=I.I.Y=Y : if X'X=VDDV' ( other wise D is not square )
| s*r 发帖数: 2757 | 12 应该总是对角阵吧,你是说对角线上有的元素是0吧
【在 s*****t 的大作中提到】 : 我仔细看了一下 : 如果你按照那个3.46的推导,显然是没错的 : 但是问题在于你如何定义 svd : 通常svd 的展开式 D 不是square对角阵 : 3.46的展开式里面D是square对角阵
| s*****t 发帖数: 987 | 13
Are we on the same page? hehe
我强调的是square 不是 diagonal
D如果是square,那个推导就是没问题的
通常D不是对角的
【在 s*r 的大作中提到】 : 应该总是对角阵吧,你是说对角线上有的元素是0吧
| o****o 发帖数: 8077 | 14 如果是thin SVD的表述方式,D就是方阵。我看了一下ESL,应该是用的thin SVD的表述
按照golub 和van loan的经典表述,数学家们常用的SVD里面,D不是方阵,而是一个跟
X_{m-\times-n}一样维数的矩阵,1到p的对角线为非负实数,p=min(m, n)。但是thin
SVD的表述下D已经被截了,成为一个p-by-p的对角阵,p=min(m, n)
通常大家都用thin SVD的表述法
不知道我的理解对不对
【在 s*****t 的大作中提到】 : : Are we on the same page? hehe : 我强调的是square 不是 diagonal : D如果是square,那个推导就是没问题的 : 通常D不是对角的
| s*r 发帖数: 2757 | 15 你说的通常是svd在Low-rank matrix approximation的应该?
【在 s*****t 的大作中提到】 : : Are we on the same page? hehe : 我强调的是square 不是 diagonal : D如果是square,那个推导就是没问题的 : 通常D不是对角的
| s*****t 发帖数: 987 | 16
对的
【在 s*r 的大作中提到】 : 你说的通常是svd在Low-rank matrix approximation的应该?
| s*r 发帖数: 2757 | 17 哈哈,我知道了
是这一步错了
(because U'U=I, U'= U^{-1}, so UU'=I)
因为U已经不是方阵了,所以不存在逆阵了 | o****o 发帖数: 8077 | 18 but still UU'=I
【在 s*r 的大作中提到】 : 哈哈,我知道了 : 是这一步错了 : (because U'U=I, U'= U^{-1}, so UU'=I) : 因为U已经不是方阵了,所以不存在逆阵了
| s*r 发帖数: 2757 | 19 不是了,test yourself
x1 <- c(1,1,0,0,0,0)
x2 <- c(0,0,1,1,0,0)
x3 <- c(0,0,0,0,1,1)
y <- c(rnorm(n=2, mean=0), rnorm(n=2,mean=2), rnorm(n=2, mean=4))
x <- cbind(rep(1, times=6), x1,x2,x3))
xxt <- x %*% t(x)
xtx <- t(x) %*% x
e.xtx <- eigen(xtx)
e.xxt <- eigen(xxt)
V <- e.xtx$'vectors'; round(V, digits=2)
U <- e.xxt$'vectors'; round(U, digits=2)
s.v <-e.xtx$'values' # single values
# all these matrix have rank = 3;
d <- sqrt(diag(s.v[c(1,2,3)]))
U3 <- U[,c(1:3)]
V3 <- V[,c(1:3)]
round(U3 %*% t(U3), digits=2)
# but i cannot get x matrix back
x.svd <- U3 %*% d %*% t(V3)
【在 o****o 的大作中提到】 : but still UU'=I
| d******e 发帖数: 7844 | 20 你这个code写的也太扯淡了,你不知道有R直接就有SVD的函数么?
Low rank approximation是
X=UDV
X: n by m
U: n by d
D: d by d
V: d by m
但仍然满足U'U=I,但UU'就肯定不是I了,因为U只有列是orthogonal的。
这不就说清楚了,哪还用得着simulation
【在 s*r 的大作中提到】 : 不是了,test yourself : x1 <- c(1,1,0,0,0,0) : x2 <- c(0,0,1,1,0,0) : x3 <- c(0,0,0,0,1,1) : y <- c(rnorm(n=2, mean=0), rnorm(n=2,mean=2), rnorm(n=2, mean=4)) : x <- cbind(rep(1, times=6), x1,x2,x3)) : xxt <- x %*% t(x) : xtx <- t(x) %*% x : e.xtx <- eigen(xtx) : e.xxt <- eigen(xxt)
| s*r 发帖数: 2757 | | s*r 发帖数: 2757 | 22 少了几列以后就肯定没有row orthogonal了?这不得试试才知道吗
【在 d******e 的大作中提到】 : 你这个code写的也太扯淡了,你不知道有R直接就有SVD的函数么? : Low rank approximation是 : X=UDV : X: n by m : U: n by d : D: d by d : V: d by m : 但仍然满足U'U=I,但UU'就肯定不是I了,因为U只有列是orthogonal的。 : 这不就说清楚了,哪还用得着simulation
|
|