학문
늘솔직한차장
주성분분석 관련 문제 풀이방법 알려주세요.
주성분분석과 관련된 문제인데 해당 문제의 풀이 방법에 대해 자세하게 알려주시면 감사하겠습니다. 행렬, 고유값, 고유벡터, 분산-공분산행렬을 구하는 문제입니다.
3개의 답변이 있어요!
안녕하세요. 서종현 전문가입니다.
주성분분석(PCA)은 데이터의 분산을 최대한 보존하면서 차우너을 축소하는 기법입니다. 문제 해결의 핵심 단계는 다음과 같습니다.
분산-공분산 행렬 구하기
데이터가 여러 변수로 구성돼 있다면 변수들 간의 분산과 공분산을 정리한 행렬을 만듭니다. 이 행렬은 데이터의 분산구조를 나타냅니다.고유값과 고유벡터 계산하기
분산-공분산 행렬에 대해 고유값과 고유벡터를 구합니다. 고유값은 각 주성분이 설명하는 분산의 크기를 의미하고 고유벡터는 각 주성분 방향을 나타냅니다.고유값 내림차순 정렬과 주성분 선택
고유값을 크기 순으로 정렬한후, 설명력이 큰 고유값에 대응하는 고유벡터를 선택해 주성분을 만듭니다.데이터 변환
원본 데이터를 선택한 고유벡터(주성분)방향으로 투영하면 차원 축소된 데이터가 됩니다.
[풀이팁]
분산-공분산 행렬은 데이터 변수별 평균을 빼고 계산해야 합니다.
고유값과 고유벡터는 직접 푸는 것보다 계산기나 소프트웨어를 활용하면 편리합니다.
고유값 합에서 개별 고유값이 차지하는 비율로 주성분이 얼마나 중요한지 판단합니다.
EX) 주어진 데이터 X가 있을때,
S=1/n-1 (X-Xˉ)^T(X−Xˉ)
를 계산해 분산-공분산 행렬을 만들고, 이 행렬의 고유값과 고유벡터를 구하는 과정입니다.
점차 익숙해지시면 주성분 분석 문제 해결이 훨씬 쉬워질 것입니다.
안녕하세요. 고한석 전문가입니다.
행렬 X 변환 후 분산-공분산행렬 구하기
먼저 X의 각 변수 평균을 구하면 X₁(칼로리)의 평균은 (70+120+70)/3 = 86.67이고 X₂(소비자평점)의 평균은 (68+33+59)/3 = 53.33입니다. 이 평균값을 빼서 평균 중심화한 변환행렬 X̃를 구하면 각 행이 (-16.67, 14.67), (33.33, -20.33), (-16.67, 5.67)이 되고, 이를 이용해 분산-공분산행렬 S = (1/n-1) × X̃ᵀX̃를 계산하면 s₁₁ = 378.63, s₂₂ = 197.32, s₁₂ = s₂₁ = -189.68로 문제에 주어진 행렬과 정확히 일치합니다.
XᵀX의 고유값 찾기
고유값은 det(XᵀX - λI) = 0인 특성방정식을 풀어서 구하는데, 식을 전개하면 λ² - 575.95λ + 38,767 = 0이 되고 근의 공식을 적용하면 제1주성분에 해당하는 λ₁ ≈ 503.8과 제2주성분에 해당하는 λ₂ ≈ 72.2 두 개의 고유값을 얻게 됩니다.
XᵀX의 고유벡터 찾기
각 고유값을 (XᵀX - λI)v = 0에 대입해서 풀면 λ₁ ≈ 503.8에 대응하는 고유벡터는 v₁ ≈ (0.82, -0.57)ᵀ이고, λ₂ ≈ 72.2에 대응하는 고유벡터는 v₂ ≈ (0.57, 0.82)ᵀ로 각각 단위벡터로 정규화된 값입니다.
주성분행렬을 이용한 데이터변환 후 변수별 제곱합
변환된 주성분 점수는 X̃ × V(고유벡터 행렬)로 계산하며, 변환 후 제1주성분 점수의 제곱합은 λ₁ ≈ 503.8, 제2주성분 점수의 제곱합은 λ₂ ≈ 72.2가 되어 두 값의 합은 원래 전체 분산 575.95와 동일하게 보존됩니다. 제1주성분 하나만으로 전체 데이터 변동의 약 87.5%(503.8/576)를 설명할 수 있어 차원 축소 효과가 크다는 것이 핵심이고, 연습 24의 2)와 비교할 때 고유값의 합인 전체 분산이 동일하게 유지되는지 확인하시면 됩니다! 😊
안녕하세요. 조일현 전문가입니다.
계산식을 자세히 적기에는 특성 기호 및 위치가 표현이 안되기 때문에 제한이 답변을 적기는에 무리가 있습니다.
요약하자면 중심화는 평균을 빼고 행렬은 S= 1/2 xtc xc 곱셈으로 고유값은 이차방정식으로 고유벡터는
연립방정식으로 풀면 가능합니다.