본문 바로가기
5. 자료구조/2) 행렬 | matrix()

[R코딩] 행렬의 특잇값 분해 (svd)

by makhimh 2020. 12. 22.
반응형

행렬의 특잇값 분해는 아래와 같이 행렬 A를 U,D,V 세 행렬의 곱으로 나타내는 것입니다. (보통 D 대신 Σ 를 사용하는데, R 함수에서는 D를 사용합니다.)

$A=UDV^{T}$

특잇값 분해는 영어로 singular value decomposition 입니다. 줄어서 SVD 라고 부릅니다. R 함수 이름도 svd 입니다. singular value 를 한글로 옮긴 것이 '특잇값' 입니다. 

A,U,D,V 에 대한 설명은 아래와 같습니다. 

A : NxM 크기의 행렬
U : N차원 정방 직교 행렬
D : 대각행렬
V : M차원 정방 직교 행렬

아래는 R 예시입니다. 

> A=matrix(1:6,2)
> A
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6


> svd(A)
$d
[1] 9.5255181 0.5143006

$u
           [,1]       [,2]
[1,] -0.6196295 -0.7848945
[2,] -0.7848945  0.6196295

$v
           [,1]       [,2]
[1,] -0.2298477  0.8834610
[2,] -0.5247448  0.2407825
[3,] -0.8196419 -0.4018960
반응형

댓글