주성분분석 관련 문제 풀이방법 알려주세요.

주성분분석과 관련된 문제인데 해당 문제의 풀이 방법에 대해 자세하게 알려주시면 감사하겠습니다. 행렬, 고유값, 고유벡터, 분산-공분산행렬을 구하는 문제입니다.

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 곱셈으로 고유값은 이차방정식으로 고유벡터는

    연립방정식으로 풀면 가능합니다.