
SVD 역시 PCA와 유사한 행렬 분해 기법을 이용합니다. PCA는 정방행렬만을 고유벡터로 분해할 수 있지만, SVD는 행과 열의 크기가 다른 행렬도 분해할 수 있는 기법입니다. SVD는 $(m\times n)$크기의 행렬 $A$를 $A=U\sum V^{T}$로 분해합니다. SVD는 특이값 분해로 불리며, 행렬 $U$와 $V$에 속한 벡터는 특이벡터(singular vector)이며, 모든 특이벡터는 서로 직교합니다. $\sum $는 대각행렬이며, 행렬의 대각에 위치한 원소만 0이 아니고 나머지 위치의 값은 모두 0입니다. 대각 원소의 값이 바로 행렬 $A$의 특이값(singular value)입니다. SVD는 $(m\times n)$크기의 행렬 $A$를 $(m\times m)$차원의 $U$, $(m\t..

LDA(Linear Discriminant Analysis)는 선형 판별 분석법으로 불리면, PCA와 매우 유사합니다. LDA는 PCA와 유사하게 데이터를 저차원 공간에 투영해 차원을 축소하는 기법이지만, 중요한 차이점이 존재합니다. LDA는 지도학습의 분류에서 사용하기 쉽도록 개별 클래스를 분별할 수 있는 기준을 최대한 유지하면서 차원을 축소합니다. PCA는 데이터의 변동성이 가장 큰 축을 찾았지만, LDA는 데이터의 결정값 클래스를 최대한으로 분리할 수 있는 축을 찾습니다. LDA는 클래스 분리를 최대화하는 축을 찾기 위해 클래스 간 분산(between-class scatter)과 클래스 내부 분산(within-class scatter)의 비율을 최대화하는 방식으로 차원을 축소합니다. 즉, 클래스 간..

많은 피처를 가진 데이터 세트를 PCA 변환한 뒤, 예측 영향도가 어떻게 되는지를 비교해봅시다. 사용할 데이터 세트는 UCI Machine Learning Repository에 있는 신용카드 고객 데이터 세트입니다. 신용카드 데이터 세트는 30,000개의 레코드와 24개의 피처를 가집니다. 이중 'default payment next month' 피처가 타겟값으로, '다음달 연체 여부'를 의미하며 연체일 경우 1, 정상납부일 경우 0입니다. 데이터 세트에서 "PAY_0" 피처 다음에 "PAY_2" 피처가 있으므로, "PAY_0"의 이름을 "PAY_1"로 바꿉시다. 타겟값의 이름도 너무 길어서 간단히 'default'로 변경합시다. 타겟값을 제외하고 총 23개의 피처가 있지만, 피치끼리의 상관성을 조사할 ..