반응형
특이값분해 (SVD)
- PCA의 경우 정방행렬(행과 열의 크기가 같은 행렬)만을 고유벡터로 분해할 수 있으나 SVD는 정방행렬뿐만 아니라 행과 열의 크기가 다른 행렬에 대해서도 적용할 수 있다.
- SVD는 m x n 크기의 행렬 A를 분해하여, U, ∑, V 행렬로 만든다.
- 행렬 U와 V에 속한 벡터는 특이 벡터(Singular Vector)라고 하며, 모든 특이 벡터는 서로 직교하는 성질을 가진다.
- ∑는 직사각 대각 행렬이며, 행렬의 대각에 위치한 값만 0이 아니고 나머지 위치의 값은 모두 0의 값을 가진다.
- m < n인 경우 첫번째와 같이 분해되며, m > n인 경우 두번째와 같이 분해
- ∑의 0이 아닌 대각 원소값을 특이값(Singular Value)라고 한다.
TruncatedSVD
# 2개의 주요 component로 TruncatedSVD 변환
tsvd = TruncatedSVD(n_components=2)
X_tsvd = tsvd.fit_transform(X)
- 훈련된 데이터를 통해 SVD의 특이값을 얻어낸다.
- 리턴값은 특이값이다.
반응형
'🛠 기타 > Data & AI' 카테고리의 다른 글
[scikit-learn 라이브러리] 특성 자동 선택 (0) | 2020.09.01 |
---|---|
[scikit-learn 라이브러리] 오차행렬 (0) | 2020.09.01 |
[scikit-learn 라이브러리] 그리드서치 (0) | 2020.09.01 |
Pandas 데이터프레임 출력양 조절 (0) | 2020.08.24 |
[scikit-learn 라이브러리] 교차 검증 (0) | 2020.08.23 |