250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- requests
- GenericGBQException
- gather_nd
- Retry
- top_k
- 공분산
- integrated gradient
- BigQuery
- flask
- API
- correlation
- 유튜브 API
- spark udf
- XAI
- chatGPT
- TensorFlow
- subdag
- Counterfactual Explanations
- Airflow
- grad-cam
- API Gateway
- UDF
- hadoop
- 상관관계
- GCP
- login crawling
- session 유지
- airflow subdag
- youtube data
- tensorflow text
Archives
- Today
- Total
데이터과학 삼학년
SVD (Singular Value Decomposition) 특이값 분해 본문
반응형
특이값 분해(Singular Value Decomposition, SVD)는 임의의 차원의 행렬 A에 대하여 다음과 같이 행렬을 분해할 수 있다는 ‘행렬 분해(decomposition)’ 방법
여기서 A' 행렬은 A행렬의 특징을 모아놓은 행렬로 볼 수 있다.
이런 방법을 활용한 것 중 하나가 LSA (Latent Simentic Analysis)이다.
numpy 를 이용해 간단히 SVD를 실습할 수 있다.
import numpy as np
a = np.random.randn(9, 6) + 1j*np.random.randn(9, 6)
b = np.random.randn(2, 7, 8, 3) + 1j*np.random.randn(2, 7, 8, 3)
u, s, vh = np.linalg.svd(a, full_matrices=True)
u.shape, s.shape, vh.shape
((9, 9), (6,), (6, 6))
np.allclose(a, np.dot(u[:, :6] * s, vh))
True
smat = np.zeros((9, 6), dtype=complex)
smat[:6, :6] = np.diag(s)
np.allclose(a, np.dot(u, np.dot(smat, vh)))
True
u, s, vh = np.linalg.svd(a, full_matrices=False)
u.shape, s.shape, vh.shape
((9, 6), (6,), (6, 6))
np.allclose(a, np.dot(u * s, vh))
True
smat = np.diag(s)
np.allclose(a, np.dot(u, np.dot(smat, vh)))
True
u, s, vh = np.linalg.svd(b, full_matrices=True)
u.shape, s.shape, vh.shape
((2, 7, 8, 8), (2, 7, 3), (2, 7, 3, 3))
np.allclose(b, np.matmul(u[..., :3] * s[..., None, :], vh))
True
np.allclose(b, np.matmul(u[..., :3], s[..., None] * vh))
True
u, s, vh = np.linalg.svd(b, full_matrices=False)
u.shape, s.shape, vh.shape
((2, 7, 8, 3), (2, 7, 3), (2, 7, 3, 3))
np.allclose(b, np.matmul(u * s[..., None, :], vh))
True
np.allclose(b, np.matmul(u, s[..., None] * vh))
True
728x90
반응형
LIST
'Mathematics' 카테고리의 다른 글
Eigenvalue(고유값), Eigenvector(고유벡터) (0) | 2020.05.06 |
---|---|
Element wise product(Hadamard product) VS Matrix multiplication (0) | 2020.05.06 |
Comments