-
차원축소(Dimension Reduction)기계학습이론과실습 2022. 5. 16. 16:00
feature의 수가 너무 많을 경우
지도학습: 과적합 문제
비지도학습: 데이터 포인트들 간의 거리가 유사하게 됨 -> 군집화 결과가 좋지 않음
= 차원의 저주(curse of dimensionality)
feature selection:
원래의 features 중에서 일부만 선택
선택되지 않은 features가 갖고 있는 정보를 최종 분석에서 사용하지 못함
feature extraction:
원래 features가 가지고 있는 정보를 사용하여 새로운 features 추출
PCA(Principal Component Analysis)는 feature extraction의 한 방법
* PC는 독립변수들이 가지고 있는 정보를 설명하는 축
먼저 고유값과 고유벡터에 대해 알아보겠다. (eigenvalue, eigenvector)
Av = λv
(A: n x n 행렬, v: n x 1 벡터, λ: 스칼라 값, v != 0)
고유벡터의 기하학적 의미: 행렬 A에 의해 선형변환되는 경우 방향은 바뀌지 않고 길이만 바뀌는 벡터
(A-λI)v = 0 (v != 0)이라면 A-λI의 역행력은 존재하지 않으므로 det(A-λI) = 0
A = [[a, b], [c, d]]라고 하면 det(A-λI) = λ^2 -(a+d)λ +ad-bc = 0
이차방정식이므로 고유값은 2개, 이에 따른 고유벡터 수는 무수히 많을 수 있지만, 보통 길이가 1인 고유벡터를 선택
이때, det(A) = λ1 * λ2, tr(A) = λ1 + λ2임을 확인할 수 있다.
** 대칭행렬의 고유벡터는 서로 수직이므로 두 고유벡터의 내적은 0이다**
다음으로 고유분해에 대해 알아보겠다. (eigendecomposition)
A = VΛV^-1
(A: n x n 정사각행렬, V: A의 고유벡터들을 열로 갖는 행렬, Λ: 고유값들을 대각성분으로 갖는 대각행렬)
AV = [Av1 Av2] = [λ1v1 λ2v2] = VΛ
A = VΛV^-1 (V의 역행렬 존재)
1) A변환이 여러 번 수행되는 경우 A^k = VΛ^kV^-1로 간단하게 계산 가능2) PCA 차원 축소를 위해 고유값과 고유행렬이 사용됨
Principal Component Analysis (주성분 분석)
Principal Component는 원 데이터의 정보/분산을 설명하는 축/벡터이며, 전체 PC의 수는 전체 독립변수의 수와 동일하다. 각 PC에 의해 설명되는 분산의 크기가 다르기에 분산을 많이 설명하는 일부 PC를 새로운 feature로 선택할 경우, feature의 수를 줄이면서 원 데이터가 갖고 있는 정보의 대부분을 유지하는 것이 가능하다. 각 PC는 서로 수직이라는 특징을 갖는다.
PC를 찾는 방법은 다음과 같다.
1. mean centering
* 원값 - 평균
2. 원데이터에 대한 공분산 행렬 도출
* 공분산 행렬은 정사각행렬(k x k, where k = number of features)이자 대각행렬
* 대각행렬 -> 고유벡터끼리 수직
3. 공분산 행렬에 대해 고유값과 고유벡터 찾기
* ΣVar(X) = Σλ (원데이터 분산의 합 = 고유값의 합, 즉 고유값은 해당 고유벡터에 의해 설명되는 분산의 크기를 의미함)
* PC = eigenvector V
4. 설명력 높은 PC 선택
* scree plot 사용
5. 새로 구한 PC에 대해 각 관측치의 새로운 값 구하기
* projection vector를 활용하여 도출
* 새로운 관측치들 = 원데이터 벡터(centered_d)와 고유벡터의 내적
특이값 분해는 다음과 같다.
특이값 분해(Singular Values Decomposition: SVD)는 고유분해(eigendecomposition)와 비슷하지만, 고유분해는 정사각행렬에 대해서만, 특이값 분해는 다른 형태의 행렬에 대해서도 사용 가능하다는 차이점이 있다.
X = UDV^T
where X = m x n matrix,
U = eigenvectors of XX^T,
V = eigenvectors of X^TX,
D = root(eigenvalues of X^TX or XX^T except 0)
'기계학습이론과실습' 카테고리의 다른 글
GMM (Gaussian Mixture Models) (0) 2022.06.14 SVM (Support Vector Machines) (0) 2022.05.30 Ensemble methods (0) 2022.05.11 Decision Tree (0) 2022.05.04 Clustering (0) 2022.05.04